SAPUI5 õpetus algajatele

⚡ Nutikas kokkuvõte

SAPUI5 on SAPreageeriv HTML5 raamistik, mis toetab ettevõtte veebirakendusi lauaarvutites, mobiilseadmetes ja tahvelarvutites. See juhend selgitab MVC arhitektuuri, komponentide mudelit, teeke ja seda, kuidas luua vanema ja lapse komponente. Eclipse.

  • 📱 Kohanduv kasutajaliides: SAPUI5 kasutab sap.m teeki, seega kohandub üks koodibaas automaatselt lauaarvutite, tahvelarvutite ja mobiiliekraanidega.
  • 🧩 Komponendi mudel: Kasutajaliidese komponendid laiendavad sap.ui.core.UIComponent'i, samas kui näota komponendid laiendavad sap.ui.core.Component'i korduvkasutatava, modulaarse koodi jaoks.
  • ⚙️ MVC muster: Mudelid hoiavad andmeid, vaated renderdavad märgistust XML-is või JSON-is ja kontrollerid käsitlevad sündmuste loogikat iseseisvalt.
  • 🛠️ NetWeaveri juurutamine: Eclipse koos SAP Arendustööriistade paketid SAPUI5 rakendused BSP-rakendustena, mis on majutatud ABAP-i esiserveris.
  • Ürituste bussi sõnumid: Vanem- ja tütarkomponendid vahetavad andmeid avaldamis- ja tellimiskanalite sap.ui.getCore().getEventBus() kaudu.

SAPUI5 õpetus algajatele

Mis on SAPUI5?

SAPUI5 on teekide komplekt tundlike veebirakenduste loomiseks, mis töötavad mitmes seadmes, näiteks lauaarvutis, mobiilseadmes ja tahvelarvutis. SAPUI5 töötab MVC kontseptsioon arendustsükli kiirendamiseks, luues vaates andmed, äriloogika ja andmete esituse eraldi. Seega saab vaate ja kontrolleri arendamine mudelite (andmekonteinerite) loomiseks toimuda iseseisvalt.

SAPUI5 on seeria uusim SAP UI arendustehnoloogiad. Alusvara veebiintegratsiooni pakkumiseks SAP ERP süsteem, SAP tuli välja mitme kasutajaliidese arendustehnoloogiaga, nagu BSP (äriserveri lehed), PDK (portaali arenduskomplekt), Web Dynpro Java, Web Dynpro ABAP. Ja Web Dynpro ABAPi järeltulija on SAPUI5.

SAPUI5 Architektuur

SAPUI5 Architektuur
SAPUI5 Architektuur

SAPUI Architektuuri diagramm

Ülalpool ArchiStruktuuris näitab esimene kast „Seadmed” seadmeid, millel UI5 rakendused töötavad. UI5 rakendustele pääseb ligi mobiilirakenduse või mis tahes brauseri kaudu. Seda kihti nimetatakse „esitluskihiks”.

SAPUI5 rakendused ja oData teenused asuvad SAP NetWeaveri lüüsiserver. Seda arhitektuuri kihti nimetatakse rakenduskihiks.

Sisse on rakendatud tegelik äriloogika SAP põhisüsteemid nagu ECC, CRM ja BW. Äriloogikat saab rakendada, kasutades SAP programmid ja funktsioonimoodulid. SAP tehingu- ja põhiandmed asuvad SAP süsteemid. Seda kihti nimetatakse andmebaasikihiks või püsivuskihiks.

SAPUI5 komponent

Komponent on korduvkasutatav kood. Saadaval on kahte tüüpi komponente: SAPUI5:

  1. Kasutajaliidese komponendid – need esindavad kasutajaliidest, mis sisaldab kasutajaliidese elemente. Need põhinevad järgmisel: SAPUI5 klass nimega sap.ui.core.UIComponent
  2. Näota komponendid – neil puudub kasutajaliides. Need põhinevad SAPUI5 klass nimega sap.ui.core.Component

Põhimõtteliselt on komponent kaust. Kui loote uue SAPUI5 rakendus, näete oma projektiuurijas loodud kaustastruktuuri nagu allpool.

SAPUI5 komponent

Selles UI5 rakenduses on PassNum komponent. Fail Component.js on UI5 rakenduse komponendina toimimiseks kohustuslik.

Järgmine selles SAPUI5 Eclipse õpetus, õpime, kuidas seadistada SAPUI5.

SAPUI5 seadistamine

Enne alustamist peate veenduma, et:

  1. Eclipse (Luna versioon) on teie sülearvutisse installitud
  2. SAP Arendustööriistad Eclipse Luna on teie seadmesse installitud Eclipse (SAP Arendustööriistad Eclipse Luna - https://tools.hana.ondemand.com/luna/)
  3. SAP Sisselogimispadi on installitud ja teil on juurdepääs SAP NetWeaver Gateway süsteem selle blogipostituses loodava rakenduse juurutamiseks ja testimiseks.

Kui rakendus on täielikult üles ehitatud, peaks see välja nägema järgmine:

SAPUI5 seadistamine

Selle SAPUI5 õpetuste juhendis loome kaks komponenti nimega vanemkomponent ja lapskomponent. Esmalt loome lapskomponendi ja seejärel kasutame seda vanemkomponendis.

Hakkame käsi määrima.

1. osa) Looge lapserakendus

Meie eesmärk on luua lapsekomponent, mis aktsepteerib arvu 1 kuni 12 ja kuvab kuu nime. Näiteks kui see saab arvu 3, peaks see kuvama 'märts'.

Samm 1) Looge kasutajaliidese projekt

Avage Fail->Uus->Muu->SAPUI5 rakenduste arendus-> rakenduse projekt.

Looge kasutajaliidese projekt

Looge rakendusprojekt SAPUI5, järgides viisardit. Vaata allolevat ekraanipilti.

Looge kasutajaliidese projekt

Sisesta projekti nimi ja jäta muud valikud viisardi soovituste järgi samaks.

Looge kasutajaliidese projekt

Ülaltoodud ekraanipildil on raadionuppudena kuvatud kahte tüüpi teeke:

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

Kui valite sap.m, käsite viisardil luua UI5 rakenduse projekti, mille alglaadimisosa sisaldab automaatselt sap.m teeki, mis on mõeldud responsiivsete veebirakenduste loomiseks.

Järgmine selles SAP FIORI õpetuses näete allpool viisardi osa, kus peate looma esialgse vaate. Esialgne vaade on vaade, mis kuvatakse rakendusele juurdepääsu korral esimesena.

Looge kasutajaliidese projekt

Siin tuleb määrata vaate nimi ja valida vaate tüüp. SAPUI5 toetab nelja tüüpi vaadet, nagu ülaltoodud ekraanil näha. Nii et kasutajaliides a SAPUI5 rakendust saab luua kasutades JavaSkript või XML või JSON või HTML, olenevalt sellest, kumb keel teile sobib.

Viisardi lõpus luuakse uus projekt, mis kuvatakse projektihalduri aknas. Eclipse nagu allpool.

Looge kasutajaliidese projekt

2. samm) Component.js kood

Järgmisena loome Component.js faili ja kirjutame sinna alloleva 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");


  },
});

3. samm) Index.html kood

Järgmisena käsime oma index.html failil laadida Component.js rakenduse avamisel. Kirjutage allolev kood index.html faili.

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

Samm 4) DisplayMonthView.view.xml kood

Järgmisena kirjutame oma kuvatava kuu vaatesse koodi, mis kuvab kuu, mille number on saadud ülemkomponendilt.

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

Pärast ülaltoodud koodi kleepimist peaks teie vaade välja nägema allpool näidatud.

DisplayMonthView.view.xml kood

Samm 5) DisplayMonthView.controller.js kood

Ja lõpuks kirjutame DisplayMonthView'i kontrollerifaili koodi.

Kood on kirjutatud ainult onInit() konksumeetodis, seega kleebitakse siia ainult see. Ülejäänud fail genereeritakse raamistiku poolt.

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);
	},

6. samm) Rakenduse juurutamine SAP NetWeaveri lüüsiserver

Rakenda projekt ja anna ABAP-i esiserveris genereeritud BSP-rakendusele tehniline nimi. Olgu see nimi zdisplaykuuTeie projekt peaks välja nägema allpool näidatud viisil.

SAP Netweaveri lüüsiserver

2. OSA) Põhikomponendi loomine

Nüüd on aeg luua uus komponent (vanemkomponent), mis kasutab selles õpetuses seni loodud komponenti.

Samm 1) Looge uus SAPUI5 rakendus

Avage Fail->Uus->Muu->SAPUI5 rakenduste arendus->rakenduse projekt. Seejärel järgige uue loomiseks viisardi juhiseid SAPUI5 rakendusprojekt. Seda on üksikasjalikult kirjeldatud ülaltoodud õpetuse 1. osa 1. sammus.

Ülemkomponendi projekti nimi on PassinumberPärast juurutamist genereeritud BSP-rakenduse tehniline nimi on zpassnumProjekti struktuur näeb välja selline, nagu allpool näidatud.

Loo uus SAPUI5 rakendus

Kirjutame nüüd koodi failidesse index.html, Component.js, PassNum.view.xml ja PassNum.controller.js.

2. samm) Allikas Code Ülemkomponendi Index.html failist

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

Samm 3) Põhikomponendi faili Component.js lähtekood

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");

  },
});

Samm 4) Faili PassNum.view.xml lähtekood

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

Pärast ülaltoodud koodi kasutamist oma vaates peaks teie vaade välja nägema allpool näidatud viisil.

Faili PassNum.view.xml lähtekood

Samm 5) PassNum.controller.js lähtekood

Ainult onInit() meetodit on muudetud. Kõik muu selles failis jääb samaks.

onInit: function() {

	jQuery.sap.registerModulePath("DisplayMonth", "../zdisplaymonth");
	},

	clickbutton:function(oEvent)
	{
		sap.ui.getCore().getEventBus().publish("exchange",
				"data", oEvent.oSource.sId.split("--")[1]);


	}

6. samm) emakomponendi juurutamine SAP NetWeaveri lüüsiserver

Paigalda rakendus ABAP-i esiserverisse ja käivita see. Selle käivitamiseks paremklõpsa projektil ja vali suvand „Käivita ABAP-serveris“.

Emakomponendi juurutamine SAP Netweaveri lüüsiserver

Allpool URL avaneb Eclipse brauser.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Kopeeri URL ja käivitage see brauseris. Ülaltoodud hostinimes (kollasega märgitud) on teie ABAP-i esiserveri hostinimi.

Väljund

SAP Netweaveri lüüsiserveri väljund

Klõpsa nupul „Esimene“ ja jaanuar peaks ilmuma alamkomponendis.

SAP Netweaveri lüüsiserveri väljund

Nautige kaunite ja tundlike veebirakenduste loomist SAPUI5.

KKK

SAPUI5 on patenteeritud kommertsväljaanne, mis tarnitakse koos SAP litsentsid. OpenUI5 on avatud lähtekoodiga Apache 2.0 alamhulk, millest puuduvad teatud ettevõtte juhtelemendid, näiteks sap.ui.comp nutikad vormid.

Fiori on SAPdisainisüsteem ja rakenduste kataloog. SAPUI5 on JavaSkriptiraamistik, mis renderdab Fiori rakendusi, nii et iga Fiori ekraan on sellele üles ehitatud SAPUI5 juhtelemendid.

Alustage responsiivsete juhtelementide jaoks sap.m-ist, ruudustikulaadsete andmete jaoks sap.ui.table'ist ja diagrammide jaoks sap.viz'ist. Need kolm katavad enamiku ettevõtte ekraanipilte, mida loote.

Jah. SAP Ehitama Code ja GitHub Copilot saab XML-vaateid, kontrolleri tüvesid ja JSONModel-sidemeid luua loomuliku keele viipade abil, kuigi arendajad vaatavad genereeritud koodi ikkagi üle.

Tehisintellekti assistendid genereerivad OPA5 ja QUnit testijuhtumeid, pakuvad välja aria-label väärtusi ja märgistavad puuduvad klaviatuurikäitlejad, helping meeskonnad kohtuvad SAP ligipääsetavuse standardid kiiremini.

Võta see postitus kokku järgmiselt: