Dados e serviços

SAP Cloud Application Programming Model (CAP)

O SAP Cloud Application Programming Model (CAP) é o framework da SAP para construir serviços e aplicações corporativas, principalmente no SAP BTP. Os desenvolvedores declaram modelos de dados e serviços na linguagem Core Data Services (CDS) própria do CAP, e um runtime Node.js ou Java os disponibiliza como endpoints OData, REST ou GraphQL, com handlers genéricos para as operações padrão.

Resumo

Tipo
Framework de aplicação (linguagens, bibliotecas, ferramentas)
Camada
Lógica de negócio e modelo de dados, na faixa da plataforma SAP BTP
Runtimes
Node.js e Java
Bancos de dados
SQLite ou H2 para desenvolvimento; SAP HANA Cloud ou PostgreSQL para produção
Implantado em
SAP BTP, runtime Cloud Foundry ou Kyma
Ferramentas
Linha de comando CDS, Visual Studio Code, SAP Business Application Studio
Aplica-se a
SAP BTP (side-by-side com o SAP S/4HANA, qualquer edição)
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: SAP BTP, Serviços e APIs.L1L2L3L4L5L6BTP

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

Também envolve: SAP BTP, Serviços e APIs

Abrir o mapa de arquitetura →

Como funciona uma aplicação CAP?

Uma aplicação CAP parte de declarações e acrescenta código apenas onde os padrões do framework não bastam:

  1. Modelo de domínio: entidades, tipos e associações são escritos em arquivos CDS, por exemplo fornecedores e janelas de entrega para um app de logística da Alder Manufacturing.
  2. Serviços: as definições de serviço expõem projeções dessas entidades, moldadas para uma UI ou uma API.
  3. Runtime: o runtime Node.js ou o CAP Java SDK disponibiliza os serviços e trata as operações padrão de forma genérica: leitura, gravação, paginação, ordenação e draft do SAP Fiori.
  4. Lógica customizada: event handlers em JavaScript, TypeScript ou Java, registrados para as fases before, on e after de uma requisição, acrescentam validações, cálculos e chamadas a outros sistemas.
  5. Persistência: o mesmo modelo roda em SQLite ou H2 durante o desenvolvimento e em SAP HANA Cloud ou PostgreSQL em produção.
  6. Implantação: a aplicação é implantada no SAP BTP, no runtime Cloud Foundry ou Kyma.

Apps SAP Fiori elements consomem serviços CAP por meio de anotações de UI escritas nos mesmos arquivos CDS. Uma aplicação CAP é, portanto, sobretudo modelo, com o código concentrado onde a lógica de negócio é específica.

O CDS do CAP é o mesmo que o ABAP CDS?

Não. Ambos vêm da ideia de Core Data Services da SAP, ambos usam uma sintaxe declarativa semelhante e ambos carregam anotações, mas são implementações separadas:

  • ABAP CDS faz parte da plataforma ABAP. Suas views são objetos de repositório ativados como views de banco de dados dentro de um sistema ABAP e transportados com transportes ABAP.
  • CAP CDS é a linguagem de modelagem do CAP. Seu compilador transforma os modelos em uma representação baseada em JSON chamada Core Schema Notation (CSN), a partir da qual o CAP gera artefatos de banco de dados e metadados de serviço.

As anotações mostram a diferença na prática. No CAP, as anotações de UI usam diretamente os nomes de termos OData, como UI.LineItem; no ABAP CDS, notações no nível de elemento como @UI.lineItem são traduzidas para esses termos quando o serviço é exposto. Um modelo não pode ser levado de um para o outro sem alterações. CAP CDS e ABAP CDS compartilham um nome e uma filosofia, não um runtime.

Quando o CAP é a escolha certa?

Escolha o CAP quando:

  • a aplicação pertence ao lado do SAP S/4HANA, e não dentro dele, como extensão side-by-side no SAP BTP;
  • a aplicação tem seus próprios dados ou combina dados de vários sistemas, SAP e não SAP;
  • a equipe trabalha com JavaScript, TypeScript ou Java em vez de ABAP;
  • a aplicação precisa atender vários clientes como oferta SaaS multitenant, que o CAP suporta com isolamento de tenants e seus serviços MTX.

Prefira o RAP quando a lógica precisa rodar na mesma transação que os dados do SAP S/4HANA, quando a extensão altera um business object padrão ou quando a equipe e o modelo de operação são baseados em ABAP.

Muitos landscapes usam os dois: RAP para a lógica próxima do core, CAP para as aplicações ao redor dele. A pergunta decisiva para o CAP é onde os dados e a transação devem ficar.

Como o CAP se conecta ao SAP S/4HANA?

Uma aplicação CAP não roda dentro do SAP S/4HANA, então acessa os dados SAP por meio de APIs:

  1. A definição de API de um serviço OData do SAP S/4HANA, por exemplo do SAP Business Accelerator Hub, é importada no projeto CAP com cds import, que lê arquivos OData EDMX, OpenAPI e AsyncAPI.
  2. Durante o desenvolvimento, o CAP pode simular (mock) o serviço importado localmente, de modo que as equipes podem trabalhar antes de a conexão existir.
  3. Em produção, as chamadas passam pela conectividade do SAP BTP: destinations para o sistema de destino e, para sistemas on-premise, o Cloud Connector.
  4. Eventos do SAP S/4HANA podem acionar lógica CAP de forma assíncrona onde o cenário os suporta, normalmente por meio de um serviço de event broker da SAP.

A API liberada, e não a tabela do banco de dados, é o contrato entre o CAP e o SAP S/4HANA. Isso mantém a extensão desacoplada do core, que é o propósito da abordagem side-by-side que o CAP segue.

Onde o CAP termina?

Os pontos fortes do CAP são velocidade e consistência. Os handlers genéricos eliminam código repetitivo, o desenvolvimento local funciona sem conexão com a nuvem graças aos mocks e ao SQLite, o suporte a SAP Fiori e SAP HANA vem embutido, e o multitenancy faz parte do framework em vez de ser um projeto à parte.

Os limites vêm de rodar fora do sistema de registro:

  • Sem acesso direto aos internos do SAP S/4HANA. Tudo passa por APIs liberadas; APIs ausentes viram bloqueios ou exigem um complemento do lado ABAP.
  • Sem transação compartilhada. Uma atualização no CAP e um lançamento no SAP S/4HANA são transações separadas; o tratamento de falhas precisa ser projetado explicitamente.
  • Mais coisas para operar. Uma aplicação CAP acrescenta ao landscape um runtime SAP BTP, um banco de dados e conectividade, com seu próprio monitoramento, upgrades e custos.
  • Framework opinativo. Trabalhar contra as convenções do CAP custa mais do que segui-las.

O CAP é a escolha mais forte para aplicações ao lado do core; ele não substitui a lógica que precisa ficar dentro dele.

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

CAPRAPABAP CDS
O que éFramework para serviços e aplicaçõesModelo de programação ABAP para apps e serviços transacionaisLinguagem de modelagem de dados da plataforma ABAP
Executa emPrincipalmente SAP BTP (Node.js ou Java)Sistemas ABAP: SAP S/4HANA, SAP BTP ABAP environmentSistemas ABAP
Modelo de dadosCAP CDSABAP CDS view entitiesÉ o modelo de dados
Comportamento transacionalHandlers genéricos mais handlers customizadosBehavior definitions e behavior poolsNenhum (modelo de leitura)
Uso típicoExtensões side-by-side e SaaS no SAP BTPApps e APIs junto aos dados do SAP S/4HANAModelos de dados, analytics, base para APIs

CAP e RAP são alternativas para construir serviços em lugares diferentes; o ABAP CDS é um bloco de construção do RAP, não uma alternativa ao CAP.

Perguntas frequentes

O CAP é só para o SAP BTP?

O CAP foi projetado para o SAP BTP, e a SAP documenta a implantação nos runtimes Cloud Foundry e Kyma. O desenvolvimento também roda localmente em um notebook, com SQLite e serviços simulados. A operação de aplicações CAP fora do SAP BTP não é abordada neste guia.

O CAP suporta OData V2 além de OData V4?

O CAP usa OData V4 por padrão. O OData V2 está obsoleto no CAP e é disponibilizado pelo OData V2 adapter, um plugin no Node.js e um adaptador embutido no CAP Java, para UIs existentes baseadas em V2. O OData V4 é a escolha para novos apps SAP Fiori elements.

O CAP consegue construir apps SAP Fiori elements?

Sim. As anotações de UI são escritas em arquivos CAP CDS, o CAP disponibiliza o serviço OData e trata o draft do SAP Fiori de forma genérica, e o SAP Fiori tools gera apps list report e object page sobre o serviço CAP.

Quais bancos de dados o CAP suporta?

A SAP documenta SQLite e H2 para desenvolvimento e SAP HANA Cloud ou PostgreSQL para produção. Alternar entre eles é, na maior parte, uma mudança de perfil de configuração, porque o modelo de dados é escrito em CDS, e não em SQL específico de um banco de dados.

O CAP pode ler tabelas do SAP S/4HANA diretamente?

Não. Uma aplicação CAP consome o SAP S/4HANA por meio de APIs liberadas, como serviços OData, chamadas pela conectividade do SAP BTP. O acesso direto a tabelas contornaria o contrato de estabilidade que mantém uma extensão side-by-side segura em upgrades.

Fontes

Aplica-se a
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.