SAPVýukový program UI5 pro začátečníky

⚡ Chytré shrnutí

SAPUI5 je SAPResponzivní framework HTML5, který pohání podnikové webové aplikace na stolních počítačích, mobilních zařízeních a tabletech. Tato ukázka vysvětluje architekturu MVC, model komponent, knihovny a jak uvnitř vytvářet nadřazené a podřízené komponenty. Eclipse.

  • 📱 Responzivní uživatelské rozhraní: SAPUI5 používá knihovnu sap.m, takže jedna kódová základna se automaticky přizpůsobí obrazovkám stolních počítačů, tabletů a mobilních telefonů.
  • 🧩 Model komponenty: Komponenty uživatelského rozhraní rozšiřují sap.ui.core.UIComponent, zatímco Faceless Components rozšiřují sap.ui.core.Component o opakovaně použitelný modulární kód.
  • ⚙��� Vzor MVC: Modely uchovávají data, pohledy vykreslují značky v XML nebo JSON a kontrolery zpracovávají logiku událostí nezávisle.
  • 🛠️ Nasazení NetWeaveru: Eclipse s SAP Balíčky vývojových nástrojů SAPAplikace UI5 ​​jako BSP aplikace hostované na frontendovém serveru ABAP.
  • (Tj. Zprávy sběrnice událostí: Nadřazené a podřízené komponenty si vyměňují data prostřednictvím publikačních a odběrových kanálů sap.ui.getCore().getEventBus().

SAPVýukový program UI5 pro začátečníky

Co je to SAPUI5?

SAPUI5 je sada knihoven pro vytváření responzivních webových aplikací, které běží na více zařízeních, jako jsou stolní počítače, mobily a tablety. SAPUI5 funguje Koncept MVC urychlit vývojový cyklus vytvářením dat, obchodní logiky a reprezentace dat odděleně v pohledu. Vývoj pohledu a ovladače tedy může probíhat nezávisle a vytvářet modely (datové kontejnery).

SAPUI5 je nejnovější v řadě SAP Technologie vývoje uživatelského rozhraní. Aby bylo možné zajistit webovou integraci pro základní SAP ERP systém, SAP přišel s několika technologiemi pro vývoj uživatelského rozhraní, jako je BSP (stránky obchodního serveru), PDK (portal development kit), Web Dynpro Java, Web Dynpro ABAP. A nástupcem Web Dynpro ABAP je SAPUI5.

SAPUI5 Architecture

SAPUI5 Architecture
SAPUI5 Architecture

SAPUI Architecture Diagram

Ve výše uvedeném ArchiV textu první pole „Zařízení“ označuje zařízení, na kterých běží aplikace UI5. K aplikacím UI5 lze přistupovat prostřednictvím mobilní aplikace nebo libovolného prohlížeče. Tato vrstva se nazývá „prezentační vrstva“.

SAPAplikace UI5 ​​a služby oData se nacházejí na SAP Server NetWeaver Gateway. Tato vrstva architektury se nazývá „aplikační vrstva“.

Skutečná obchodní logika je implementována v SAP základní systémy jako ECC, CRM a BW. Obchodní logiku lze implementovat pomocí SAP programy a funkční moduly. SAP transakční a kmenová data jsou uložena SAP systémy. Tato vrstva se nazývá „databázová vrstva“ nebo „persistence vrstva“.

SAPKomponenta UI5

Komponenta je kus kódu, který lze znovu použít. Existují 2 typy komponent, které poskytuje SAPUI5:

  1. Komponenty uživatelského rozhraní – Představují uživatelské rozhraní obsahující prvky uživatelského rozhraní. Jsou založeny na SAPTřída UI5 s názvem sap.ui.core.UIComponent
  2. Beztvářné komponenty – Tyto nemají uživatelské rozhraní. Jsou založeny na SAPTřída UI5 s názvem sap.ui.core.Component

Komponenta je v podstatě složka. Když vytvoříte nový SAPUI5, budete moci vidět strukturu složek vytvořenou v průzkumníku projektu, jak je uvedeno níže.

SAPKomponenta UI5

V této aplikaci UI5 je PassNum komponentou. Soubor Component.js je povinný pro to, aby se aplikace UI5 ​​chovala jako komponenta.

Další v tomto SAPUI5 Eclipse tutoriálu, naučíme se, jak nastavit SAPUI5.

SAPNastavení UI5

Než začneme, musíte se ujistit, že:

  1. Eclipse (verze Luna) je nainstalována na vašem notebooku
  2. SAP Vývojové nástroje pro Eclipse Luna je nainstalována na vašem Eclipse (SAP Vývojové nástroje pro Eclipse Luna - https://tools.hana.ondemand.com/luna/)
  3. SAP Přihlašovací klávesnice je nainstalována a máte přístup k SAP Systém NetWeaver Gateway pro nasazení a testování aplikace, kterou budeme v tomto blogu vytvářet.

Po úplném sestavení aplikace by měla vypadat takto:

SAPNastavení UI5

V tomto SAPV tutoriálu k UI5 vytvoříme 2 komponenty s názvem Nadřazená komponenta a Podřízená komponenta. Nejprve vytvoříme Podřízenou komponentu a poté ji budeme používat v Nadřazené komponentě.

Začneme si špinit ruce.

Část 1) Vytvoření podřízené aplikace

Naším cílem je vytvořit podřízenou komponentu, která bude přijímat číslo od 1 do 12 a zobrazovat název měsíce. Například, když obdrží hodnotu 3, měla by zobrazit „březen“.

Krok 1) Vytvořte projekt uživatelského rozhraní

Přejděte na Soubor->Nový->Další->SAPVývoj aplikací UI5 -> Aplikační projekt.

Vytvořte projekt uživatelského rozhraní

Vytvořte projekt aplikace pro SAPUI5 podle pokynů průvodce. Viz snímek obrazovky níže.

Vytvořte projekt uživatelského rozhraní

Zadejte název projektu a ostatní výběry nechte tak, jak je navrhl průvodce.

Vytvořte projekt uživatelského rozhraní

Na výše uvedeném snímku obrazovky jsou zobrazeny 2 typy knihoven jako přepínače:

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

Když vyberete sap.m, sdělíte průvodci, aby vytvořil projekt aplikace UI5, jehož bootstrapová sekce bude automaticky obsahovat knihovnu sap.m, která je určena pro vytváření responzivních webových aplikací.

Další v tomto SAP V tutoriálu FIORI uvidíte níže uvedenou část průvodce, kde je třeba vytvořit počáteční zobrazení. Počáteční zobrazení je zobrazení, které se vykreslí jako první při přístupu k aplikaci.

Vytvořte projekt uživatelského rozhraní

Zde je třeba zadat název zobrazení a vybrat typ zobrazení. SAPUI5 podporuje 4 typy zobrazení, jak je patrné na obrazovce výše. Takže uživatelské rozhraní a SAPAplikace UI5 ​​může být sestavena pomocí JavaSkript nebo XML nebo JSON nebo HTML, podle toho, který jazyk vám vyhovuje.

Na konci průvodce bude vytvořen nový projekt a zobrazen v okně Průzkumník projektů. Eclipse jako níže.

Vytvořte projekt uživatelského rozhraní

Krok 2) Kód Component.js

Dále si vytvořme soubor Component.js a napíšeme do něj níže uvedený kód.

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


  },
});

Krok 3) Kód Index.html

Dále řekněme našemu souboru index.html, aby načetl Component.js při přístupu k aplikaci. Do souboru index.html napište níže uvedený kód.

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

Krok 4) Kód DisplayMonthView.view.xml

Dále si v našem zobrazení displaymonth napíšeme kód, který zobrazí měsíc, jehož číslo je přijato z nadřazené komponenty.

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

Po vložení výše uvedeného kódu by váš pohled měl vypadat takto.

DisplayMonthView.view.xml kód

Krok 5) Kód DisplayMonthView.controller.js

A nakonec si napišme kód souboru Controller pro DisplayMonthView.

Kód je napsán pouze v metodě hook onInit(), takže se zde vkládá pouze ten. Zbytek souboru je tak, jak ho vygeneroval framework.

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

Krok 6) Nasazení aplikace na SAP Server brány NetWeaver

Nasaďte projekt a zadejte technický název BSP aplikace generované na frontendovém serveru ABAP. Nechť název bude zdisplaymonthVáš projekt by měl vypadat takto.

SAP Server brány Netweaver

ČÁST 2) Vytvoření nadřazené komponenty

Nyní je čas vytvořit novou komponentu (nadřazenou komponentu), která bude využívat komponentu, kterou jsme dosud v tomto tutoriálu vytvořili.

Krok 1) Vytvořte nový SAPaplikace UI5

Přejděte na Soubor->Nový->Další->SAPVývoj aplikací UI5->Aplikační projekt. Poté postupujte podle pokynů průvodce a vytvořte nový SAPProjekt aplikace UI5. To bylo podrobně popsáno v kroku 1 části 1 v tomto tutoriálu výše.

Název nadřazeného projektu komponenty je Číslo_přístupuTechnický název aplikace BSP vygenerované po nasazení je zpassnumStruktura projektu bude vypadat níže.

Vytvoř nový SAPaplikace UI5

Nyní si napišme kód do souborů index.html, Component.js, PassNum.view.xml a PassNum.controller.js.

Krok 2) Zdroj Code souboru Index.html nadřazené komponenty

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

Krok 3) Zdrojový kód souboru Component.js nadřazené komponenty

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

  },
});

Krok 4) Zdrojový kód souboru 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>

Po použití výše uvedeného kódu ve vašem zobrazení by vaše zobrazení mělo vypadat takto.

Zdrojový kód souboru PassNum.view.xml

Krok 5) Zdrojový kód PassNum.controller.js

Změněna byla pouze metoda onInit(). Všechno ostatní v tomto souboru zůstává stejné.

onInit: function() {

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

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


	}

Krok 6) Nasazení nadřazené komponenty do SAP Server brány NetWeaver

Nasaďte aplikaci na frontendový server ABAP a spusťte ji. Měli byste ji být schopni spustit kliknutím pravým tlačítkem myši na projekt a výběrem možnosti „Spustit na serveru ABAP“.

Nasazení nadřazené komponenty do SAP Server brány Netweaver

Níže URL se otevře v Eclipse prohlížeč.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Zkopírujte URL a spusťte jej v samotném prohlížeči. Ve výše uvedeném názvu hostitele (označeném žlutě) je název hostitele vašeho frontendového serveru ABAP.

Výstup

SAP Výstup serveru brány Netweaver

Klikněte na tlačítko „První“ a v podřízené komponentě by se měl zobrazit leden.

SAP Výstup serveru brány Netweaver

Užijte si vytváření krásných, responzivních webových aplikací pomocí SAPUI5.

Nejčastější dotazy

SAPUI5 je proprietární komerční edice dodávaná s SAP licence. OpenUI5 je open-source podmnožina Apache 2.0, které chybí určité podnikové ovládací prvky, jako například chytré formuláře sap.ui.comp.

Fiori je SAPDesignový systém a katalog aplikací. SAPUI5 je JavaSkriptovací framework, který vykresluje aplikace Fiori, takže každá obrazovka Fiori je na něm postavena SAPOvládání UI5.

Začněte se sap.m pro responzivní ovládací prvky, sap.ui.table pro data ve stylu mřížky a sap.viz pro grafy. Tyto tři soubory pokrývají většinu podnikových obrazovek, které budete vytvářet.

Ano. SAP Vytvořit Code a GitHub Copilot dokáže vytvářet XML pohledy, pahýly kontroleru a vazby JSONModel z výzev v přirozeném jazyce, ačkoli vývojáři stále kontrolují vygenerovaný kód.

Asistenti umělé inteligence generují testovací případy OPA5 a QUnit, navrhují hodnoty aria-label a označují chybějící obslužné rutiny klávesnice, helpping t��my se setkají SAP standardy přístupnosti rychleji.

Shrňte tento příspěvek takto: