Tecnologias de UI

UI5 Web Components

Os UI5 Web Components são uma biblioteca open source de web components independentes de framework, construídos sobre os padrões de navegador Custom Elements e Shadow DOM, que implementam o design SAP Fiori. Os UI5 Web Components funcionam com React, Angular, Vue ou HTML puro e complementam o SAPUI5: fornecem controles SAP Fiori, não um framework de aplicação com modelos, roteamento ou floorplans.

Resumo

Tipo
Biblioteca open source de web components com design SAP Fiori
Camada
Aplicações de UI
Licença
Apache 2.0
Versão major atual
2.x (2.0 lançada em julho de 2024)
Principais pacotes npm
@ui5/webcomponents, @ui5/webcomponents-fiori, @ui5/webcomponents-ai, @ui5/webcomponents-icons
Quem trabalha com ele
Desenvolvedores web que usam React, Angular, Vue ou JavaScript puro
Aplica-se a
SAP BTP e qualquer app web; independente de back-ends SAP
Camada: Aplicações de UIOnde se encaixa ▾
Onde se encaixa: L3 · Aplicações de UICamada: Aplicações de UI.L1L2L3L4L5L6BTP

Camada: Aplicações de UI

Abrir o mapa de arquitetura →

Como os UI5 Web Components funcionam?

Os UI5 Web Components são elementos HTML customizados. O desenvolvedor instala um pacote npm, importa os componentes de que o app precisa e os usa como tags, por exemplo um botão ou uma shell bar, como qualquer outro elemento HTML.

O mecanismo tem quatro partes:

  1. Custom Elements registram cada componente como uma tag própria, para que o navegador saiba como renderizá-lo e atualizá-lo.
  2. Shadow DOM encapsula a marcação e os estilos de cada componente, para que o CSS da página e o CSS do componente não interfiram um no outro.
  3. Temas vêm dos parâmetros de theming da SAP como variáveis CSS; é assim que os componentes seguem o SAP Horizon ou o Quartz e podem receber um tema customizado do UI theme designer.
  4. Empacotamento é responsabilidade do app: não há content delivery network oficial, então apenas os componentes importados entram no build do app.

Os componentes são distribuídos em pacotes: controles básicos, como inputs, listas, tabelas e diálogos; controles específicos do SAP Fiori, como shell bar, wizard e navegação lateral; controles relacionados a IA; e o conjunto de ícones. Os UI5 Web Components são, portanto, uma biblioteca de controles que qualquer stack web pode consumir, não um runtime que controla o app.

Quando usar UI5 Web Components em vez de SAPUI5?

O critério de decisão é qual framework controla a aplicação.

Use UI5 Web Components quando:

  • o app já é construído com React, Angular, Vue ou outro framework web e deve ter a aparência do SAP Fiori;
  • um site estático ou portal precisa de alguns elementos interativos no estilo SAP Fiori sem um framework completo;
  • o app é um micro-frontend que precisa permanecer isolado da página em que roda.

Use SAPUI5 quando:

  • o app é um app SAP Fiori no SAP S/4HANA ou no SAP Fiori Launchpad;
  • o app precisa de modelos OData, roteamento, floorplans do SAP Fiori elements ou adaptação pelo key user;
  • a equipe trabalha dentro das ferramentas e do ciclo de vida padrão da SAP para apps SAP Fiori.

Para a Alder Manufacturing, um portal de fornecedores em React para a Cedar Office Supply e a Bright Freight é um caso típico de UI5 Web Components; um app de aprovação de requisições de compra no launchpad não é. Os UI5 Web Components são adequados quando o framework web já está definido e o SAP Fiori é o padrão visual.

Como os UI5 Web Components funcionam com React, Angular e SAPUI5?

  • React: o UI5 Web Components for React encapsula os componentes para que se comportem como componentes React, com propriedades e eventos tipados. O wrapper acrescenta componentes de layout e componentes de gráficos próprios.
  • Angular: o UI5 Web Components for Angular fornece wrappers que suportam Angular forms e two-way binding sem contornos de schema.
  • Vue e JavaScript puro: os componentes são usados diretamente como custom elements.
  • SAPUI5: um app SAPUI5 pode carregar um UI5 Web Component como um controle comum. O SAPUI5 mapeia propriedades, slots, eventos e métodos para suas próprias propriedades, agregações, eventos e métodos. A configuração usa a extensão ui5-tooling-modules da UI5 CLI para empacotar os pacotes npm.

As antigas bibliotecas wrapper do SAPUI5 para web components (sap.ui.webc.main, sap.ui.webc.fiori, sap.ui.webc.common) foram marcadas como deprecated no SAPUI5 1.120 e removidas no 1.147, então trabalhos novos usam a integração direta. Os UI5 Web Components se conectam a cada framework por meio de wrappers finos, e não de um framework próprio.

Onde terminam os UI5 Web Components?

  • Sem framework de aplicação. Não há modelos, binding OData, roteamento nem ciclo de vida de componentes. O framework hospedeiro ou a equipe os fornece.
  • Sem floorplans. List reports, object pages e outros floorplans do SAP Fiori elements não existem como páginas prontas; a equipe os compõe a partir de componentes.
  • Sem integração nativa com o launchpad. Rodar um app desse tipo dentro do SAP Fiori Launchpad ou do SAP Build Work Zone exige uma abordagem de integração própria; o launchpad baseado em ABAP, por exemplo, pode integrá-lo pelo tipo de aplicação URL.
  • Nem todo controle SAPUI5 tem equivalente. O conjunto de componentes é amplo, mas menor que a lista completa de bibliotecas do SAPUI5.
  • Upgrades são responsabilidade da equipe. Como os componentes são empacotados no app, novas versões só chegam quando o app é reconstruído e reimplantado.

Nada disso é defeito: os UI5 Web Components deixam deliberadamente as decisões de arquitetura para o framework hospedeiro.

Quais são os erros comuns com os UI5 Web Components?

  1. Procurar uma content delivery network. O projeto espera que os apps empacotem apenas os componentes que importam. Correção: adicione os pacotes ao pipeline de build.
  2. Misturar versões major. A versão 2 mudou APIs em relação à versão 1. Correção: atualize todos os pacotes @ui5/webcomponents* juntos e siga as notas de migração.
  3. Confundir controles SAP Fiori com conformidade SAP Fiori. Os controles seguem o design SAP Fiori; layout de página, navegação e redação ainda precisam seguir as SAP Fiori Design Guidelines.
  4. Manter as antigas bibliotecas wrapper do SAPUI5. Apps que ainda usam sap.ui.webc.* deixam de funcionar nas releases do SAPUI5 em que essas bibliotecas foram removidas. Correção: migre para a integração direta de web components.
  5. Esquecer os recursos de tema. Temas customizados e a fonte SAP 72 vêm do conteúdo de theming da SAP; verifique se o build os disponibiliza.

A maioria dos problemas com UI5 Web Components vem do gerenciamento de build e de versões, não dos próprios componentes.

UI5 Web Components vs. SAPUI5: qual é a diferença?

UI5 Web ComponentsSAPUI5
O que éWeb components independentes de framework com design SAP FioriFramework de aplicação corporativo com controles, modelos e roteamento
Quem controla o appReact, Angular, Vue ou HTML puroO próprio SAPUI5
Dados e navegaçãoFornecidos pelo framework hospedeiroModelos OData, data binding e roteamento nativos
EntregaPacotes npm, empacotados em cada appContent delivery network do SAP BTP, plataforma ABAP, SAP S/4HANA
Uso típicoApps web e portais não SAPUI5 que devem ter a aparência do SAP FioriApps SAP Fiori no SAP S/4HANA e no SAP BTP, inclusive SAP Fiori elements

Os UI5 Web Components compartilham com o SAPUI5 a linguagem visual do SAP Fiori, mas o SAPUI5 é um framework de aplicação completo, enquanto os UI5 Web Components são controles para outros frameworks.

Perguntas frequentes

Os UI5 Web Components são gratuitos?

Sim. Os pacotes dos UI5 Web Components, incluindo o wrapper para React e o pacote de ícones, são publicados no npm sob a licença Apache 2.0. O conteúdo base de theming da SAP que eles usam, incluindo os arquivos da fonte 72, também é publicado sob a Apache 2.0.

Os UI5 Web Components substituem o SAPUI5?

Não. O projeto descreve os UI5 Web Components como complementares ao UI5, não como seu sucessor. O SAPUI5 continua sendo o framework para aplicações SAP Fiori completas, enquanto os UI5 Web Components atendem apps que já usam outro framework web ou nenhum.

Posso usar UI5 Web Components dentro de um app SAPUI5?

Sim. As releases atuais do SAPUI5 permitem que um app carregue UI5 Web Components e os use como controles SAPUI5 comuns, com a extensão ui5-tooling-modules empacotando os pacotes npm. As antigas bibliotecas wrapper sap.ui.webc estão deprecated e foram removidas nas releases recentes.

Quais temas os UI5 Web Components suportam?

Os UI5 Web Components suportam os temas SAP Horizon, com o Morning Horizon como padrão, além do Evening Horizon e de duas variantes de alto contraste, e os temas Quartz. Temas customizados criados com o UI theme designer também podem ser carregados.

O que é o UI5 Web Components for React?

O UI5 Web Components for React é uma biblioteca wrapper open source que faz os UI5 Web Components se comportarem como componentes React nativos, com definições TypeScript e tratamento correto de eventos. O UI5 Web Components for React também acrescenta componentes de layout e componentes de gráficos que não fazem parte dos pacotes base.

Fontes

Aplica-se a
SAP BTP
Última revisão

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP e os demais produtos e serviços SAP mencionados são marcas comerciais ou marcas registradas da SAP SE (ou de uma empresa afiliada da SAP) na Alemanha e em outros países. Este guia é independente e não é afiliado, patrocinado nem endossado pela SAP SE.