SAPUI5 vodič za početnike

Što je SAPUI5?

SAPUI5 je skup biblioteka za izradu responzivnih web aplikacija koje se izvode na više uređaja kao što su stolno računalo, mobilni uređaj i tablet. SAPUI5 radi dalje MVC koncept za ubrzanje razvojnog ciklusa stvaranjem podataka, poslovne logike i predstavljanja podataka zasebno u pogledu. Dakle, razvoj pogleda i kontrolera može se odvijati neovisno za stvaranje modela (spremnika podataka).

SAPUI5 je najnoviji u nizu SAP Tehnologije razvoja korisničkog sučelja. Kako bi se osigurala web integracija za temeljni SAP ERP sustav, SAP osmislio više tehnologija za razvoj korisničkog sučelja kao što su BSP (stranice poslovnog poslužitelja), PDK (komplet za razvoj portala), Web Dynpro Java, Web Dynpro ABAP. A nasljednik Web Dynpro ABAP je SAPUI5.

SAPUI5 Architektura

SAPUI5 Architektura
SAPUI5 Architektura

SAPUI Archidijagram strukture

U gore navedenom Architekture, prvi okvir, tj. 'Uređaji' označavaju uređaje na kojima se pokreću UI5 aplikacije. UI5 aplikacijama može se pristupiti putem mobilne aplikacije ili bilo kojeg preglednika na ovim uređajima. Ovaj sloj arhitekture naziva se 'Prezentacijski sloj'.

SAPUI5 aplikacije i oData usluge nalaze se na SAP NetWeaver pristupni poslužitelj. Ovaj sloj arhitekture naziva se 'Aplikacijski sloj'.

Stvarna poslovna logika implementirana je u SAP temeljni sustavi kao što su ECC, CRM i BW itd.… Poslovna logika može se implementirati pomoću SAP programi i funkcijski moduli. SAP nalaze se transakcijski i glavni podaci SAP sustava. Ovaj sloj arhitekture naziva se 'sloj baze podataka' ili 'sloj postojanosti'.

SAPUI5 komponenta

Komponenta je dio radnog koda koji se ponovno koristi gdje god je potrebno. Postoje 2 vrste komponenti koje nudi SAPUI5

  1. Komponente korisničkog sučelja – predstavljaju korisničko sučelje koje sadrži elemente korisničkog sučelja. Oni se temelje na SPAUI5 klasi koja se zove sap.ui.core.UIComponent
  2. Komponente bez lica – one nemaju korisničko sučelje. Ovi se temelje na SAPUI5 klasa pod nazivom sap.ui.core.Component

U biti, komponenta je mapa. Kada stvorite novi SAPUI5, moći ćete vidjeti strukturu mapa stvorenu u vašem pregledniku projekata kao što je dolje.

SAPUI5 komponenta

U ovoj UI5 aplikaciji, PassNum je komponenta. Datoteka Component.js obavezna je kako bi se aplikacija UI5 ponašala kao komponenta. Datoteka Component.js je kontroler komponente.

Sljedeći u ovome SAPUI5 Eclipse tutorial, naučit ćemo kako postaviti SAPUI5.

SAPPostavljanje UI5

Prije nego što počnemo, morate osigurati da –

  1. Eclipse (Luna verzija) instalirana je na vašem prijenosnom računalu
  2. SAP Razvojni alati za Eclipse Luna i instaliran na tvoju eclipse (SAP Razvojni alati za Eclipse Luna – https://tools.hana.ondemand.com/luna/)
  3. SAP Podloga za prijavu je instalirana i imate pristup SAP Sustav NetWeaver Gateway za implementaciju i testiranje na ovoj aplikaciji koju ćemo izgraditi na ovom blogu.

Nakon što je aplikacija u potpunosti izgrađena, trebala bi izgledati ovako:

SAPPostavljanje UI5

U ovom SAPUpute za UI5, stvorit ćemo 2 komponente, naime nadređenu komponentu i podređenu komponentu. Prvo ćemo kreirati podređenu komponentu, a zatim je iskoristiti u roditeljskoj komponenti.

Počnimo prljati ruke.

1. dio) Stvaranje podređene aplikacije

Naš cilj je stvoriti podređenu komponentu koja će prihvaćati brojeve od 1 do 12 i prikazivati ​​naziv mjeseca. Na primjer, prima 3; trebao bi prikazati 'ožujak'.

Korak 1) Stvorite UI projekt

Idite na File->New->Other->SAPRazvoj UI5 aplikacije->Projekt aplikacije.

Stvorite projekt korisničkog sučelja

Izradite projekt aplikacije za SAPUI5 slijedeći čarobnjak koji se otvori. Pogledajte snimak zaslona u nastavku.

Stvorite projekt korisničkog sučelja

Unesite naziv projekta, a ostali odabiri neka ostanu isti kao što je predložio čarobnjak.

Stvorite projekt korisničkog sučelja

Na gornjoj snimci zaslona postoje 2 vrste biblioteka prikazanih kao radio gumbi

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

Kada odaberete sap.m, kažete čarobnjaku da stvori projekt UI5 aplikacije čiji će bootstrap odjeljak automatski uključiti sap.m biblioteku koja je namijenjena stvaranju responzivne web aplikacije.

Sljedeći u ovome SAP FIORI vodič, vidjet ćete donji odjeljak čarobnjaka u kojem trebate stvoriti početni prikaz. Inicijalni pogled je pogled koji će se prvi prikazati kada se pristupi aplikaciji.

Stvorite projekt korisničkog sučelja

Ovdje trebate dati naziv prikaza i odabrati vrstu pogleda. SAPUI5 podržava 4 vrste prikaza kao što je vidljivo na gornjem zaslonu. Dakle, korisničko sučelje a SAPUI5 aplikacija može se izraditi pomoću Javascript ili XML ili JSON ili HTML koji god vam jezik odgovara.

Na kraju čarobnjaka kreirat će se novi projekt i prikazati u prozoru Project Explorera Eclipse kao dolje.

Stvorite projekt korisničkog sučelja

Korak 2) Component.js kod

Zatim kreirajmo datoteku Component.js i u nju napišimo donji kod.

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

  
  },
});

Korak 3) Index.html kod

Zatim ćemo reći datoteku index.html u koju ćemo učitati Component.js SAPUI5 kada se aplikaciji pristupa iz preglednika. Dakle, napišite donji kod u datoteku index.html.

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

Korak 4) DisplayMonthView.view.xml kod

Zatim, napišimo kod u prikazu displaymonth koji će prikazati mjesec čiji je broj mjeseca primljen od nadređene komponente.

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

Nakon što ste zalijepili gornji kod, vaš pogled bi trebao izgledati kao dolje-

DisplayMonthView.view.xml kod

Korak 5) DisplayMonthView.controller.js kod

I na kraju, napišimo kod DisplayMonthView Controller datoteke.

Kod je napisan samo u onInit() hook metodi ovog kontrolera stoga ovdje lijepite samo onInit() kod. Ostatak datoteke generiran je okvirom.

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

Korak 6) Implementacija aplikacije na SAP Netweaver pristupni poslužitelj

Postavite projekt i dajte tehnički naziv BSP aplikacije koja će se generirati na ABAP frontend poslužitelju. Neka bude ime zdisplaymonth. U ovom trenutku vaš bi projekt aplikacije trebao izgledati ovako.

SAP Netweaver pristupni poslužitelj

DIO 2) Stvaranje nadređene komponente

Sada je vrijeme za stvaranje nove komponente (roditeljske komponente) koja će koristiti komponentu koju smo do sada stvorili u ovom vodiču.

Korak 1) Stvorite novi SAPUI5 aplikacija

Idite na File->New->Other->SAPRazvoj UI5 aplikacije->Projekt aplikacije. Zatim slijedite upute čarobnjaka za stvaranje novog SAPProjekt UI5 aplikacije. Ovo je detaljno opisano u 1. koraku 1. dijela ovog vodiča iznad.

Naziv projekta nadređene komponente je PassNum. I tehnički naziv BSP aplikacije generiran nakon postavljanja SAPUI5 komponenta za ABAP frontend poslužitelj je zpassnum. Struktura projekta izgledat će ovako

Napravite novu SAPUI5 aplikacija

Napišimo sada kod u datotekama index.html, Component.js i PassNum.view.xml i PassNum.controller.js

Korak 2) Izvorni kod Index.html nadređene komponente

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

Korak 3) Izvorni kod datoteke Component.js nadređene komponente

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

Korak 4) Izvorni kod datoteke PassNum.view.xml

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

Nakon što upotrijebite gornji kod u svom prikazu, vaš bi prikaz trebao izgledati kao ispod

Izvorni kod datoteke PassNum.view.xml

Korak 5) Izvorni kod PassNum.controller.js

Promijenjena je samo metoda onInit(). Sve ostalo u ovoj datoteci ostaje isto

onInit: function() {

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

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

Korak 6) Implementacija nadređene komponente na SAP Netweaver pristupni poslužitelj

Postavite aplikaciju na ABAP frontend server i pokrenite je. Trebali biste ga moći pokrenuti desnim klikom na projekt i klikom na opciju "Pokreni na ABAP poslužitelju".

Implementacija nadređene komponente na SAP Netweaver pristupni poslužitelj

Donji URL otvorit će se u eclipse pregledniku.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Kopirajte URL i pokrenite ga u stvarnom pregledniku. U gornjem nazivu hosta označenom žutom bojom je naziv hosta vašeg ABAP frontend poslužitelja.

Izlaz

SAP Izlaz Netweaver Gateway poslužitelja

Kliknite gumb 'Prvi', siječanj bi se trebao prikazati u podređenoj komponenti.

SAP Izlaz Netweaver Gateway poslužitelja

Uživajte u stvaranju lijepih, responzivnih web aplikacija pomoću SAPUI5.

Rezime

U ovom SAPUI5 vodič, naučili smo:

  • SAPIstraženo UI5: SAPUI5 je najnoviji u nizu SAP Tehnologije razvoja korisničkog sučelja.
  • Što je SAP UI5: SAPUI5 je skup biblioteka koje se koriste za izradu responzivnih web aplikacija
  • Komponente SAPUI5 arhitektura su uređaji, klijent, pristupnik NetWeaver, sloj postojanosti
  • A SAPUI5 komponenta dio je radnog koda koji se ponovno koristi gdje god je potrebno
  • Vrste SAPKomponenta korisničkog sučelja 5 su 1) Komponente korisničkog sučelja, 2) Komponente bez lica
  • Naučili smo o konzumiranju jedne komponente sapui5 u drugu komponentu sapui5 i prijenosu podataka između dviju komponenti