SAP Fiori Elements e floorplans

Anotações de UI

Anotações de UI são termos de metadados do vocabulário OData UI da SAP, como UI.LineItem, UI.SelectionFields e UI.HeaderInfo, que descrevem como os dados devem ser apresentados: quais colunas uma tabela mostra, quais campos aparecem na barra de filtros e o que o cabeçalho de um object page exibe. O SAP Fiori elements as lê em tempo de execução e renderiza a página de acordo.

Resumo

Tipo
Anotações de vocabulário OData (vocabulário UI da SAP)
Camada
Serviços e APIs, criadas no modelo de dados, consumidas pela UI
Onde são definidas
ABAP CDS (de preferência metadata extensions), arquivos CDS do CAP ou arquivos de anotação XML locais no app
Consumidas por
SAP Fiori elements para OData V2 e V4
Ferramentas
ABAP Development Tools; SAP Fiori tools no VS Code ou no SAP Business Application Studio
Quem trabalha com ele
Desenvolvedores ABAP e CAP, desenvolvedores SAP Fiori
Aplica-se a
SAP S/4HANA (todas as opções de implantação), SAP BTP
Camada: Serviços e APIsOnde se encaixa ▾
Onde se encaixa: L4 · Serviços e APIsCamada: Serviços e APIs. Também envolve: Lógica de negócio e modelo de dados, Aplicações de UI.L1L2L3L4L5L6BTP

Camada: Serviços e APIs

Também envolve: Lógica de negócio e modelo de dados, Aplicações de UI

Abrir o mapa de arquitetura →

Como funcionam as anotações de UI?

As anotações de UI vão do modelo de dados até a tela em quatro etapas:

  1. Um desenvolvedor anota entidades e campos no modelo do back-end: ABAP CDS no SAP S/4HANA ou no ambiente ABAP do SAP BTP, ou arquivos CDS em um projeto CAP.
  2. Quando o modelo é exposto como um serviço OData, o back-end converte essas anotações em termos do vocabulário OData em XML, entregues com os metadados do serviço ou como um documento de anotação separado.
  3. O app SAP Fiori elements carrega os metadados do serviço mais quaisquer fontes adicionais de anotação declaradas em seu app descriptor (manifest.json).
  4. Os templates de floorplan, como o list report e o object page, leem os termos e constroem a página: colunas de tabela a partir de UI.LineItem, campos de filtro a partir de UI.SelectionFields, o título do object page a partir de UI.HeaderInfo.

A SAP descreve o vocabulário UI como algo sobre a forma como os dados são usados em uma interface de usuário, e não sobre controles de UI específicos, e é por isso que a mesma anotação pode definir uma tabela no desktop e uma lista no celular. As anotações de UI são, portanto, um contrato entre o serviço e o template, e não código que o app executa.

Quais anotações de UI são as mais importantes?

Termo ODataO que controlaNotação em ABAP CDS
UI.LineItemColunas de uma tabela ou lista@UI.lineItem em cada elemento, com uma posição
UI.SelectionFieldsCampos exibidos por padrão na barra de filtros@UI.selectionField em cada elemento
UI.HeaderInfoNome do tipo de objeto e título no cabeçalho do object page@UI.headerInfo na entidade
UI.FacetsSeções do object page@UI.facet
UI.Identification, UI.FieldGroupGrupos de campos exibidos nas seções do object page@UI.identification, @UI.fieldGroup
Common.Label, Common.TextRótulos de campos e textos descritivos@EndUserText.label, @ObjectModel.text.element

Dois detalhes poupam tempo. O ABAP CDS usa uma notação no nível do elemento que a exposição do serviço converte no termo OData no nível da entidade. E um mesmo termo pode existir várias vezes com qualificadores diferentes, por exemplo dois line items para duas tabelas. Conhecer essas seis famílias cobre a maior parte do que um list report e um object page precisam das anotações de UI.

Onde as anotações de UI são definidas?

  • ABAP CDS (RAP e o modelo que o antecedeu): as anotações de UI podem ficar na data definition ou em uma metadata extension. A SAP recomenda metadata extensions, que mantêm o modelo de dados legível e permitem que os metadados de UI evoluam separadamente.
  • CAP: as anotações são escritas em CDS com annotate ... with @(...), usando diretamente os nomes dos termos OData; o CAP recomenda arquivos .cds separados nas pastas dos apps, apartados da definição do serviço.
  • Arquivo de anotação local: um arquivo XML dentro do app SAP Fiori, registrado como fonte adicional de anotação no manifest.json.
  • Serviços SAP Gateway mais antigos (OData V2): anotações modeladas no repositório de vocabulários do Service Builder (SEGW), ou fornecidas por uma classe annotation provider registrada com /IWBEP/REG_VOCAN.

Quando o mesmo termo existe em um arquivo local e no back-end, a definição local substitui a do back-end termo a termo. A orientação da SAP é manter as anotações de UI no back-end, junto ao modelo de dados e com o mesmo ciclo de vida, e usar arquivos locais quando não há acesso ao back-end ou quando um único app precisa de uma sobreposição.

Por que minhas anotações de UI não aparecem no app?

Trabalhe do serviço para fora antes de mexer na UI:

  1. Verifique os metadados do serviço. Abra os metadados ou o documento de anotação do serviço e procure o termo. Se ele não estiver lá, o problema está no back-end.
  2. Verifique o tipo de service binding (RAP). Um binding da categoria Web API não carrega metadados específicos de UI. Um app Fiori elements precisa de um binding de UI.
  3. Verifique a metadata extension. A entidade precisa permitir extensões com @Metadata.allowExtensions: true, e a extensão precisa estar ativa.
  4. Verifique se há uma sobreposição local. Um UI.LineItem em um arquivo de anotação local substitui todo o UI.LineItem do back-end, então uma coluna adicionada no CDS nunca aparece.
  5. Verifique os qualificadores. Uma anotação qualificada só é usada onde o qualificador é referenciado.
  6. Limpe os caches. Os caches de metadados do Gateway e o navegador podem servir metadados antigos. Execute a /IWFND/CACHE_CLEANUP no hub SAP Gateway e a /IWBEP/CACHE_CLEANUP no back-end (ambas em um sistema embedded) e recarregue o app.

A maioria das anotações de UI ausentes são problemas de exposição ou de precedência, não erros de sintaxe.

Onde terminam as anotações de UI?

As anotações de UI são o motivo pelo qual apps SAP Fiori elements podem ser construídos rapidamente e têm aparência consistente: o layout segue as diretrizes de design do SAP Fiori, acessibilidade e responsividade vêm com o template, e o app permanece estável ao longo dos upgrades do SAPUI5 porque contém pouco código.

O mesmo design impõe os limites:

  • Apenas o que o template suporta. As anotações selecionam e organizam; não conseguem inventar um layout que o floorplan não oferece. Qualquer coisa além disso exige extension points ou SAPUI5 freestyle.
  • Apresentação, não comportamento. Validações, ações e lógica de autorização ficam no RAP ou no CAP; uma anotação pode exibir um botão, não implementá-lo.
  • Espalhadas em várias camadas. Arquivos do back-end, metadata extensions e arquivos locais se combinam em tempo de execução, o que dificulta revisar o resultado final.
  • Risco de divergência. Anotações locais quebram silenciosamente quando uma propriedade é renomeada no back-end.

As anotações de UI funcionam melhor quando a equipe as trata como parte do modelo de dados e as revisa junto com ele.

Anotações de UI em ABAP CDS vs. CAP CDS vs. arquivo de anotação local: qual é a diferença?

ABAP CDS (RAP)CAP CDSArquivo de anotação local
Onde são escritasData definition ou metadata extension no sistema ABAPArquivos CDS no projeto CAPArquivo XML dentro do app SAP Fiori
NotaçãoAnotações @UI, em parte no nível do elemento (ex.: @UI.lineItem)Nomes dos termos OData (ex.: UI.LineItem)OData XML (Annotation Term="UI.LineItem")
Ciclo de vidaTransportadas com o modelo de dadosImplantadas com o serviço CAPImplantadas com o app de UI
PrecedênciaSobrepostas termo a termo por arquivos locaisSobrepostas termo a termo por arquivos locaisPrevalece nos termos que define
Mais indicado paraMetadados de UI reutilizáveis para o SAP S/4HANA e serviços ABAPServiços e apps construídos no SAP BTPSobreposições para um único app ou ausência de acesso ao back-end

As três opções produzem os mesmos termos OData; a escolha define quem é dono dos metadados de UI e até onde eles são reutilizados.

Perguntas frequentes

Anotações de UI e anotações CDS são a mesma coisa?

Não. As anotações CDS são uma família ampla que também abrange configurações do catálogo ABAP, controle de acesso, analytics e exposição OData. As anotações de UI são o subconjunto que descreve a apresentação para o SAP Fiori elements, escritas como anotações @UI no ABAP CDS ou como termos do vocabulário UI no CAP e em XML.

As anotações locais sobrepõem as anotações do back-end?

Sim, termo a termo. Se um arquivo de anotação local define UI.LineItem para uma entidade, essa definição substitui completamente o UI.LineItem do back-end, enquanto os termos do back-end que o arquivo local não define continuam valendo.

Quais ferramentas ajudam a escrever anotações de UI?

O SAP Fiori tools no Visual Studio Code e no SAP Business Application Studio oferece o Page Map, o Guided Development e editores de anotação para arquivos CAP CDS e XML. Para ABAP CDS, o Guided Development ajuda a gerar as anotações, e o ABAP Development Tools as valida.

É possível adicionar anotações de UI a um app SAP Fiori elements entregue pela SAP?

Sim, por meio de um adaptation project, quando o app está habilitado para isso. O adaptation project pode adicionar arquivos de anotação locais sem modificar o app entregue pela SAP nem seu serviço de back-end.

As anotações de UI funcionam com OData V2 e com OData V4?

Sim. O SAP Fiori elements existe para OData V2 e para OData V4, e ambos leem anotações de UI, mas os termos e recursos suportados diferem entre as duas stacks, então consulte a documentação da versão OData que o app usa.

Fontes

Aplica-se a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public 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.