SAPUI5 Урок за начинаещи

⚡ Умно обобщение

SAPUI5 е SAPадаптивната HTML5 рамка, която захранва корпоративни уеб приложения на настолни компютри, мобилни устройства и таблети. Това ръководство обяснява MVC архитектурата, компонентния модел, библиотеките и как да се изградят родителски и дъщерни компоненти вътре. Eclipse.

  • 📱 Адаптивен потребителски интерфейс: SAPUI5 използва библиотеката sap.m, така че една кодова база се адаптира автоматично към екраните на настолни компютри, таблети и мобилни устройства.
  • 🧩 Модел на компонента: UI компонентите разширяват sap.ui.core.UIComponent, докато Faceless Components разширяват sap.ui.core.Component за многократна употреба, модулен код.
  • MVC модел: Моделите съхраняват данни, изгледите рендират маркировка в XML или JSON, а контролерите обработват логиката на събитията независимо.
  • 🛠️ Разгръщане на NetWeaver: Eclipse с SAP Пакети с инструменти за разработка SAPUI5 приложения като BSP приложения, хоствани на ABAP frontend сървъра.
  • Съобщения за шина за събития: Родителските и дъщерните компоненти обменят данни чрез каналите за публикуване и абониране sap.ui.getCore().getEventBus().

SAPUI5 Урок за начинаещи

Какво е SAPUI5?

SAPUI5 е набор от библиотеки за изграждане на адаптивни уеб приложения, които работят на множество устройства като настолен компютър, мобилно устройство и таблет. SAPUI5 работи MVC концепция за ускоряване на цикъла на разработка чрез създаване на данни, бизнес логика и представяне на данни отделно в изгледа. Така че разработването на изглед и контролер може да се осъществи независимо за създаване на модели (контейнери за данни).

SAPUI5 е най-новият от поредицата SAP Технологии за разработка на UI. За да се осигури уеб интеграция за основния SAP ERP система, SAP излезе с множество технологии за разработка на UI като BSP (страници на бизнес сървър), PDK (комплект за разработка на портал), Web Dynpro Java, Web Dynpro ABAP. И наследникът на Web Dynpro ABAP е SAPUI5.

SAPUI5 Archiтекстура

SAPUI5 Archiтекстура
SAPUI5 Archiтекстура

SAPUI Archiтектурна диаграма

В горното ArchiВ текстурата първото поле „Устройства“ показва устройствата, на които работят UI5 приложенията. UI5 приложенията могат да бъдат достъпни чрез мобилно приложение или всеки браузър. Този слой се нарича „Представителен слой“.

SAPUI5 приложенията и oData услугите се намират на SAP NetWeaver Gateway Server. Този слой от архитектурата се нарича „слой на приложението“.

Действителната бизнес логика е внедрена в SAP основни системи като ECC, CRM и BW. Бизнес логиката може да бъде реализирана с помощта на SAP програми и функционални модули. SAP се намират транзакционните и основните данни SAP системи. Този слой се нарича „слой на базата данни“ или „слой за постоянство“.

SAPUI5 компонент

Компонентът е част от код за многократна употреба. Съществуват 2 вида компоненти, предоставени от SAPUI5:

  1. Компоненти на потребителския интерфейс – Те представляват потребителски интерфейс, съдържащ елементи на потребителския интерфейс. Те са базирани на SAPUI5 клас, наречен sap.ui.core.UIComponent
  2. Безлични компоненти – Те нямат потребителски интерфейс. Базирани са на SAPUI5 клас, наречен sap.ui.core.Component

По същество компонентът е папка. Когато създавате нов SAPПриложение UI5, ще можете да видите структура на папки, създадена във вашия изследовател на проекти, както е показано по-долу.

SAPUI5 компонент

В това UI5 приложение, PassNum е компонент. Файлът Component.js е задължителен, за да може едно UI5 приложение да се държи като компонент.

Следващият в това SAPUI5 Eclipse урок, ще научим как да настроим SAPUI5.

SAPНастройка на UI5

Преди да започнем, трябва да се уверите, че:

  1. Eclipse (версия Luna) е инсталиран на вашия лаптоп
  2. SAP Инструменти за разработка за Eclipse Luna са инсталирани на вашия Eclipse (SAP Инструменти за разработка за Eclipse Луна - https://tools.hana.ondemand.com/luna/)
  3. SAP Подложката за влизане е инсталирана и имате достъп до SAP Системата NetWeaver Gateway за внедряване и тестване на приложението, което ще изградим в този блог.

След като приложението е напълно изградено, то трябва да изглежда по следния начин:

SAPНастройка на UI5

В този SAPВ ръководството за UI5 уроци ще създадем 2 компонента, наречени Родителски компонент и Дъщерен компонент. Първо ще създадем Дъщерния компонент и след това ще го използваме в Родителския компонент.

Да започнем да си цапаме ръцете.

Част 1) Създаване на дъщерно приложение

Нашата цел е да създадем Дъщерен компонент, който ще приема число от 1 до 12 и ще показва името на месеца. Например, когато получи 3, трябва да показва „Март“.

Стъпка 1) Създайте UI проекта

Отидете на Файл->Нов->Други->SAPРазработка на UI5 приложения -> Проект за приложения.

Създайте UI проекта

Създайте проект за приложение за SAPUI5, като следвате инструкциите на помощника. Вижте екранната снимка по-долу.

Създайте UI проекта

Въведете името на проекта и оставете останалите селекции да останат такива, каквито са предложени от съветника.

Създайте UI проекта

На горната екранна снимка има 2 вида библиотеки, показани като радио бутони:

  1. сап.м
  2. sap.ui.commons

Когато изберете sap.m, вие казвате на съветника да създаде проект за UI5 приложение, чийто раздел за първоначално зареждане автоматично ще включва библиотеката sap.m, предназначена за създаване на адаптивни уеб приложения.

Следващият в това SAP В урока за FIORI ще видите секцията на съветника по-долу, където трябва да създадете първоначалния изглед. Първоначалният изглед е изглед, който ще се рендира първи при достъп до приложението.

Създайте UI проекта

Тук трябва да зададете името на изгледа и да изберете типа на изгледа. SAPUI5 поддържа 4 вида изглед, както се вижда на екрана по-горе. Така потребителският интерфейс на a SAPПриложението UI5 може да бъде създадено с помощта на JavaСкрипт или XML или JSON или HTML, който и език да ви е удобен.

В края на помощника ще бъде създаден нов проект, който ще бъде показан в прозореца Project Explorer на Eclipse както е показано по-долу.

Създайте UI проекта

Стъпка 2) Component.js код

След това, нека създадем Component.js файл и да напишем кода по-долу в него.

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) Index.html код

След това, нека кажем на нашия файл index.html да зареди Component.js, когато приложението бъде достъпно. Напишете кода по-долу във файла 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>

Стъпка 4) DisplayMonthView.view.xml код

След това, нека напишем код в нашия изглед displaymonth, за да покажем месеца, чийто номер е получен от родителския компонент.

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

След като сте поставили горния код, изгледът ви трябва да изглежда както е показано по-долу.

DisplayMonthView.view.xml код

Стъпка 5) DisplayMonthView.controller.js код

И накрая, нека напишем кода на контролния файл на DisplayMonthView.

Кодът е написан само в метода hook onInit(), така че само той е поставен тук. Останалата част от файла е генерирана от рамката.

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) Внедряване на приложението на SAP NetWeaver Gateway сървър

Разгръщайте проекта и дайте техническото име на BSP приложението, генерирано на ABAP frontend сървъра. Нека името бъде zdisplaymonthВашият проект трябва да изглежда както е показано по-долу.

SAP Netweaver Gateway сървър

ЧАСТ 2) Създаване на родителски компонент

Сега е време да създадем нов компонент (родителски компонент), който ще използва компонента, който създадохме досега в този урок.

Стъпка 1) Създайте нов SAPUI5 приложение

Отидете на Файл->Нов->Други->SAPРазработка на UI5 приложения -> Проект за приложения. След това следвайте инструкциите на съветника, за да създадете нов SAPПроект за UI5 приложение. Това е описано подробно в стъпка 1 от част 1 в този урок по-горе.

Името на родителския проект Component е Номер на паролаТехническото име на BSP приложението, генерирано след внедряването, е zpassnumСтруктурата на проекта ще изглежда както е показано по-долу.

Създайте нов SAPUI5 приложение

Нека сега напишем код във файловете index.html, Component.js, PassNum.view.xml и PassNum.controller.js.

Стъпка 2) Източник Code на 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-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>

Стъпка 3) Изходен код на файла Component.js на родителския компонент

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

  },
});

Стъпка 4) Изходен код на файла 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>

След като използвате горния код във вашия изглед, той трябва да изглежда както е показано по-долу.

Изходният код на файла PassNum.view.xml

Стъпка 5) Изходен код на PassNum.controller.js

Само методът onInit() е променен. Всичко останало в този файл остава същото.

onInit: function() {

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

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


	}

Стъпка 6) Внедряване на родителски компонент към SAP NetWeaver Gateway сървър

Разположите приложението на ABAP frontend сървъра и го стартирайте. Би трябвало да можете да го стартирате, като щракнете с десния бутон върху проекта и изберете опцията „Стартирай на ABAP сървър“.

Внедряване на родителски компонент към SAP Netweaver Gateway сървър

В по-долу URL ще се отвори в Eclipse браузър.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Копирайте URL и го стартирайте в действителния браузър. В горното име на хост (отбелязано в жълто) е името на ��оста на вашия ABAP frontend сървър.

Продукция

SAP Изход на сървъра на Netweaver Gateway

Кликнете върху бутона „Първи“ и януари трябва да се покаже в детския компонент.

SAP Изход на сървъра на Netweaver Gateway

Насладете се на създаването на красиви, отзивчиви уеб приложения, като използвате SAPUI5.

Въпроси и Отговори

SAPUI5 е собственото търговско издание, доставяно с SAP лицензи. OpenUI5 е подмножеството с отворен код Apache 2.0, в което липсват някои корпоративни контроли, като например интелигентните формуляри sap.ui.comp.

Фиори е SAPСистемата за дизайн и каталогът с приложения на. SAPUI5 е JavaСкриптова рамка, която рендерира приложенията на Fiori, така че всеки екран на Fiori е изграден върху SAPUI5 контроли.

Започнете със sap.m за адаптивни контроли, sap.ui.table за данни в стил мрежа и sap.viz за диаграми. Тези три файла покриват повечето корпоративни екрани, които ще създавате.

Да. SAP Изграждане Code и GitHub Copilot може да създава XML изгледи, контролерни заключващи елементи и JSONModel обвързвания от подкани на естествен език, въпреки че разработчиците все още преглеждат генерирания код.

AI асистентите генерират OPA5 и QUnit тестове, предлагат стойности на aria-label и маркират липсващи клавиатурни манипулатори, helping отборите се срещат SAP стандартите за достъпност по-бързо.

Обобщете тази публикация с: