SAP Fiori Elements e floorplans

Flexible Programming Model

O flexible programming model (modelo de programação flexível) é a abordagem do SAP Fiori elements para OData V4 que combina, em um único app, building blocks orientados por metadados, pontos de extensão, controller extensions e custom pages com código SAPUI5 freestyle. O flexible programming model elimina a escolha de tudo ou nada entre um floorplan gerado e um app SAPUI5 inteiramente escrito à mão.

Resumo

Tipo
Abordagem de desenvolvimento dentro do SAP Fiori elements para OData V4
Camada
Aplicações de UI
Ferramentas principais
Building blocks (sap.fe.macros), custom pages (sap.fe.core.fpm), controller extensions
Pré-requisito
Serviço OData V4 com anotações de UI
Construído com
SAP Fiori tools no SAP Business Application Studio ou no Visual Studio Code
Quem trabalha com ele
Desenvolvedores SAP Fiori, desenvolvedores CAP e RAP, designers de UX
Aplica-se a
SAP S/4HANA on-premise e Private Edition, SAP BTP
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 funciona o modelo de programação flexível?

O modelo de programação flexível não é um framework separado, mas um conjunto de opções que o SAP Fiori elements para OData V4 oferece para ir além dos floorplans enquanto o framework continua no controle:

  1. Pontos de extensão em list reports e object pages aceitam seções, colunas e ações customizadas escritas em SAPUI5.
  2. Building blocks posicionam elementos orientados por metadados, como uma tabela, uma barra de filtros ou um campo, onde for necessário.
  3. Controller extensions e a ExtensionAPI permitem que o código customizado reaja a eventos do framework, como salvar ou navegar.
  4. Custom pages adicionam ao roteamento do app uma página com sua própria XML view. A página é executada no runtime do SAP Fiori elements (componente sap.fe.core.fpm), com o binding context do OData, navegação para páginas padrão e suporte a building blocks.

O modelo de programação flexível é, portanto, uma escala gradual entre UI gerada e UI escrita à mão, decidida página por página e seção por seção.

O que são building blocks no SAP Fiori elements?

Building blocks são elementos de UI reutilizáveis e orientados por anotações do SAP Fiori elements para OData V4, os mesmos elementos que o framework usa para montar seus floorplans.

  • Não são controles, mas templates. Um building block é um conjunto de instruções de templating. Em runtime, ele produz controles adequados aos dados vinculados: um texto para uma propriedade string, um seletor de data para uma data.
  • Configurados em três lugares. As anotações do serviço definem o comportamento padrão, atributos XML inline o refinam e o manifest sobrescreve ambos quando há conflito.
  • Referenciados por metadata path. Um building block aponta para um entity set, uma propriedade ou uma anotação, em vez de vincular colunas manualmente.
  • Exemplos: Table, FilterBar, Chart, Field, Share e Page.

Como leem as mesmas anotações que os floorplans, os building blocks herdam o gerenciamento de variantes, a personalização e o reconhecimento de draft. Os building blocks são o motivo pelo qual uma custom page ainda pode ter a aparência e o comportamento de uma página padrão do SAP Fiori elements.

Quando usar o modelo de programação flexível?

A orientação da SAP é usar SAP Fiori elements tanto quanto possível e SAPUI5 freestyle tanto quanto necessário:

RequisitoPonto de partida
Um list report e uma object page atendem à tarefaFloorplan de página inteira; adicione pontos de extensão apenas para as lacunas
O floorplan atende, mas uma área precisa de uma visualização especialSeção customizada ou coluna customizada dentro do floorplan
O layout é especial, mas filtragem, tabelas e formulários são padrãoCustom page com building blocks
A interação é única e os dados não são OData V4Página SAPUI5 freestyle

Os quatro podem conviver em um único app: um cockpit de fornecedores na Alder Manufacturing poderia combinar um gráfico customizado com um building block Table padrão e depois abrir uma object page padrão.

Teste de decisão: se uma página que você planeja construir em freestyle contém uma barra de filtros e uma tabela padrão, experimente primeiro uma custom page com building blocks. O modelo de programação flexível é a escolha certa quando o layout é customizado, mas as partes são padrão.

Quais são os pontos fortes do modelo de programação flexível?

  • Sem escolha rígida. As equipes não precisam abandonar o SAP Fiori elements no momento em que um requisito fica fora de um floorplan.
  • Comportamento padrão sem esforço extra. Os building blocks trazem do framework a filtragem, as variantes, as mensagens, o tratamento de draft e a acessibilidade.
  • As anotações continuam sendo a fonte da verdade. Um rótulo alterado nas anotações do serviço atualiza tanto as páginas de floorplan quanto as custom pages.
  • Superfície de extensão suportada. Controller extensions e a ExtensionAPI dão ao código customizado hooks documentados, mais fáceis de manter estáveis entre upgrades do SAPUI5.

Para apps OData V4, o modelo de programação flexível é o caminho mais direto para adicionar UI customizada sem abrir mão do que o SAP Fiori elements já oferece.

Até onde vai o modelo de programação flexível?

  • Apenas OData V4. Building blocks e custom pages pertencem ao SAP Fiori elements para OData V4. Um app OData V2 mantém os pontos de extensão do V2; adotar o modelo significa migrar app e serviço para o V4.
  • Depende da versão. Os building blocks chegam release a release, então um app só pode usar o que a versão do SAPUI5 do sistema de destino oferece; a API reference indica a release em que cada building block ficou disponível.
  • Nem todo recurso do floorplan é transferido. A SAP documenta, por exemplo, que criar um card para a seção Insights do My Home não está disponível quando o building block de tabela está em uma custom page ou em uma seção customizada.
  • O uso em freestyle tem pré-requisitos. Building blocks podem aparecer em apps SAPUI5 freestyle, mas a configuração que cada building block exige deve ser verificada na documentação do SAPUI5 da release em uso.
  • O SAP S/4HANA Cloud Public Edition segue suas próprias regras de extensibilidade para apps construídos pelo cliente; consulte a documentação dessa edição antes de planejar um.

O modelo de programação flexível amplia o que o SAP Fiori elements pode fazer; ele não elimina a dependência do OData V4 e de anotações bem projetadas.

Quais são os erros comuns com o modelo de programação flexível?

  1. Reconstruir elementos padrão à mão. Uma tabela customizada com sua própria lógica de filtro duplica os building blocks Table e FilterBar. Configure o building block em vez disso.
  2. Configurar em três lugares. Quando anotações, atributos XML e configurações do manifest descrevem a mesma tabela, o manifest prevalece e os outros parecem quebrados. Escolha um lugar por configuração.
  3. Carregar fragments da forma errada. A SAP exige que fragments carregados dinamicamente que contêm building blocks sejam carregados pelo método loadFragment da ExtensionAPI.
  4. Corrigir a UI em vez do serviço. Um rótulo ausente geralmente é um problema de anotação; corrigi-lo em código customizado o esconde de todas as outras páginas.
  5. Ignorar a versão do SAPUI5 em produção. Building blocks testados na release mais recente podem não existir no front-end server.

A maioria dos problemas com o modelo de programação flexível são erros de configuração ou de separação em camadas, e não limites do próprio modelo.

Modelo de programação flexível vs. SAPUI5 freestyle: qual é a diferença?

Modelo de programação flexívelSAPUI5 freestyle
RuntimeSAP Fiori elements para OData V4Apenas o framework de aplicação SAPUI5
O que os desenvolvedores escrevemAnotações, uso de building blocks, views customizadas e controller extensionsViews, controllers e acesso a dados, tudo à mão
Comportamento padrãoBarra de filtros, tabelas, variantes, draft e mensagens vindos do frameworkImplementado ou conectado pela equipe
Fonte de dadosServiço OData V4 com anotaçõesQualquer fonte: OData V2 ou V4, REST, dados locais
ManutençãoCompartilhada: partes do framework mantidas pela SAP, partes customizadas pela equipeInteiramente da equipe

O modelo de programação flexível mantém o runtime do SAP Fiori elements e adiciona código customizado onde necessário; o SAPUI5 freestyle parte do código customizado e só adiciona elementos padrão se a equipe os construir.

Perguntas frequentes

O modelo de programação flexível está disponível para apps OData V2?

Não. Building blocks e custom pages fazem parte do SAP Fiori elements para OData V4. Apps no SAP Fiori elements para OData V2 estendem seus floorplans pelos pontos de extensão do V2; portanto, usar o modelo de programação flexível exige um serviço OData V4 e o runtime V4.

O modelo de programação flexível é o mesmo que SAPUI5 freestyle?

Não. SAPUI5 freestyle significa escrever views e controllers diretamente sobre o framework SAPUI5. O modelo de programação flexível mantém o runtime do SAP Fiori elements para OData V4 e permite que os desenvolvedores adicionem views customizadas, controller extensions e building blocks, de modo que o comportamento padrão continua vindo do framework.

O que é uma custom page no SAP Fiori elements?

Uma custom page é uma página com sua própria XML view, adicionada a um app SAP Fiori elements para OData V4 pela configuração de roteamento do manifest. Uma custom page é executada no runtime do SAP Fiori elements, recebe o binding context do OData e pode conter building blocks.

Building blocks podem ser usados dentro de um app SAPUI5 freestyle?

Sim, com limites. A SAP documenta alguns building blocks, como o Share, para apps SAPUI5 freestyle e incentiva a combinação de building blocks com código freestyle. Requisitos como um modelo OData V4 e o app component variam conforme o building block e a release do SAPUI5.

O modelo de programação flexível substitui os floorplans do SAP Fiori elements?

Não. A SAP recomenda um floorplan de página inteira sempre que ele for adequado, porque reaproveita o máximo de design e lógica padrão. O modelo de programação flexível adiciona seções customizadas, custom pages e building blocks para o que um floorplan não cobre, dentro do mesmo app.

Fontes

Aplica-se a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
Última revisão

Para se aprofundar

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.