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 ▾
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:
- 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.
- Behavior definition (BDEF): declara o que o business object pode fazer: create, update, delete, actions, validations, determinations, bloqueio, controle de concorrência e draft.
- 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.
- Camada de projeção: projection views e uma projection behavior definition que expõem apenas o que um determinado serviço precisa.
- Service definition: lista as entidades que um serviço expõe.
- 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:
| Marco | Release ABAP on-premise | SAP S/4HANA | Cloud (SAP BTP ABAP environment) |
|---|---|---|---|
| Business objects unmanaged | 7.53 | 1809 | 1808 |
| Business objects managed | 7.54 | 1909 | 1908 |
| Tratamento de draft (tabela de draft) | 7.55 | 2020 | 2008 |
| Extensões de behavior definition | 7.57 | 2022 | 2208 |
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?
- Expor a camada base diretamente. Sem uma camada de projeção, toda mudança no serviço afeta o business object central.
- 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.
- 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.
- Construir sobre CDS views DDIC-based. Elas são obsoletas, e o strict mode espera view entities.
- 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?
| RAP | CAP | |
|---|---|---|
| Linguagem e runtime | ABAP, em um sistema ABAP | Node.js ou Java |
| Onde roda | SAP S/4HANA (todas as opções de implantação) e SAP BTP ABAP environment | Principalmente SAP BTP (runtime Cloud Foundry ou Kyma) |
| Modelo de dados | ABAP CDS view entities | A linguagem CDS própria do CAP |
| Acesso aos dados do SAP S/4HANA | Direto, dentro do mesmo sistema (APIs liberadas no ABAP Cloud) | Por meio de APIs remotas |
| Uso típico | Apps e APIs transacionais junto aos dados do SAP S/4HANA | Aplicaçõ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
- SAP Help Portal: ABAP RESTful Application Programming Model (development guide)
- SAP Help Portal: RAP BDL — Feature Tables (release availability of behavior definition elements)
- SAP Help Portal: Why ABAP Cloud? (product availability per edition and release)
- SAP Help Portal: RAP — BOPF-Based RAP Business Objects
- SAP Help Portal: News for ABAP Release 7.5x (ABAP release to SAP S/4HANA release mapping)
- 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