SAPUI5-opetusohjelma aloittelijoille
โก รlykรคs yhteenveto
SAPUI5 on SAPresponsiivinen HTML5-kehys, joka tukee yritysten verkkosovelluksia pรถytรคkoneilla, mobiililaitteilla ja tableteilla. Tรคmรค ohje selittรครค MVC-arkkitehtuurin, komponenttimallin, kirjastot ja sen, miten ylรค- ja alakomponentteja rakennetaan sovelluksen sisรคlle. Eclipse.

Mikรค on SAPUI5?
SAPIU5 on joukko kirjastoja, joiden avulla voidaan rakentaa responsiivisia verkkosovelluksia, jotka toimivat useilla laitteilla, kuten pรถytรคkoneilla, mobiililaitteilla ja tableteilla. SAPUI5 toimii MVC-konsepti nopeuttaa kehityssykliรค luomalla dataa, liiketoimintalogiikkaa ja tietojen esitystรค erikseen nรคkymรคssรค. Joten nรคkymรคn ja ohjaimen kehittรคminen voi tapahtua itsenรคisesti mallien (tietosรคiliรถiden) luomiseksi.
SAPUI5 on sarjan uusin SAP Kรคyttรถliittymรคn kehitysteknologiat. Tarjotakseen web-integraation taustalla SAP ERP-jรคrjestelmรค, SAP keksi useita kรคyttรถliittymรคkehitystekniikoita, kuten BSP (yrityspalvelinsivut), PDK (portaalin kehityspaketti), Web Dynpro Java, Web Dynpro ABAP. Ja Web Dynpro ABAP:n seuraaja on SAPUI5.
SAPIU5 Archirakenne

SAPUI Architecture Kaavio
Edellรค ArchiRakenteessa ensimmรคinen ruutu "Laitteet" osoittaa laitteet, joilla UI5-sovellukset toimivat. UI5-sovelluksiin pรครคsee kรคsiksi mobiilisovelluksen tai minkรค tahansa selaimen kautta. Tรคtรค kerrosta kutsutaan esityskerrokseksi.
SAPUI5-sovellukset ja oData-palvelut sijaitsevat SAP NetWeaver Gateway Server. Tรคtรค arkkitehtuurikerrosta kutsutaan sovelluskerrokseksi.
Todellinen liiketoimintalogiikka on toteutettu SAP ydinjรคrjestelmรคt, kuten ECC, CRM ja BW. Liiketoimintalogiikka voidaan toteuttaa kรคyttรคmรคllรค SAP ohjelmat ja toimintomoduulit. SAP tapahtuma- ja perustiedot sijaitsevat SAP jรคrjestelmiin. Tรคtรค kerrosta kutsutaan tietokantakerrokseksi tai pysyvyyskerrokseksi.
SAPUI5-komponentti
Komponentti on uudelleenkรคytettรคvรค koodipรคtkรค. On olemassa kahdenlaisia โโkomponentteja, jotka tarjoavat SAPUI5:
- Kรคyttรถliittymรคkomponentit โ Nรคmรค edustavat kรคyttรถliittymรคelementtejรค sisรคltรคvรครค kรคyttรถliittymรครค. Nรคmรค perustuvat SAPUI5-luokka nimeltรค sap.ui.core.UIComponent
- Kasvottomat komponentit โ Nรคillรค ei ole kรคyttรถliittymรครค. Ne perustuvat SAPUI5-luokka nimeltรค sap.ui.core.Component
Pohjimmiltaan komponentti on kansio. Kun luot uuden SAPUI5-sovellus, voit nรคhdรค projektinhallinnassasi luodun kansiorakenteen kuten alla.
Tรคssรค UI5-sovelluksessa PassNum on komponentti. Component.js-tiedosto on pakollinen, jotta UI5-sovellus toimii komponentin tavoin.
Seuraavaksi tรคssรค SAPIU5 Eclipse opetusohjelmassa, opimme mรครคrittรคmรครคn SAPUI5.
SAPUI5:n asennus
Ennen kuin aloitamme, sinun on varmistettava, ettรค:
- Eclipse (Luna-versio) on asennettu kannettavaan tietokoneeseen
- SAP Kehitystyรถkalut Eclipse Luna on asennettu laitteeseesi Eclipse (SAP Kehitystyรถkalut Eclipse Luna - https://tools.hana.ondemand.com/luna/)
- SAP Kirjautumisalusta on asennettu ja sinulla on pรครคsy siihen SAP NetWeaver Gateway -jรคrjestelmรค tรคssรค blogissa rakennettavan sovelluksen kรคyttรถรถnottoa ja testausta varten.
Kun sovellus on rakennettu kokonaan, sen pitรคisi nรคyttรครค alla:
Tรคssรค SAPUI5-tutoriaalien oppaassa luomme kaksi komponenttia nimeltรค Pรครคkomponentti ja Lapsikomponentti. Ensin luomme Lapsikomponentin ja kรคytรคmme sitรค sitten Pรครคkomponentissa.
Aletaan likaamaan kรคsiรคmme.
Osa 1) Luo lapsisovellus
Tavoitteenamme on luoda lapsikomponentti, joka hyvรคksyy numeron 1โ12 ja nรคyttรครค kuukauden nimen. Esimerkiksi kun se vastaanottaa luvun 3, sen pitรคisi nรคyttรครค 'maaliskuu'.
Vaihe 1) Luo kรคyttรถliittymรคprojekti
Mene Tiedosto->Uusi->Muu->SAPUI5 Sovelluskehitys->Sovellusprojekti.
Luo sovellusprojekti SAPUI5-asennusta ohjatun toiminnon avulla. Katso alla oleva kuvakaappaus.
Anna projektin nimi ja anna muiden valintojen pysyรค ohjatun toiminnon ehdotusten mukaisesti.
Yllรค olevassa kuvakaappauksessa on kahdenlaisia โโkirjastoja, jotka nรคkyvรคt valintanappien muodossa:
- sap.m
- sap.ui.commons
Kun valitset sap.m:n, kรคsket ohjattua toimintoa luomaan UI5-sovellusprojektin, jonka kรคynnistysosio sisรคltรครค automaattisesti sap.m-kirjaston, joka on tarkoitettu responsiivisten verkkosovellusten luomiseen.
Seuraavaksi tรคssรค SAP FIORI-opetusohjelmassa nรคet alla olevan ohjatun toiminnon osan, jossa sinun on luotava alkuperรคinen nรคkymรค. Alkuperรคinen nรคkymรค on nรคkymรค, joka renderรถidรครคn ensimmรคisenรค, kun sovellusta kรคytetรครคn.
Tรคssรค sinun on annettava nรคkymรคn nimi ja valittava nรคkymรคn tyyppi. SAPUI5 tukee neljรครค nรคkymรครค, kuten yllรค olevasta nรคytรถstรค kรคy ilmi. Joten kรคyttรถliittymรค a SAPUI5-sovellus voidaan rakentaa kรคyttรคmรคllรค JavaSkripti tai XML tai JSON tai HTML, kumpi kieli sinulle sopii.
Ohjatun toiminnon lopussa luodaan uusi projekti, joka nรคkyy Project Explorer -ikkunassa. Eclipse kuten alla.
Vaihe 2) Component.js-koodi
Seuraavaksi luodaan Component.js-tiedosto ja kirjoitetaan siihen alla oleva koodi.
sap.ui.core.UIComponent.extend("DisplayMonth.Component", { metadata: { "name": "DisplayMonth", "dependencies": { "components": []} }, createContent: function() { var oViewData = { component: this }; var oView = sap.ui.view({ viewName: "DisplayMonth.displaymonth.DisplayMonthView", type: sap.ui.core.mvc.ViewType.XML, viewData: oViewData }); return(oView); }, init: function() { // call super init (will call function "create content") sap.ui.core.UIComponent.prototype.init.apply(this, arguments); // always use absolute paths relative to our own component // (relative paths will fail if running in the Fiori Launchpad) var sRootPath = jQuery.sap.getModulePath("DisplayMonth"); }, });
Vaihe 3) Index.html-koodi
Seuraavaksi kรคsketรครคn index.html-tiedostoa lataamaan Component.js, kun sovellusta kรคytetรครคn. Kirjoita alla oleva koodi index.html-tiedostoon.
<!DOCTYPE HTML> <html> <head> // adding meta tags to tell IE browser to render the page in IE-edge mode. <meta http-equiv="X-UA-Compatible" content="IE=edge"> // adding meta tag to tell eclipse to use UTF 8 as character encoding <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> // Bootstrap script to tell ui5 designtime and runtime to use sap.m library, use //blue-crystal these and use complex binding syntax <script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-xx-bindingSyntax="complex" data-sap-ui-resourceroots='{"DisplayMonth": "./"}'> </script> <script> sap.ui.getCore().attachInit(function() { new sap.m.Shell({ app: new sap.ui.core.ComponentContainer({ height : "100%", name : "DisplayMonth" }) }).placeAt("content"); }); </script> </head> // start of body of SAPUI5 application. It contains a div element. <body class="sapUiBody" role="application"> <div id="content"></div> </body> </html>
Vaihe 4) DisplayMonthView.view.xml-koodi
Kirjoitetaan seuraavaksi koodia nรคyttรถkuukausinรคkymรครคmme nรคyttรคmรครคn kuukausi, jonka numero on vastaanotettu pรครคkomponentilta.
<html:style> #__xmlview1--id{ margin-left: 30rem; margin-top: 9rem; font-size: 6rem; font-style: italic; background-color: burlywood; } </html:style> <App id="fioricontent"> <Page title="Child Component"> <content> <Text id="id" xmlns="sap.m" text="{myModel>/monthname}"></Text> </content> </Page> </App>
Kun olet liittรคnyt yllรค olevan koodin, nรคkymรคsi pitรคisi nรคyttรครค alla olevalta.
Vaihe 5) DisplayMonthView.controller.js-koodi
Ja lopuksi, kirjoitetaan DisplayMonthView'n Controller-tiedoston koodi.
Koodi kirjoitetaan vain onInit()-hook-metodilla, joten vain se liitetรครคn tรคhรคn. Loput tiedostosta on sellaisena kuin framework sen on luonut.
onInit : function() { sap.ui.getCore().getEventBus().subscribe("exchange", "data", function(channel, event, oEventData) { jsonModel = new sap.ui.model.json.JSONModel({ monthumber : oEventData, monthname : '' }); // derive month name from month number switch (jsonModel.oData.monthumber) { case "1": jsonModel.oData.monthname = 'January'; break; case "2": jsonModel.oData.monthname = 'February'; break; case "3": jsonModel.oData.monthname = 'March'; break; case "4": jsonModel.oData.monthname = 'April'; break; case "5": jsonModel.oData.monthname = 'May'; break; case "6": jsonModel.oData.monthname = 'June'; break; case "7": jsonModel.oData.monthname = 'July'; break; case "8": jsonModel.oData.monthname = 'August'; break; case "9": jsonModel.oData.monthname = 'September'; break; case "10": jsonModel.oData.monthname = 'October'; break; case "11": jsonModel.oData.monthname = 'November'; break; case "12": jsonModel.oData.monthname = 'December'; break; } this.getView().setModel(jsonModel, "myModel"); }, this); },
Vaihe 6) Sovelluksen kรคyttรถรถnotto SAP NetWeaver-yhdyskรคytรคvรคpalvelin
Ota projekti kรคyttรถรถn ja anna ABAP-kรคyttรถliittymรคpalvelimella luodulle BSP-sovellukselle tekninen nimi. Olkoon nimi znรคyttรถkuukausiProjektisi pitรคisi nรคyttรครค alla olevalta.
OSA 2) Pรครคkomponentin luominen
Nyt on aika luoda uusi komponentti (pรครคkomponentti), joka kรคyttรครค tรคssรค opetusohjelmassa tรคhรคn mennessรค luomaamme komponenttia.
Vaihe 1) Luo uusi SAPUI5 sovellus
Mene Tiedosto->Uusi->Muu->SAPUI5 Sovelluskehitys->Sovellusprojekti. Luo sitten uusi noudattamalla ohjatun toiminnon ohjeita. SAPUI5-sovellusprojekti. Tรคmรค on kuvattu yksityiskohtaisesti yllรค olevan opetusohjelman osan 1 vaiheessa 1.
Ylรคkomponenttiprojektin nimi on PassNumKรคyttรถรถnoton jรคlkeen luodun BSP-sovelluksen tekninen nimi on zpassnumProjektin rakenne nรคyttรครค alla olevalta.
Kirjoitetaan nyt koodia index.html-, Component.js-, PassNum.view.xml- ja PassNum.controller.js-tiedostoihin.
Vaihe 2) Lรคhde Code Pรครคkomponentin Index.html-tiedostosta
<!DOCTYPE HTML> <html> <head> // adding meta tags to tell IE browser to render the page in IE-edge mode. <meta http-equiv="X-UA-Compatible" content="IE=edge"> // adding meta tag to tell eclipse to use UTF 8 as character encoding <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/> // Bootstrap script to tell ui5 designtime and runtime to use sap.m library, use //blue-crystal these and use complex binding syntax <script src="resources/sap-ui-core.js" id="sap-ui-bootstrap" data-sap-ui-libs="sap.m" data-sap-ui-theme="sap_bluecrystal" data-sap-ui-resourceroots='{"PassNum": "./"}'> </script> <script> sap.ui.getCore().attachInit(function() { new sap.m.Shell({ app: new sap.ui.core.ComponentContainer({ height : "100%", name : "PassNum" }) }).placeAt("content"); }); </script> </head> // start of Body of SAPUI5 application, Contains a div tag, <body class="sapUiBody" role="application"> <div id="content"></div> </body> </html>
Vaihe 3) Pรครคkomponentin Component.js-tiedoston lรคhdekoodi
sap.ui.core.UIComponent.extend("PassNum.Component", { metadata: { "name": "PassNum", "dependencies": { "components": []} }, createContent: function() { var oViewData = { component: this }; // Creating Reference of a PassNum XML view var myView = sap.ui.view({ viewName: "PassNum.passnum.PassNum", type: sap.ui.core.mvc.ViewType.XML, viewData: oViewData }); return(myView); }, init: function() { // call super init (this will call function "create content") sap.ui.core.UIComponent.prototype.init.apply(this, arguments); // ensure to use absolute paths relative to own component // (running in the Fiori Launchpad, relative paths will fail) var sRootPath = jQuery.sap.getModulePath("PassNum"); }, });
Vaihe 4) PassNum.view.xml-tiedoston lรคhdekoodi
<Page title="Parent Component"> <content> <VBox xmlns="sap.m" id="vboxid"> <items> <Button xmlns="sap.m" id="1" text="First" press="clickbutton" class="sapUiSmallMarginEnd"></Button> <Button xmlns="sap.m" id="2" text="Second" press="clickbutton" class="sapUiSmallMarginEnd"></Button> <Button xmlns="sap.m" id="3" text="Third" press="clickbutton" class="sapUiSmallMarginEnd"></Button> <Button xmlns="sap.m" id="4" text="Fourth" press="clickbutton" class="sapUiSmallMarginEnd"></Button> <Button xmlns="sap.m" id="5" text="Fifth" press="clickbutton" class="sapUiSmallMarginEnd"></Button> <core:ComponentContainer id="conpcontid" name="DisplayMonth" manifestFirst="true" component="zdisplaymonth"></core:ComponentContainer> </items> </VBox> </content> </Page>
Kun olet kรคyttรคnyt yllรค olevaa koodia nรคkymรคssรคsi, nรคkymรคsi pitรคisi nรคyttรครค alla olevalta.
Vaihe 5) PassNum.controller.js:n lรคhdekoodi
Vain onInit()-metodia on muutettu. Kaikki muu tรคssรค tiedostossa pysyy samana.
onInit: function() { jQuery.sap.registerModulePath("DisplayMonth", "../zdisplaymonth"); }, clickbutton:function(oEvent) { sap.ui.getCore().getEventBus().publish("exchange", "data", oEvent.oSource.sId.split("--")[1]); }
Vaihe 6) Pรครคkomponentin kรคyttรถรถnotto kohteeseen SAP NetWeaver-yhdyskรคytรคvรคpalvelin
Asenna sovellus ABAP-kรคyttรถliittymรคpalvelimelle ja suorita se. Sinun pitรคisi pystyรค suorittamaan se napsauttamalla projektia hiiren kakkospainikkeella ja valitsemalla vaihtoehto 'Suorita ABAP-palvelimella'.
Alla URL avautuu vuonna Eclipse selain.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html
Kopioi URL ja suorita se varsinaisessa selaimessa. Yllรค oleva isรคntรคnimi (merkitty keltaisella) on ABAP-kรคyttรถliittymรคpalvelimesi isรคntรคnimi.
ulostulo
Napsauta 'Ensimmรคinen'-painiketta, niin tammikuun pitรคisi nรคkyรค lapsikomponentissa.
Nauti kauniiden, responsiivisten verkkosovellusten luomisesta SAPUI5.














