SAPUI5-opetusohjelma aloittelijoille

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

SAPIU5 Archirakenne
SAPIU5 Archirakenne

SAPUI Architecture Kaavio

Edellรค Architecture, ensimmรคinen laatikko, eli "Laitteet" osoittavat laitteet, joissa UI5-sovellukset toimivat. UI5-sovelluksia voi kรคyttรครค nรคiden laitteiden mobiilisovelluksella tai millรค tahansa selaimella. Tรคtรค arkkitehtuurin kerrosta kutsutaan "Esityskerrokseksi".

SAPUI5-sovellukset ja oData-palvelut sijaitsevat SAP NetWeaver Gateway Server. Tรคtรค arkkitehtuurin kerrosta kutsutaan sovelluskerrokseksi.

Todellinen liiketoimintalogiikka on toteutettu SAP ydinjรคrjestelmรคt, kuten ECC, CRM ja BW jne... Liiketoimintalogiikkaa voidaan toteuttaa kรคyttรคmรคllรค SAP ohjelmat ja toimintomoduulit. SAP tapahtuma- ja perustiedot sijaitsevat SAP jรคrjestelmรคt. Tรคtรค arkkitehtuurin kerrosta kutsutaan tietokantakerrokseksi tai pysyvyyskerrokseksi.

SAPUI5-komponentti

Komponentti on toimiva koodi, jota kรคytetรครคn tarvittaessa uudelleen. Toimittamia komponentteja on 2 tyyppiรค SAPIU5

  1. Kรคyttรถliittymรคkomponentit โ€“ Nรคmรค edustavat kรคyttรถliittymรครค, joka sisรคltรครค kรคyttรถliittymรคelementtejรค. Nรคmรค perustuvat SPAUI5-luokkaan nimeltรค sap.ui.core.UIComponent
  2. Kasvottomat komponentit โ€“ Nรคillรค ei ole kรคyttรถliittymรครค. Nรคmรค 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.

SAPUI5-komponentti

Tรคssรค UI5-sovelluksessa PassNum on komponentti. Component.js-tiedosto on pakollinen, jotta UI5-sovellus toimii komponenttina. Component.js-tiedosto on komponenttiohjain.

Seuraavaksi tรคssรค SAPIU5 Eclipse opetusohjelmassa, opimme mรครคrittรคmรครคn SAPUI5.

SAPUI5:n asennus

Ennen kuin aloitamme, sinun on varmistettava, ettรค -

  1. Eclipse (Luna-versio) on asennettu kannettavaan tietokoneeseen
  2. SAP Kehitystyรถkalut Eclipse Luna ja asennettu pimennykseen (SAP Kehitystyรถkalut Eclipse Luna - https://tools.hana.ondemand.com/luna/)
  3. SAP Kirjautumislevy on asennettu, ja sinulla on pรครคsy siihen SAP NetWeaver Gateway -jรคrjestelmรค tรคmรคn sovelluksen kรคyttรถรถnottoa ja testausta varten, jota aiomme rakentaa tรคssรค blogissa.

Kun sovellus on rakennettu kokonaan, sen pitรคisi nรคyttรครค alla:

SAPUI5:n asennus

Tรคssรค SAPUI5-opetusopas, luomme 2 komponenttia, nimittรคin ylรคkomponentin ja lapsikomponentin. Ensin luomme lapsikomponentin ja kรคytรคmme sen sitten ylรคkomponentissa.

Aletaan likaamaan kรคsiรคmme.

Osa 1) Luo lapsisovellus

Tavoitteemme on luoda lapsikomponentti, joka hyvรคksyy numerot 1-12 ja nรคyttรครค kuukauden nimen. Esimerkiksi se saa 3; sen pitรคisi nรคyttรครค "Maaliskuu".

Vaihe 1) Luo kรคyttรถliittymรคprojekti

Mene Tiedosto->Uusi->Muu->SAPUI5-sovelluskehitys->sovellusprojekti.

Luo kรคyttรถliittymรคprojekti

Luo sovellusprojekti SAPUI5 seuraamalla avautuvaa ohjattua toimintoa. Katso kuvakaappaus alla.

Luo kรคyttรถliittymรคprojekti

Anna projektin nimi ja anna muiden valintojen pysyรค samoina kuin ohjattu toiminto on ehdottanut.

Luo kรคyttรถliittymรคprojekti

Yllรค olevassa kuvakaappauksessa on kahden tyyppisiรค kirjastoja, jotka nรคkyvรคt valintanapeina

  1. sap.m
  2. sap.ui.commons

Kun valitset sap.m, kรคsket ohjattua toimintoa luomaan UI5-sovellusprojektin, jonka bootstrap-osio sisรคltรครค automaattisesti sap.m-kirjaston, joka on tarkoitettu reagoivan verkkosovelluksen luomiseen.

Seuraavaksi tรคssรค SAP FIORI-opetusohjelmassa, nรคet ohjatun toiminnon alla osan, jossa sinun on luotava ensimmรคinen nรคkymรค. Alkuperรคinen nรคkymรค on nรคkymรค, joka luodaan ensimmรคisenรค, kun sovellusta kรคytetรครคn.

Luo kรคyttรถliittymรคprojekti

Tรคssรค sinun tulee antaa nรคkymรคn nimi ja valita 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รค Javascript tai XML tai JSON tai HTML kumpi kieli sinulle sopii.

Ohjatun toiminnon lopussa uusi projekti luodaan ja nรคytetรครคn Project Explorer -ikkunassa Eclipse kuten alla.

Luo kรคyttรถliittymรคprojekti

Vaihe 2) Component.js-koodi

Luodaan seuraavaksi 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

Kerrotaan seuraavaksi index.html-tiedosto, johon Component.js ladataan SAPUI5, kun sovellusta kรคytetรครคn selaimesta. Joten kirjoita alle 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

Seuraavaksi kirjoitetaan koodi nรคyttรถkuukausinรคkymรครคmme, joka nรคyttรครค kuukauden, jonka kuukausinumero vastaanotetaan ylรค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:

DisplayMonthView.view.xml-koodi

Vaihe 5) DisplayMonthView.controller.js-koodi

Ja lopuksi kirjoitetaan koodi DisplayMonthView'n Controller-tiedostoon.

Koodi kirjoitetaan vain tรคmรคn ohjaimen onInit()-hook-metodissa, joten tรคhรคn liitetรครคn vain onInit()-koodi. Loput tiedostosta on kehyksen luomaa.

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 Gateway Server

Ota projekti kรคyttรถรถn ja anna tekninen nimi BSP-sovellukselle, joka luodaan ABAP-etupalvelimelle. Olkoon nimi znรคyttรถkuukausi. Tรคssรค vaiheessa hakemusprojektisi pitรคisi nรคyttรครค alla olevalta.

SAP Netweaver Gateway Server

OSA 2) Pรครคkomponentin luominen

Nyt on aika luoda uusi komponentti (emokomponentti), joka kuluttaa tรคssรค opetusohjelmassa tรคhรคn mennessรค luomamme komponentin.

Vaihe 1) Luo uusi SAPUI5 sovellus

Mene Tiedosto->Uusi->Muu->SAPUI5-sovelluskehitys->sovellusprojekti. Luo sitten uusi seuraamalla ohjatun toiminnon ohjeita SAPUI5-sovellusprojekti. Tรคmรค on kuvattu yksityiskohtaisesti yllรค olevan opetusohjelman osan 1 vaiheessa 1.

Pรครคkomponenttiprojektin nimi on PassNum. Ja BSP-sovelluksen tekninen nimi, joka on luotu kรคyttรถรถnoton jรคlkeen SAPUI5-komponentti ABAP-etupalvelimeen on zpassnum. Projektin rakenne nรคyttรครค alla olevalta

Luoda uusi SAPUI5 sovellus

Kirjoitetaan nyt koodi index.html-, Component.js- ja PassNum.view.xml- ja PassNum.controller.js-tiedostoihin

Vaihe 2) Pรครคkomponentin Index.html lรคhdekoodi

<!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

PassNum.view.xml-tiedoston lรคhdekoodi

Vaihe 5) PassNum.controller.js:n lรคhdekoodi

Vain onInit()-menetelmรครค on muutettu. Kaikki muu tรคssรค tiedostossa pysyy ennallaan

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 Gateway Server

Ota sovellus kรคyttรถรถn ABAP-etupalvelimella ja suorita se. Sinun pitรคisi pystyรค suorittamaan se napsauttamalla projektia hiiren kakkospainikkeella ja napsauttamalla "Suorita ABAP-palvelimella" -vaihtoehtoa.

Pรครคkomponentin kรคyttรถรถnotto kohteeseen SAP Netweaver Gateway Server

Alla oleva URL-osoite avautuu eclipse-selaimessa.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Kopioi URL-osoite ja suorita se varsinaisessa selaimessa. Yllรค olevassa keltaisella merkityssรค isรคntรคnimessรค on ABAP-kรคyttรถliittymรคpalvelimesi isรคntรคnimi.

ulostulo

SAP Netweaver Gateway Server Output

Napsauta "Ensimmรคinen" -painiketta, tammikuun pitรคisi nรคkyรค lapsikomponentissa.

SAP Netweaver Gateway Server Output

Nauti kauniiden, responsiivisten verkkosovellusten luomisesta SAPUI5.

Yhteenveto

Tรคssรค SAPUI5-opetusohjelma, olemme oppineet:

  • SAPUI5 tutkittu: SAPUI5 on sarjan uusin SAP Kรคyttรถliittymรคn kehitysteknologiat.
  • Mikรค on SAP UI5: SAPUI5 on joukko kirjastoja, joita kรคytetรครคn reagoivien verkkosovellusten rakentamiseen
  • Komponentit SAPUI5-arkkitehtuuri ovat Devices, Client, NetWeaver Gateway, Persistence Layer
  • A SAPUI5-komponentti on toimiva koodi, jota kรคytetรครคn tarvittaessa uudelleen
  • Tyyppisiรค SAPUI5-komponentit ovat 1) UI-komponentteja, 2) kasvottomia komponentteja
  • Opimme yhden sapui5-komponentin kuluttamisesta toiseen sapui5-komponenttiin ja tiedon siirtรคmisestรค nรคiden kahden komponentin vรคlillรค

Tiivistรค tรคmรค viesti seuraavasti: