Dados e serviços

ABAP RESTful Application Programming Model (RAP)

O ABAP RESTful Application Programming Model (RAP) é o modelo de programação da SAP para construir business objects transacionais, serviços OData e apps SAP Fiori em ABAP. O RAP combina modelos de dados ABAP CDS, behavior definitions que declaram operações, validações e draft, implementações de comportamento em ABAP, e service definitions e bindings que expõem o resultado como OData V2 ou V4.

Resumo

Tipo
Modelo de programação ABAP
Camada
Lógica de negócio e modelo de dados, exposto por meio de Serviços e APIs
Construído em
ABAP Development Tools (Eclipse)
Blocos de construção
CDS view entities, behavior definition, behavior pool, service definition, service binding
Disponibilidade on-premise
Unmanaged a partir do ABAP 7.53, managed a partir do ABAP 7.54 (SAP S/4HANA 1909), draft a partir do 7.55 (2020)
Quem trabalha com ele
Desenvolvedores ABAP
Aplica-se a
SAP S/4HANA (todas as opções de implantação), SAP BTP ABAP environment
Camada: Lógica de negócio e modelo de dadosOnde se encaixa ▾
Onde se encaixa: L5 · Lógica de negócio e modelo de dadosCamada: Lógica de negócio e modelo de dados. Também envolve: Serviços e APIs.L1L2L3L4L5L6BTP

Camada: Lógica de negócio e modelo de dados

Também envolve: Serviços e APIs

Abrir o mapa de arquitetura →

Como uma aplicação RAP é construída?

Uma aplicação RAP é montada em camadas, cada uma um objeto de repositório separado:

  1. Modelo de dados: CDS view entities sobre tabelas do banco de dados. Uma root entity e suas child entities, ligadas por composições, formam o business object, por exemplo uma requisição de compra com seus itens.
  2. Behavior definition (BDEF): declara o que o business object pode fazer: create, update, delete, actions, validations, determinations, bloqueio, controle de concorrência e draft.
  3. Behavior pool: uma classe ABAP que implementa as partes customizadas que a behavior definition declara, como uma validação que rejeita requisições acima de um limite.
  4. Camada de projeção: projection views e uma projection behavior definition que expõem apenas o que um determinado serviço precisa.
  5. Service definition: lista as entidades que um serviço expõe.
  6. Service binding: escolhe o protocolo (OData V2, OData V4 ou InA) e a categoria, UI ou Web API, e publica o serviço. Uma pré-visualização mostra o resultado como um app SAP Fiori elements.

Cada camada tem uma única função, e é assim que o RAP mantém modelo de dados, comportamento e exposição separados em um único business object ABAP.

Qual é a diferença entre RAP managed e unmanaged?

O tipo de implementação na behavior definition decide quem escreve o código transacional:

  • Managed: o framework RAP trata as operações padrão de create, update e delete, o buffer transacional e a gravação nas tabelas persistentes. Os desenvolvedores acrescentam apenas a lógica de negócio: validations, determinations e actions.
  • Unmanaged: os desenvolvedores implementam eles mesmos todas as operações e a sequência de gravação, normalmente chamando código de aplicação existente que já trata a persistência.

Existe uma terceira variante para código mais antigo: business objects construídos com o modelo predecessor ABAP Programming Model for SAP Fiori (BOPF) podem ser migrados para RAP business objects baseados em BOPF. A SAP observa que estes não são RAP business objects nativos e não são habilitados para ABAP Cloud.

Critério de decisão: escolha managed quando o business object é dono das suas tabelas, como em uma nova aplicação customizada na Alder Manufacturing; escolha unmanaged quando uma lógica legada comprovada precisa ser reutilizada em vez de reescrita. O RAP managed reduz código; o RAP unmanaged protege investimentos existentes.

Quais releases suportam o RAP?

O RAP cresceu release a release, então a disponibilidade depende do recurso, e não apenas do modelo:

MarcoRelease ABAP on-premiseSAP S/4HANACloud (SAP BTP ABAP environment)
Business objects unmanaged7.5318091808
Business objects managed7.5419091908
Tratamento de draft (tabela de draft)7.5520202008
Extensões de behavior definition7.5720222208

O SAP S/4HANA Cloud Public Edition recebe os recursos no ritmo da nuvem, e a Private Edition acompanha a release on-premise em que roda. O SAP ERP (ECC) não inclui o RAP: as releases da ABAP Platform que o trazem, a partir da 7.53, são entregues apenas com o SAP S/4HANA. As feature tables da RAP BDL da SAP listam a release de cada elemento da linguagem, e verificá-las para a release de destino é o primeiro passo de qualquer desenho RAP.

Como o RAP e o ABAP Cloud se relacionam?

O ABAP Cloud é o modelo de desenvolvimento da SAP para ABAP pronto para a nuvem e estável em upgrades: apenas APIs liberadas, uma versão de linguagem restrita e ferramentas baseadas em Eclipse. O RAP é o modelo de programação que o ABAP Cloud usa para aplicações e serviços transacionais.

  • No SAP BTP ABAP environment e na extensibilidade de desenvolvedor do SAP S/4HANA Cloud Public Edition, o RAP é a forma de construir apps e APIs transacionais.
  • Na Private Edition e on-premise, o RAP pode ser usado com as regras do ABAP Cloud, disponíveis a partir do SAP S/4HANA 2022 (ABAP 7.57), ou em ABAP clássico. A escolha decide quais objetos SAP o código pode usar.
  • O strict mode em uma behavior definition impõe as boas práticas atuais, como usar CDS view entities como fontes de dados.

O RAP, portanto, não está preso ao SAP BTP: o mesmo modelo roda dentro do SAP S/4HANA. O ABAP Cloud acrescenta as regras; o RAP fornece a estrutura.

Onde o RAP termina?

Os pontos fortes do RAP são reais. Um único modelo vai do banco de dados à UI do SAP Fiori elements; bloqueio, controle de concorrência e draft vêm do framework, e não de código escrito à mão; os serviços permanecem estáveis em upgrades quando construídos sobre APIs liberadas; e o mesmo business object pode atender uma UI e uma API.

Seus limites decorrem de onde ele roda:

  • Somente ABAP. O RAP exige conhecimento de ABAP, o ABAP Development Tools e um sistema ABAP; equipes sem isso enfrentam uma curva de aprendizado real.
  • Um único sistema. Um RAP business object é transacional dentro de um único sistema ABAP. Processos que abrangem vários sistemas precisam de integração ou eventos por cima.
  • Vinculado à release. Um recurso documentado para a nuvem pode chegar ao on-premise apenas em uma release posterior.
  • Flexibilidade de UI por meio de anotações. Os apps gerados com SAP Fiori elements são tão flexíveis quanto os floorplans e seus pontos de extensão.

O RAP é a opção mais forte quando a lógica e os dados pertencem ao sistema ABAP; ele não foi projetado para orquestração entre sistemas.

Quais são os erros comuns com o RAP?

  1. Expor a camada base diretamente. Sem uma camada de projeção, toda mudança no serviço afeta o business object central.
  2. Escolher unmanaged por hábito. Unmanaged faz sentido quando a lógica legada é reutilizada; para tabelas novas, managed poupa a maior parte do código.
  3. Vincular um app SAP Fiori a um serviço Web API. Bindings Web API não carregam metadados de UI, então o app mostra tabelas vazias ou layouts padrão. Use um binding UI.
  4. Construir sobre CDS views DDIC-based. Elas são obsoletas, e o strict mode espera view entities.
  5. Ignorar as feature tables. Código copiado de um tutorial de nuvem pode não ativar em uma release on-premise mais antiga.

A maioria dos problemas com RAP são decisões de camadas e de release tomadas cedo demais, e não erros de codificação.

RAP vs. CAP: qual é a diferença?

RAPCAP
Linguagem e runtimeABAP, em um sistema ABAPNode.js ou Java
Onde rodaSAP S/4HANA (todas as opções de implantação) e SAP BTP ABAP environmentPrincipalmente SAP BTP (runtime Cloud Foundry ou Kyma)
Modelo de dadosABAP CDS view entitiesA linguagem CDS própria do CAP
Acesso aos dados do SAP S/4HANADireto, dentro do mesmo sistema (APIs liberadas no ABAP Cloud)Por meio de APIs remotas
Uso típicoApps e APIs transacionais junto aos dados do SAP S/4HANAAplicações side-by-side, serviços multi-fonte, SaaS

RAP e CAP resolvem o mesmo problema em lugares diferentes: o RAP dentro do sistema ABAP, o CAP ao lado dele no SAP BTP.

Perguntas frequentes

O RAP é o sucessor do ABAP Programming Model for SAP Fiori?

Sim. A SAP descreve o RAP como projetado para aprimorar o ABAP Programming Model for SAP Fiori, que combinava CDS views, BOPF e SAP Gateway. Business objects existentes baseados em BOPF podem ser migrados para RAP business objects baseados em BOPF, mas estes não são habilitados para ABAP Cloud.

O RAP exige o SAP BTP?

Não. O RAP roda no SAP S/4HANA on-premise e na Private Edition a partir das releases listadas nas feature tables da SAP, no SAP S/4HANA Cloud Public Edition por meio da extensibilidade de desenvolvedor e no SAP BTP ABAP environment.

O RAP substitui os projetos do SAP Gateway Service Builder (SEGW)?

Não para projetos existentes. Para novos serviços OData V4, a documentação do SAP Gateway recomenda fortemente a abordagem programática no ABAP Development Tools, em que o RAP é o modelo, em vez do Service Builder. O SEGW continua documentado nas releases atuais do SAP Gateway Foundation, então os projetos SEGW existentes continuam funcionando.

Quais versões de OData um serviço RAP pode expor?

Um service binding RAP pode publicar um serviço como OData V2 ou OData V4, na categoria UI ou Web API; também existe um tipo de binding InA para consumo analítico. A combinação adequada depende de quem usa o serviço: um app SAP Fiori ou um consumidor externo.

Devo usar RAP ou CAP?

Use RAP quando a lógica precisa rodar dentro do sistema ABAP, junto aos dados e transações do SAP S/4HANA com que trabalha. Use CAP ao construir uma aplicação side-by-side no SAP BTP, combinar várias fontes ou atender equipes de Node.js ou Java.

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.