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.

  • ๐Ÿ“ฑ Responsiivinen kรคyttรถliittymรค: SAPUI5 kรคyttรครค sap.m-kirjastoa, joten yksi koodikanta mukautuu automaattisesti pรถytรคtietokoneiden, tablettien ja mobiililaitteiden nรคyttรถihin.
  • ๐Ÿงฉ Komponenttimalli: Kรคyttรถliittymรคkomponentit laajentavat sap.ui.core.UIComponent-komponenttia, kun taas kasvottomat komponentit laajentavat sap.ui.core.Component-komponenttia uudelleenkรคytettรคvรครค, modulaarista koodia varten.
  • โš™๏ธ MVC-kuvio: Mallit sรคilyttรคvรคt dataa, nรคkymรคt renderรถivรคt merkinnรคt XML- tai JSON-muodossa ja ohjaimet kรคsittelevรคt tapahtumalogiikkaa itsenรคisesti.
  • ๐Ÿ› ๏ธ NetWeaverin kรคyttรถรถnotto: Eclipse SAP Kehitystyรถkalupaketit SAPUI5-sovellukset BSP-sovelluksina, joita isรคnnรถidรครคn ABAP-kรคyttรถliittymรคpalvelimella.
  • โœ… Tapahtumavรคylรคn viestit: Ylรค- ja alakomponentit vaihtavat tietoja sap.ui.getCore().getEventBus()-julkaisu- ja tilauskanavien kautta.

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รค 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:

  1. 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
  2. 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.

SAPUI5-komponentti

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รค:

  1. Eclipse (Luna-versio) on asennettu kannettavaan tietokoneeseen
  2. SAP Kehitystyรถkalut Eclipse Luna on asennettu laitteeseesi Eclipse (SAP Kehitystyรถkalut Eclipse Luna - https://tools.hana.ondemand.com/luna/)
  3. 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:

SAPUI5:n asennus

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 kรคyttรถliittymรคprojekti

Luo sovellusprojekti SAPUI5-asennusta ohjatun toiminnon avulla. Katso alla oleva kuvakaappaus.

Luo kรคyttรถliittymรคprojekti

Anna projektin nimi ja anna muiden valintojen pysyรค ohjatun toiminnon ehdotusten mukaisesti.

Luo kรคyttรถliittymรคprojekti

Yllรค olevassa kuvakaappauksessa on kahdenlaisia โ€‹โ€‹kirjastoja, jotka nรคkyvรคt valintanappien muodossa:

  1. sap.m
  2. 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.

Luo kรคyttรถliittymรคprojekti

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.

Luo kรคyttรถliittymรคprojekti

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.

DisplayMonthView.view.xml-koodi

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.

SAP Netweaver Gateway Server

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.

Luoda uusi SAPUI5 sovellus

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.

PassNum.view.xml-tiedoston lรคhdekoodi

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'.

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

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

SAP Netweaver Gateway Server Output

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

SAP Netweaver Gateway Server Output

Nauti kauniiden, responsiivisten verkkosovellusten luomisesta SAPUI5.

UKK

SAPUI5 on oma kaupallinen versio, joka toimitetaan mukana SAP lisenssejรค. OpenUI5 on avoimen lรคhdekoodin Apache 2.0 -osajoukko, josta puuttuu tiettyjรค yritystason toimintoja, kuten sap.ui.comp-รคlylomakkeet.

Fiori on SAPn suunnittelujรคrjestelmรค ja sovellusluettelo. SAPUI5 on JavaSkriptikehys, joka renderรถi Fiori-sovelluksia, joten jokainen Fiori-nรคyttรถ on rakennettu sen pรครคlle SAPUI5-ohjaimet.

Aloita sap.m:llรค responsiivisia ohjausobjekteja varten, sap.ui.table:lla ruudukkotyyppistรค dataa varten ja sap.viz:llรค kaavioita varten. Nรคmรค kolme kattavat useimmat yritysnรคytรถt, joita tulet rakentamaan.

Kyllรค. SAP Rakentaa Code ja GitHub Copilot voi luoda XML-nรคkymiรค, ohjainrakenteita ja JSONModel-sidoksia luonnollisen kielen kehotteista, vaikka kehittรคjรคt tarkistavatkin luodun koodin.

Tekoรคlyavustajat luovat OPA5- ja QUnit-testitapauksia, ehdottavat aria-label-arvoja ja merkitsevรคt puuttuvat nรคppรคimistรถn kรคsittelijรคt, helping joukkueet kohtaavat SAP saavutettavuusstandardit nopeammin.

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