SAPYeni Başlayanlar İçin UI5 Eğitimi

⚡ Akıllı Özet

SAPUI5 şudur: SAPMVC, masaüstü, mobil ve tablet cihazlarda kurumsal web uygulamalarına güç veren duyarlı bir HTML5 çerçevesidir. Bu kılavuz, MVC mimarisini, bileşen modelini, kütüphaneleri ve MVC içinde üst ve alt bileşenlerin nasıl oluşturulacağını açıklamaktadır. Eclipse.

  • ???? Duyarlı kullanıcı arayüzü: SAPUI5, sap.m kütüphanesini kullandığı için tek bir kod tabanı masaüstü, tablet ve mobil ekranlara otomatik olarak uyum sağlar.
  • 🧩 Bileşen modeli: Kullanıcı arayüzü bileşenleri sap.ui.core.UIComponent'ten, arayüzsüz bileşenler ise yeniden kullanılabilir, modüler kod için sap.ui.core.Component'ten türetilmiştir.
  • ⚙️ MVC modeli: Modeller verileri tutar, Görünümler XML veya JSON formatında işaretlemeyi oluşturur ve Denetleyiciler olay mantığını bağımsız olarak ele alır.
  • NetWeaver dağıtımı: Eclipse 'da SAP Geliştirme Araçları paketleri SAPABAP ön uç sunucusunda barındırılan BSP uygulamaları olarak UI5 uygulamaları.
  • Olay veri yolu mesajlaşması: Ana ve alt bileşenler, sap.ui.getCore().getEventBus() yayınlama ve abone olma kanalları aracılığıyla veri alışverişinde bulunur.

SAPYeni Başlayanlar İçin UI5 Eğitimi

Nedir? SAPUI5?

SAPUI5 Masaüstü, Mobil ve Tablet gibi birden fazla cihazda çalışan duyarlı web uygulamaları oluşturmaya yönelik bir kitaplık setidir. SAPUI5 çalışıyor MVC konsepti görünümde verileri, iş mantığını ve verilerin temsilini ayrı ayrı oluşturarak geliştirme döngüsünü hızlandırmak. Böylece görünüm ve denetleyicinin geliştirilmesi, modeller (veri kapları) oluşturmak için bağımsız olarak gerçekleşebilir.

SAPUI5 serinin en sonuncusudur SAP Kullanıcı arayüzü geliştirme teknolojileri. Temelin web entegrasyonunu sağlamak için SAP ERP sistemi, SAP BSP (İş sunucusu sayfaları), PDK (Portal geliştirme kiti), Web Dynpro gibi birden fazla kullanıcı arayüzü geliştirme teknolojisi ile geldi Java, Web Dynpro ABAP. Ve Web Dynpro ABAP'ın halefi SAPkullanıcı arabirimi5.

SAPUI5 Archidoku

SAPUI5 Archidoku
SAPUI5 Archidoku

SAPUI Archidoku şeması

Yukarıda ArchiYapı bölümünde, ilk kutu olan 'Cihazlar', UI5 uygulamalarının çalıştığı cihazları gösterir. UI5 uygulamalarına mobil uygulama veya herhangi bir tarayıcı üzerinden erişilebilir. Bu katmana 'Sunum Katmanı' denir.

SAPUI5 uygulamaları ve oData hizmetleri şu platformda yer almaktadır: SAP NetWeaver Ağ Geçidi Sunucusu. Mimari yapının bu katmanına 'Uygulama Katmanı' denir.

Gerçek iş mantığı şu şekilde uygulanır: SAP ECC, CRM ve BW gibi temel sistemler. İş mantığı şu şekilde uygulanabilir: SAP programlar ve fonksiyon modülleri. SAP işlemsel ve Ana Veriler burada bulunur SAP sistemler. Bu katmana 'Veritabanı Katmanı' veya 'Kalıcılık Katmanı' denir.

SAPUI5 Bileşeni

Bileşen, yeniden kullanılabilir bir kod parçasıdır. İki tür bileşen sağlanmaktadır. SAPkullanıcı arayüzü5:

  1. Kullanıcı Arayüzü Bileşenleri – Bunlar, kullanıcı arayüzü öğelerini içeren bir kullanıcı arayüzünü temsil eder. Bunlar şunlara dayanmaktadır: SAPUI5 sınıfı sap.ui.core.UIComponent olarak adlandırılır.
  2. Arayüzsüz Bileşenler – Bunların kullanıcı arayüzü yoktur. Bunlar şu temellere dayanmaktadır: SAPsap.ui.core.Component adlı UI5 sınıfı

Temel olarak, bir Bileşen bir klasördür. Yeni bir tane oluşturduğunuzda SAPUI5 uygulamasında proje gezgininizde aşağıdaki gibi oluşturulmuş bir klasör yapısını görebileceksiniz.

SAPUI5 Bileşeni

Bu UI5 uygulamasında PassNum bir bileşendir. Bir UI5 uygulamasının bileşen gibi davranabilmesi için Component.js dosyası zorunludur.

Bunda sonraki SAPUI5 Eclipse öğretici, nasıl kurulum yapılacağını öğreneceğiz SAPkullanıcı arabirimi5.

SAPUI5 Kurulumu

Başlamadan önce şunlardan emin olmanız gerekiyor:

  1. Eclipse (Luna sürümü) dizüstü bilgisayarınızda yüklü
  2. SAP için Geliştirme Araçları Eclipse Luna sizin bilgisayarınıza yüklenmiştir. Eclipse (SAP için Geliştirme Araçları Eclipse ay - https://tools.hana.ondemand.com/luna/)
  3. SAP Giriş paneli yüklendi ve erişim hakkınız var. SAP Bu blogda geliştireceğimiz uygulamanın dağıtımı ve test edilmesi için NetWeaver Gateway sistemi.

Uygulama tamamen oluşturulduktan sonra aşağıdaki gibi görünmelidir:

SAPUI5 Kurulumu

Bu SAPUI5 eğitim kılavuzunda, Parent Component ve Child Component adında iki bileşen oluşturacağız. İlk olarak Child Component'i oluşturacağız ve ardından onu Parent Component'te kullanacağız.

Ellerimizi kirletmeye başlayalım.

Bölüm 1) Alt Başvuru Oluşturun

Amacımız, 1 ile 12 arasında bir sayı kabul eden ve ayın adını görüntüleyen bir Alt Bileşen oluşturmaktır. Örneğin, 3 sayısını aldığında 'Mart' yazısını görüntülemelidir.

Adım 1) UI Projesini Oluşturun

Dosya->Yeni->Diğer->'e gidinSAPUI5 Uygulama Geliştirme -> Uygulama Projesi.

Kullanıcı Arayüzü Projesini Oluşturun

için bir uygulama projesi oluşturun. SAPSihirbazı takip ederek UI5'i kurun. Aşağıdaki ekran görüntüsüne bakın.

Kullanıcı Arayüzü Projesini Oluşturun

Projenin adını girin ve diğer seçimleri sihirbazın önerdiği şekilde bırakın.

Kullanıcı Arayüzü Projesini Oluşturun

Yukarıdaki ekran görüntüsünde, radyo düğmesi olarak görüntülenen 2 tür kütüphane bulunmaktadır:

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

sap.m'yi seçtiğinizde, sihirbaza, bootstrap bölümü otomatik olarak duyarlı web uygulamaları oluşturmak için tasarlanmış sap.m kütüphanesini içerecek bir UI5 uygulama projesi oluşturmasını söylüyorsunuz.

Bunda sonraki SAP FIORI eğitiminde, başlangıç ​​görünümünü oluşturmanız gereken sihirbazın aşağıdaki bölümünü göreceksiniz. Başlangıç ​​görünümü, uygulamaya erişildiğinde ilk olarak oluşturulacak görünümdür.

Kullanıcı Arayüzü Projesini Oluşturun

Burada görünümün adını vermeniz ve görünüm türünü seçmeniz gerekiyor. SAPUI5, yukarıdaki ekranda görüldüğü gibi 4 tür görünümü destekler. Yani bir kullanıcı arayüzü SAPUI5 uygulaması kullanılarak oluşturulabilir JavaKomut dosyası veya XML veya JSON veya HTML, hangisine aşina iseniz onu kullanabilirsiniz.

Sihirbazın sonunda, yeni bir proje oluşturulacak ve Proje Gezgini penceresinde görüntülenecektir. Eclipse aşağıdaki gibi.

Kullanıcı Arayüzü Projesini Oluşturun

Adım 2) Component.js kodu

Şimdi de Component.js adında bir dosya oluşturalım ve içine aşağıdaki kodu yazalım.

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


  },
});

Adım 3) Index.html kodu

Şimdi de, uygulamamıza erişildiğinde Component.js dosyasının yüklenmesi için index.html dosyamıza talimat verelim. Aşağıdaki kodu index.html dosyasına yazın.

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

Adım 4) DisplayMonthView.view.xml kodu

Şimdi de, üst bileşenden aldığımız ay numarasını görüntülemek için displaymonth görünümümüze kod yazalım.

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

Yukarıdaki kodu yapıştırdıktan sonra, görünümünüz aşağıdaki gibi olmalıdır.

DisplayMonthView.view.xml kodu

Adım 5) DisplayMonthView.controller.js kodu

Son olarak, DisplayMonthView'in Controller dosyasının kodunu yazalım.

Kod yalnızca onInit() hook metodunda yazılmıştır, bu nedenle buraya sadece o kısım yapıştırılmıştır. Dosyanın geri kalanı ise framework tarafından oluşturulduğu gibidir.

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

Adım 6) Uygulamanın dağıtımı SAP NetWeaver Ağ Geçidi Sunucusu

Projeyi dağıtın ve ABAP ön uç sunucusunda oluşturulan BSP uygulamasının teknik adını verin. Ad şu olsun: zdisplaymonthProjeniz aşağıdaki gibi görünmelidir.

SAP Netweaver Ağ Geçidi Sunucusu

BÖLÜM 2) Ana Bileşen Oluşturma

Şimdi, bu eğitimde şimdiye kadar oluşturduğumuz bileşeni kullanacak yeni bir bileşen (üst bileşen) oluşturmanın zamanı geldi.

Adım 1) Yeni bir tane oluşturun SAPUI5 uygulaması

Dosya->Yeni->Diğer->'e gidinSAPUI5 Uygulama Geliştirme -> Uygulama Projesi. Ardından, yeni bir proje oluşturmak için sihirbaz talimatlarını izleyin. SAPUI5 uygulama projesi. Bu, yukarıdaki eğitimde Bölüm 1'in 1. Adımında ayrıntılı olarak açıklanmıştır.

Ana bileşen projesinin adı şudur: PassNumDağıtım sonrasında oluşturulan BSP uygulamasının teknik adı şudur: zpassnumProje yapısı aşağıdaki gibi olacaktır.

Yeni bir tane oluştur SAPUI5 uygulaması

Şimdi index.html, Component.js, PassNum.view.xml ve PassNum.controller.js dosyalarına kod yazalım.

Adım 2) Kaynak Code Üst Bileşenin Index.html dosyasının

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

Adım 3) Parent Component'in Component.js dosyasının kaynak kodu

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

  },
});

Adım 4) PassNum.view.xml dosyasının kaynak kodu

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

Yukarıdaki kodu görünümünüzde kullandıktan sonra, görünümünüz aşağıdaki gibi olmalıdır.

PassNum.view.xml dosyasının kaynak kodu

Adım 5) PassNum.controller.js'nin kaynak kodu

Dosyadaki yalnızca onInit() metodu değiştirildi. Geri kalan her şey aynı kaldı.

onInit: function() {

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

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


	}

Adım 6) Ana Bileşenin Dağıtılması SAP NetWeaver Ağ Geçidi Sunucusu

Uygulamayı ABAP ön uç sunucusuna dağıtın ve çalıştırın. Projeye sağ tıklayıp 'ABAP sunucusunda çalıştır' seçeneğine tıklayarak çalıştırabilirsiniz.

Ana Bileşenin Dağıtımı SAP Netweaver Ağ Geçidi Sunucusu

Aşağıdaki URL açılacak Eclipse tarayıcı.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Kopya URL ve bunu gerçek tarayıcıda çalıştırın. Yukarıdaki ana bilgisayar adı (sarı renkle işaretlenmiş) ABAP ön uç sunucunuzun ana bilgisayar adıdır.

Çıktı

SAP Netweaver Ağ Geçidi Sunucu Çıkışı

'İlk' düğmesine tıklayın, ardından Ocak ayı Alt Bileşen'de görüntülenecektir.

SAP Netweaver Ağ Geçidi Sunucu Çıkışı

kullanarak güzel, duyarlı web uygulamaları oluşturmanın keyfini çıkarın. SAPkullanıcı arabirimi5.

SSS

SAPUI5, cihazla birlikte gönderilen tescilli ticari sürümdür. SAP Lisanslar. OpenUI5, Apache 2.0'ın açık kaynaklı bir alt kümesidir ve sap.ui.comp akıllı formları gibi bazı kurumsal kontrolleri içermez.

Fiori SAP'nin tasarım sistemi ve uygulama kataloğu. SAPUI5 şudur: JavaFiori uygulamalarını işleyen komut dosyası çerçevesi; dolayısıyla her Fiori ekranı bunun üzerine inşa edilmiştir. SAPUI5 kontrolleri.

Duyarlı kontroller için sap.m, tablo tarzı veriler için sap.ui.table ve grafikler için sap.viz ile başlayın. Bu üçü, oluşturacağınız kurumsal ekranların çoğunu kapsar.

Evet. SAP İnşa etmek Code GitHub Copilot, doğal dil istemlerinden XML görünümleri, denetleyici taslakları ve JSONModel bağlamaları oluşturabilir; ancak geliştiriciler yine de oluşturulan kodu inceler.

Yapay zekâ asistanları OPA5 ve QUnit test senaryoları oluşturur, aria-etiket değerleri önerir ve eksik klavye işleyicilerini işaretler.ping takımlar buluşuyor SAP erişilebilirlik standartlarını daha hızlı bir şekilde karşılıyoruz.

Bu yazıyı şu şekilde özetleyin: