Virtual Data Model (VDM)
O virtual data model (VDM) é o conjunto em camadas de ABAP CDS views da SAP no SAP S/4HANA que transforma tabelas do banco de dados em entidades orientadas ao negócio: basic e composite interface views para reutilização, e consumption views para apps e queries específicos. O virtual data model é a base de dados comum para apps SAP Fiori, embedded analytics e APIs.
Resumo
- Tipo
- Modelo de dados em camadas de ABAP CDS views
- Camada
- Lógica de negócio e modelo de dados
- Tipos de view
- Basic e composite interface views, consumption views, restricted reuse views
- Nomenclatura
- I_ (interface), C_ (consumption), R_ (restricted reuse), A_ (API remota)
- Explorar com
- App View Browser (F2170), ABAP Development Tools
- Quem trabalha com ele
- Desenvolvedores ABAP e de analytics, key users, arquitetos de integração
- Aplica-se a
- SAP S/4HANA (todas as opções de implantação)
Camada: Lógica de negócio e modelo de dadosOnde se encaixa ▾
Camada: Lógica de negócio e modelo de dados
Abrir o mapa de arquitetura →Como o virtual data model é estruturado?
O virtual data model empilha CDS views sobre as tabelas do banco de dados, e cada camada só pode ler da camada abaixo:
- Basic interface views ficam diretamente sobre as tabelas e são as únicas views do VDM que as leem. Elas renomeiam campos de tabela crípticos para termos de negócio e acrescentam anotações e associações. Anotação:
@VDM.viewType: #BASIC. - Composite interface views combinam basic views ou outras composite views em novas entidades semânticas, por exemplo um cube para analytics. Anotação:
@VDM.viewType: #COMPOSITE. - Consumption views atendem a uma única finalidade, como um app transacional ou analítico específico. São o único tipo de view do VDM que pode atuar como query analítica. Anotação:
@VDM.viewType: #CONSUMPTION.
As basic e composite views formam a camada de reutilização; uma reuse view normalmente representa um nó de business object, como I_SalesOrder. As restricted reuse views parecem semelhantes, mas se destinam apenas à reutilização interna da SAP. O virtual data model é, portanto, um contrato entre camadas, e não apenas uma coleção de views.
Como reconhecer as views do VDM pelo nome?
A convenção de nomenclatura da SAP coloca o tipo de view em um prefixo, seguido de um nome semântico e de sufixos opcionais:
| Prefixo | Tipo de view |
|---|---|
| I_ | Basic ou composite interface view |
| C_ | Consumption view |
| R_ | Restricted reuse view |
| P_ | Private view |
| A_ | Remote API view |
| X_ / E_ | View extend / extension include view |
Os sufixos refinam a finalidade: Query para queries analíticas, Cube para cube views, TP para views de processamento transacional e Text para text views. Um número de versão como _2 marca uma view sucessora.
Uma armadilha: no guia de nomenclatura da SAP para desenvolvimento RAP customizado, R_ marca a base view entity de um business object, enquanto no virtual data model do SAP S/4HANA R_ marca as restricted reuse views. O prefixo de uma view do VDM indica seu papel pretendido antes mesmo de você abri-la.
Sobre quais views do VDM os clientes podem construir?
Visibilidade não é permissão. Apenas as views que a SAP liberou sob o contrato de estabilidade C1 são seguras para reutilização, e a SAP só as libera para determinados tipos de view:
- Podem ser liberadas para clientes: basic e composite interface views, consumption views do tipo query analítica e derivation functions.
- Tipicamente internas da SAP: restricted reuse views, remote API views, private views e abstract entities.
A liberação pode ser para extensibilidade key user, usada em apps como o Custom CDS Views, ou para desenvolvimento cloud em ABAP Cloud. Views não liberadas podem mudar em qualquer upgrade. Para verificar uma view, abra-a no app View Browser ou consulte seu API state no ABAP Development Tools. No virtual data model, é o status de liberação, e não a existência, que decide do que uma extensão customizada pode depender.
Para que serve o virtual data model?
- Apps SAP Fiori: views de processamento transacional formam RAP business objects, e consumption views alimentam apps SAP Fiori elements por meio de serviços OData.
- Embedded analytics: composite views moldadas como cubes e dimensions, encimadas por consumption views de query analítica, alimentam apps analíticos sem replicar dados.
- APIs: remote API views formam a base de APIs externas publicadas no SAP Business Accelerator Hub.
- Extensões: key users constroem CDS views customizadas sobre interface views liberadas, por exemplo uma view de pedidos de compra em aberto por fornecedor para a Alder Manufacturing, em vez de ler tabelas.
- Extração de dados: a anotação Analytics.dataExtraction.enabled marca views como adequadas para replicação de dados, por exemplo para o SAP BW/4HANA.
O virtual data model dá a apps, analytics e integrações um vocabulário de negócio comum, em vez de leitores de tabelas separados.
Quais são os erros comuns com o virtual data model?
- Construir sobre uma view não liberada. Funciona até que o próximo upgrade a altere. Verifique antes o status de liberação.
- Reutilizar consumption views como blocos de construção. As consumption views atendem a um único app; construa sobre interface views.
- Ler tabelas ao lado do VDM. Código customizado que contorna as basic views perde os nomes de campos de negócio, as associações e os controles de acesso.
- Interpretar R_ do jeito errado. As restricted reuse views não se destinam à reutilização pelo cliente, diga o que disser uma convenção de nomenclatura customizada.
A maioria dos problemas com o virtual data model vem de ignorar as regras de camadas e de liberação que mantêm o modelo estável.
Virtual data model vs. ABAP CDS views: qual é a diferença?
| ABAP CDS views | Virtual data model | |
|---|---|---|
| O que é | Uma tecnologia de modelagem da plataforma ABAP | O conjunto organizado de CDS views da SAP para o SAP S/4HANA |
| Quem cria | Qualquer pessoa que desenvolva em ABAP | A SAP, com views de clientes construídas sobre partes liberadas |
| Estrutura | Qualquer view, com qualquer fonte de dados | Camadas fixas: basic, composite, consumption |
| Regras | Regras da linguagem CDS | Camadas, prefixos de nomenclatura e contratos de liberação |
As ABAP CDS views são a tecnologia; o virtual data model é o uso governado dessa tecnologia pela SAP para o SAP S/4HANA.
Perguntas frequentes
O que significam os prefixos I_ e C_ nas CDS views da SAP?
No virtual data model do SAP S/4HANA, I_ marca as interface views, que são reuse views basic ou composite, e C_ marca as consumption views construídas para um app ou query analítica específicos. Outros prefixos incluem R_ para restricted reuse views e A_ para remote API views.
Posso usar qualquer view do VDM no meu próprio desenvolvimento?
Não. Apenas as views liberadas pela SAP sob o contrato de estabilidade C1 são seguras como base, seja para extensibilidade key user, seja para desenvolvimento cloud. As views não liberadas são visíveis no sistema, mas podem mudar em qualquer upgrade sem aviso.
O virtual data model está disponível no SAP ECC?
Não. O virtual data model faz parte do SAP S/4HANA e é documentado para suas edições cloud e on-premise, não para o SAP ERP (ECC). CDS views customizadas podem ser tecnicamente possíveis no ECC, mas não lhe dão as camadas do VDM da SAP.
Como encontrar a view do VDM certa para um business object?
Pesquise pelo nome do business object no app View Browser ou no ABAP Development Tools, prefira as views I_ liberadas para reutilização e verifique as anotações e o status de liberação da view. As interface views normalmente seguem os nomes dos business objects, como I_SalesOrder.
Fontes
- SAP Help Portal: VDM Layers and View Types (SAP S/4HANA)
- SAP Help Portal: Naming Conventions in the Virtual Data Model (SAP S/4HANA)
- SAP Help Portal: VDM.viewType annotation (ABAP CDS)
- SAP Help Portal: Naming Conventions for Development Objects (RAP)
- SAP Fiori Apps Reference Library: View Browser (F2170)
- Aplica-se a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
- Última revisão