SAPTutorial UI5 para iniciantes

โšก Resumo Inteligente

SAPUI5 รฉ SAPO framework HTML5 responsivo da [nome da empresa] impulsiona aplicaรงรตes web empresariais em dispositivos desktop, mรณveis e tablets. Este guia explica a arquitetura MVC, o modelo de componentes, as bibliotecas e como construir componentes pai e filho dentro do [nome da empresa]. Eclipse.

  • ๐Ÿ“ฑ Interface de usuรกrio responsiva: SAPA UI5 utiliza a biblioteca sap.m, permitindo que uma รบnica base de cรณdigo se adapte automaticamente a telas de desktop, tablet e celular.
  • ๐Ÿงฉ Modelo de componentes: Os componentes de interface do usuรกrio estendem a classe `sap.ui.core.UIComponent`, enquanto os componentes sem face estendem a classe `sap.ui.core.Component`, para permitir cรณdigo reutilizรกvel e modular.
  • โš™๏ธ Padrรฃo MVC: Os modelos armazenam dados, as visualizaรงรตes renderizam a marcaรงรฃo em XML ou JSON e os controladores lidam com a lรณgica de eventos de forma independente.
  • ๐Ÿ› ๏ธ Implantaรงรฃo do NetWeaver: Eclipse com as SAP Pacotes de ferramentas de desenvolvimento SAPAplicativos UI5 como aplicativos BSP hospedados no servidor front-end ABAP.
  • โœ… Mensagens do barramento de eventos: Os componentes pai e filho trocam dados atravรฉs dos canais de publicaรงรฃo e assinatura sap.ui.getCore().getEventBus().

SAPTutorial UI5 para iniciantes

O que รฉ a SAPUI5?

SAPUI5 รฉ um conjunto de bibliotecas para construir aplicativos da web responsivos que rodam em vรกrios dispositivos, como desktop, celular e tablet. SAPUI5 funciona em Conceito MVC para acelerar o ciclo de desenvolvimento criando dados, lรณgica de negรณcios e representaรงรฃo de dados separadamente na visualizaรงรฃo. Assim, o desenvolvimento da visualizaรงรฃo e do controlador pode ocorrer de forma independente para a criaรงรฃo de modelos (contรชineres de dados).

SAPUI5 รฉ o mais recente da sรฉrie de SAP Tecnologias de desenvolvimento de UI. A fim de fornecer integraรงรฃo web para o SAP Sistema ERP, SAP criou vรกrias tecnologias de desenvolvimento de UI, como BSP (pรกginas de servidor de negรณcios), PDK (kit de desenvolvimento de portal), Web Dynpro Java, Web Dynpro ABAP. E o sucessor do Web Dynpro ABAP รฉ SAPUI5.

SAPUI5 Archiarquitetura

SAPUI5 Archiarquitetura
SAPUI5 Archiarquitetura

SAPUI Archidiagrama de arquitetura

No acima ArchiNa arquitetura, a primeira caixa, 'Dispositivos', indica os dispositivos nos quais os aplicativos UI5 sรฃo executados. Os aplicativos UI5 podem ser acessados โ€‹โ€‹por meio de um aplicativo mรณvel ou de qualquer navegador. Essa camada รฉ chamada de 'Camada de Apresentaรงรฃo'.

SAPOs aplicativos UI5 e os serviรงos oData residem no SAP Servidor NetWeaver Gateway. Esta camada da arquitetura รฉ chamada de 'Camada de Aplicaรงรฃo'.

A lรณgica de negรณcios real รฉ implementada em SAP Sistemas centrais como ECC, CRM e BW. A lรณgica de negรณcios pode ser implementada usando SAP programas e mรณdulos de funรงรฃo. SAP Dados transacionais e mestres residem em SAP sistemas. Essa camada รฉ chamada de 'Camada de Banco de Dados' ou 'Camada de Persistรชncia'.

SAPComponente UI5

Um componente รฉ um trecho de cรณdigo reutilizรกvel. Existem dois tipos de componentes fornecidos por SAPIU5:

  1. Componentes de IU โ€“ Representam uma interface de usuรกrio contendo elementos de IU. Sรฃo baseados em SAPClasse UI5 โ€‹โ€‹chamada sap.ui.core.UIComponent
  2. Componentes sem interface grรกfica โ€“ Estes nรฃo possuem interface de usuรกrio. Sรฃo baseados em SAPClasse UI5 โ€‹โ€‹chamada sap.ui.core.Component

Essencialmente, um Componente รฉ uma pasta. Quando vocรช cria um novo SAPAplicativo UI5, vocรช poderรก ver uma estrutura de pastas criada em seu explorador de projetos como abaixo.

SAPComponente UI5

Nesta aplicaรงรฃo UI5, PassNum รฉ um componente. O arquivo Component.js รฉ obrigatรณrio para que uma aplicaรงรฃo UI5 se comporte como um componente.

A seguir neste SAPUI5 Eclipse tutorial, aprenderemos como configurar SAPUI5.

SAPConfiguraรงรฃo UI5

Antes de comeรงarmos, vocรช precisa garantir que:

  1. Eclipse (versรฃo Luna) estรก instalado no seu laptop
  2. SAP Ferramentas de Desenvolvimento para Eclipse Luna estรก instalado no seu Eclipse (SAP Ferramentas de Desenvolvimento para Eclipse Lua - https://tools.hana.ondemand.com/luna/)
  3. SAP O Logon Pad estรก instalado e vocรช tem acesso ao SAP Sistema NetWeaver Gateway para implantaรงรฃo e teste do aplicativo que vamos construir neste blog.

Depois que o aplicativo estiver completamente construรญdo, ele deverรก ficar assim:

SAPConfiguraรงรฃo UI5

Neste curso SAPNeste guia de tutoriais de UI5, criaremos dois componentes chamados Componente Pai e Componente Filho. Primeiro, criaremos o Componente Filho e, em seguida, o utilizaremos no Componente Pai.

Vamos comeรงar a sujar as mรฃos.

Parte 1) Criar aplicativo filho

Nosso objetivo รฉ criar um componente filho que aceite um nรบmero de 1 a 12 e exiba o nome do mรชs. Por exemplo, ao receber o nรบmero 3, ele deverรก exibir "Marรงo".

Etapa 1) Crie o projeto de IU

Vรก em Arquivo->Novo->Outro->SAPDesenvolvimento de aplicaรงรตes UI5 -> Projeto de aplicaรงรฃo.

Crie o projeto de IU

Crie um projeto de aplicativo para SAPUI5 seguindo o assistente. Veja a captura de tela abaixo.

Crie o projeto de IU

Digite o nome do projeto e deixe as outras opรงรตes como sugeridas pelo assistente.

Crie o projeto de IU

Na captura de tela acima, hรก 2 tipos de bibliotecas exibidas como botรตes de opรงรฃo:

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

Ao selecionar sap.m, vocรช estรก instruindo o assistente a criar um projeto de aplicativo UI5 cuja seรงรฃo de inicializaรงรฃo incluirรก automaticamente a biblioteca sap.m, destinada ร  criaรงรฃo de aplicativos da web responsivos.

A seguir neste SAP No tutorial do Fiori, vocรช verรก a seรงรฃo do assistente abaixo onde precisa criar a visualizaรงรฃo inicial. Uma visualizaรงรฃo inicial รฉ a primeira visualizaรงรฃo que serรก exibida quando o aplicativo for acessado.

Crie o projeto de IU

Aqui vocรช precisa informar o nome da visualizaรงรฃo e selecionar o tipo de visualizaรงรฃo. SAPUI5 suporta 4 tipos de visualizaรงรฃo, conforme evidente na tela acima. Portanto, a UI de um SAPO aplicativo UI5 pode ser construรญdo usando JavaScript ou XML ou JSON ou HTML, qualquer linguagem com a qual vocรช se sinta confortรกvel.

Ao final do assistente, um novo projeto serรก criado e exibido na janela Explorador de Projetos. Eclipse como abaixo.

Crie o projeto de IU

Etapa 2) Cรณdigo Component.js

Em seguida, vamos criar um arquivo Component.js e escrever o cรณdigo abaixo nele.

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


  },
});

Etapa 3) Cรณdigo Index.html

Em seguida, vamos instruir nosso arquivo index.html a carregar o Component.js quando o aplicativo for acessado. Escreva o cรณdigo abaixo no arquivo 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>

Etapa 4) Cรณdigo DisplayMonthView.view.xml

Em seguida, vamos escrever o cรณdigo na nossa view displaymonth para exibir o mรชs cujo nรบmero foi recebido do componente pai.

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

Depois de colar o cรณdigo acima, sua visualizaรงรฃo deverรก ficar como abaixo.

Cรณdigo DisplayMonthView.view.xml

Etapa 5) Cรณdigo DisplayMonthView.controller.js

E, finalmente, vamos escrever o cรณdigo do arquivo Controller do DisplayMonthView.

O cรณdigo estรก escrito apenas no mรฉtodo de gancho onInit(), portanto, somente ele estรก colado aqui. O restante do arquivo รฉ gerado pelo 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);
	},

Etapa 6) Implantaรงรฃo do aplicativo em SAP Servidor NetWeaver Gateway

Implante o projeto e atribua o nome tรฉcnico ao aplicativo BSP gerado no servidor front-end ABAP. Por exemplo, o nome serรก zdisplaymรชsSeu projeto deverรก ter a aparรชncia abaixo.

SAP Servidor Gateway Netweaver

PARTE 2) Criando um componente pai

Agora รฉ hora de criar um novo componente (componente pai) que consumirรก o componente que criamos atรฉ agora neste tutorial.

Passo 1) Crie um novo SAPAplicativo UI5

Vรก em Arquivo->Novo->Outro->SAPUI5 Application Development -> Application Project. Em seguida, siga as instruรงรตes do assistente para criar um novo projeto. SAPProjeto de aplicativo UI5. Isso foi descrito em detalhes na Etapa 1 da Parte 1 deste tutorial acima.

O nome do projeto Componente pai รฉ Nรบmero da senhaO nome tรฉcnico da aplicaรงรฃo BSP gerada apรณs a implantaรงรฃo รฉ zpassnumA estrutura do projeto serรก semelhante ร  seguinte.

Crie um novo SAPAplicativo UI5

Vamos agora escrever o cรณdigo nos arquivos index.html, Component.js, PassNum.view.xml e PassNum.controller.js.

Etapa 2) Fonte Code do arquivo Index.html do componente pai

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

Etapa 3) Cรณdigo-fonte do arquivo Component.js do componente pai

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

  },
});

Etapa 4) Cรณdigo-fonte do arquivo 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>

Apรณs usar o cรณdigo acima em sua view, ela deverรก ficar como abaixo.

Cรณdigo fonte do arquivo PassNum.view.xml

Etapa 5) Cรณdigo-fonte de PassNum.controller.js

Apenas o mรฉtodo onInit() foi alterado. Todo o resto neste arquivo permanece igual.

onInit: function() {

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

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


	}

Etapa 6) Implantaรงรฃo do componente pai para SAP Servidor NetWeaver Gateway

Implante a aplicaรงรฃo no servidor front-end ABAP e execute-a. Vocรช poderรก executรก-la clicando com o botรฃo direito do mouse no projeto e selecionando a opรงรฃo "Executar no servidor ABAP".

Implantaรงรฃo do componente pai para SAP Servidor Gateway Netweaver

O abaixo URL abrirรก em Eclipse navegador.
http://hostname:8000/sap/bc/ui5_ui5/sap/zpassnum/index.html

Copie o URL e execute-o no navegador real. No nome do host acima (marcado em amarelo) estรก o nome do host do seu servidor frontend ABAP.

saรญda

SAP Saรญda do servidor Netweaver Gateway

Clique no botรฃo 'Primeiro' e janeiro deverรก aparecer no componente filho.

SAP Saรญda do servidor Netweaver Gateway

Divirta-se criando aplicativos web bonitos e responsivos usando SAPUI5.

Perguntas Frequentes

SAPUI5 รฉ a ediรงรฃo comercial proprietรกria fornecida com SAP licenรงas. O OpenUI5 รฉ um subconjunto de cรณdigo aberto do Apache 2.0, que nรฃo inclui certos controles corporativos como os formulรกrios inteligentes do sap.ui.comp.

Fiori รฉ SAPsistema de design e catรกlogo de aplicativos da [nome da empresa]. SAPUI5 รฉ o JavaFramework de scripts que renderiza aplicativos Fiori, portanto, todas as telas do Fiori sรฃo construรญdas sobre ele. SAPControles UI5.

Comece com sap.m para controles responsivos, sap.ui.table para dados em formato de grade e sap.viz para grรกficos. Esses trรชs abrangem a maioria das telas corporativas que vocรช criarรก.

Sim. Travas deslizantes portรกteis SAP Construir Code O GitHub Copilot pode gerar visualizaรงรตes XML, stubs de controladores e vinculaรงรตes JSONModel a partir de prompts em linguagem natural, embora os desenvolvedores ainda revisem o cรณdigo gerado.

Assistentes de IA geram casos de teste OPA5 e QUnit, sugerem valores de rรณtulos ARIA e sinalizam manipuladores de teclado ausentes, alรฉm de auxiliar no processo.ping equipes se encontram SAP Padrรตes de acessibilidade mais rรกpidos.

Resuma esta postagem com: