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 ▾
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:
- Pontos de extensão em list reports e object pages aceitam seções, colunas e ações customizadas escritas em SAPUI5.
- Building blocks posicionam elementos orientados por metadados, como uma tabela, uma barra de filtros ou um campo, onde for necessário.
- Controller extensions e a ExtensionAPI permitem que o código customizado reaja a eventos do framework, como salvar ou navegar.
- 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:
| Requisito | Ponto de partida |
|---|---|
| Um list report e uma object page atendem à tarefa | Floorplan de página inteira; adicione pontos de extensão apenas para as lacunas |
| O floorplan atende, mas uma área precisa de uma visualização especial | Seção customizada ou coluna customizada dentro do floorplan |
| O layout é especial, mas filtragem, tabelas e formulários são padrão | Custom page com building blocks |
| A interação é única e os dados não são OData V4 | Pá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?
- 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.
- 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.
- 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.
- 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.
- 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ível | SAPUI5 freestyle | |
|---|---|---|
| Runtime | SAP Fiori elements para OData V4 | Apenas o framework de aplicação SAPUI5 |
| O que os desenvolvedores escrevem | Anotações, uso de building blocks, views customizadas e controller extensions | Views, controllers e acesso a dados, tudo à mão |
| Comportamento padrão | Barra de filtros, tabelas, variantes, draft e mensagens vindos do framework | Implementado ou conectado pela equipe |
| Fonte de dados | Serviço OData V4 com anotações | Qualquer fonte: OData V2 ou V4, REST, dados locais |
| Manutenção | Compartilhada: partes do framework mantidas pela SAP, partes customizadas pela equipe | Inteiramente 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
- SAP Help Portal: Developing Apps with SAP Fiori Elements (SAPUI5, building blocks and custom pages)
- SAPUI5 SDK: Building Blocks (SAP Fiori elements for OData V4)
- SAP Help Portal: Extension Points for Pages — custom pages (SAPUI5)
- SAP Help Portal: Developing Apps with Modern Concepts — Guidance for Developers (SAPUI5)
- SAP Help Portal: Extension Architecture Guide — Presentation Tier Guidance
- Aplica-se a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
- Última revisão