Service Binding (RAP)
Um service binding é o objeto do repositório ABAP no RAP que vincula uma service definition a um protocolo de comunicação, como OData V2, OData V4 ou InA, e a um tipo de consumo, UI ou Web API. O service binding também publica o endpoint do serviço e oferece uma pré-visualização SAP Fiori elements para serviços de UI.
Resumo
- Tipo
- Objeto do repositório ABAP (business service binding)
- Camada
- Serviços e APIs
- Criado em
- ABAP Development Tools (Eclipse)
- Tipos de binding
- OData V2, OData V4, InA, SQL; categoria UI ou Web API
- Transações de administração
- /IWFND/V4_ADMIN, /IWFND/MAINT_SERVICE (administração do gateway on-premise)
- Quem trabalha com ele
- Desenvolvedores ABAP, desenvolvedores SAP Fiori, desenvolvedores de integração
- Aplica-se a
- SAP S/4HANA (todas as opções de implantação), SAP BTP ABAP environment
Camada: Serviços e APIsOnde se encaixa ▾
Camada: Serviços e APIs
Abrir o mapa de arquitetura →Como funciona um service binding?
Um service binding é o último passo na cadeia RAP que vai do modelo de dados ao serviço consumível:
- CDS view entities e uma behavior definition formam o business object.
- Projection views moldam o que um serviço precisa.
- Uma service definition lista as entidades que o serviço expõe.
- O service binding decide como esse escopo é exposto: qual protocolo, qual tipo de consumo e qual versão.
Seus parâmetros são o nome do serviço, idêntico ao nome do binding; o tipo de binding; a versão do serviço; e o status de publicação. Como protocolo e escopo são objetos separados, vários bindings podem ficar sobre uma mesma service definition: a Alder Manufacturing poderia expor o mesmo escopo de requisição de compra uma vez como serviço de UI OData V4 para seu app SAP Fiori e outra vez como Web API OData V4 para um portal de fornecedores da Cedar Office Supply. O service binding é, portanto, onde um serviço RAP se torna um endpoint concreto e endereçável.
Quais tipos de service binding existem?
A documentação atual da SAP lista quatro protocolos e duas categorias de consumo:
| Protocolo | UI | Web API |
|---|---|---|
| OData V2 | Sim | Sim |
| OData V4 | Sim | Sim |
| InA (acesso analítico em tempo real) | Sim | Não |
| SQL (objetos de banco de dados gerenciados pelo ABAP publicados) | Não | Sim |
A categoria importa tanto quanto o protocolo. Os serviços de UI carregam em seus metadados anotações de UI, value helps, side effects e feature control, e oferecem a pré-visualização SAP Fiori elements. As Web APIs não contêm informações específicas de UI, destinam-se a consumidores desconhecidos e podem ser estendidas. A SAP recomenda OData V4 sempre que possível para serviços transacionais e observa que o suporte completo do SAP Fiori elements em OData V4 só é garantido para cenários habilitados para draft. Verifique quais tipos de binding a sua release oferece na documentação RAP correspondente. Critério de decisão: faça o binding como UI quando um app SAP Fiori consome o serviço, e como Web API em todos os outros casos.
Como os service bindings são publicados e versionados?
- Publicação: o binding precisa estar ativo, e o botão Publish no editor de service binding executa as listas de tarefas que habilitam o endpoint. A SAP enfatiza que a publicação habilita o serviço apenas no sistema atual; ela não torna o serviço acessível a partir de outros sistemas.
- Após o transporte (on-premise e Private Edition): a SAP documenta que o service binding só habilita o serviço localmente no sistema de desenvolvimento; nos sistemas de qualidade e produção, o serviço é ativado com as ferramentas do Gateway, os serviços OData V4 como grupos de serviços na /IWFND/V4_ADMIN e os serviços OData V2 na /IWFND/MAINT_SERVICE.
- ABAP environment (SAP BTP e extensibilidade de desenvolvedor da Public Edition): uma Web API chega a chamadores externos pelo inbound service gerado pelo binding, adicionado a um communication scenario publicado, e depois por um communication arrangement que um administrador cria.
- Versionamento: adicionar outra service definition a um binding existente cria a próxima versão do serviço, de modo que as alterações chegam a novos consumidores sem quebrar os existentes.
Um service binding publicado é um endpoint local; a exposição a outros sistemas é uma etapa de configuração separada.
Quais são os erros comuns com service bindings?
- Vincular um app SAP Fiori a uma Web API. O app carrega, mas mostra tabelas vazias ou layouts padrão, porque os metadados de Web API não contêm anotações de UI. Crie um binding UI.
- Escolher OData V4 para um app transacional sem draft. O suporte do SAP Fiori elements em V4 só é completo com draft; habilite o draft ou planeje as lacunas.
- Alterar um serviço liberado no próprio lugar. Os consumidores quebram silenciosamente. Adicione uma versão do serviço em vez disso.
- Supor que Publish significa acessível. Um chamador remoto ainda precisa da configuração de comunicação, e os usuários on-premise precisam de autorizações para o serviço.
- Depurar a UI primeiro. Quando uma pré-visualização falha, verifique se o binding está ativo e publicado antes de mexer nas anotações.
A maioria dos problemas com service bindings vem da escolha da categoria errada ou de uma etapa de publicação pulada, e não do business object por trás.
Service binding vs. service definition: qual é a diferença?
| Service definition | Service binding | |
|---|---|---|
| Pergunta que responde | O que o serviço expõe? | Como e para quem ele é exposto? |
| Conteúdo | Lista das entidades CDS expostas, com aliases opcionais | Protocolo, categoria UI ou Web API, versão, status de publicação |
| Cardinalidade | Um escopo | Vários bindings podem reutilizar uma service definition |
| Resultado | Nenhum endpoint por si só | Um endpoint publicado e, para serviços de UI, uma pré-visualização SAP Fiori elements |
A service definition define o escopo de um serviço RAP; o service binding transforma esse escopo em um endpoint específico de um protocolo.
Perguntas frequentes
Qual é a diferença entre um service binding UI e um Web API?
Um service binding UI inclui em seus metadados anotações de UI, value helps, side effects e feature control e oferece uma pré-visualização SAP Fiori elements. Um binding Web API não contém informações específicas de UI e se destina a outros consumidores, como integrações. Os apps SAP Fiori elements precisam de um binding UI.
Uma service definition pode ter vários service bindings?
Sim. A SAP projetou a separação para que uma service definition possa ser vinculada várias vezes, por exemplo como serviço de UI OData V4 e como Web API OData V2 ou V4, sem reimplementar a lógica de negócio por trás.
Publicar um service binding torna o serviço disponível para outros sistemas?
Não. A publicação habilita o endpoint do serviço apenas no sistema atual. Consumidores externos precisam de configuração adicional, como communication scenarios e arrangements no SAP BTP ABAP environment, ou administração do gateway e autorizações em sistemas on-premise.
Um novo serviço RAP deve usar OData V2 ou OData V4?
A SAP recomenda OData V4 sempre que possível para serviços transacionais. Para SAP Fiori elements em OData V4, o suporte completo exige um business object habilitado para draft. O OData V2 continua útil quando um app ou consumidor existente depende dele.
Fontes
- SAP Help Portal: Service Binding — binding types, UI vs. Web API, publishing (ABAP Cloud)
- SAP Help Portal: Providing an OData Service — communication scenario for Web APIs (ABAP environment)
- SAP Help Portal: Service Group Publishing with /IWFND/V4_ADMIN (ABAP platform)
- SAP Help Portal: Service Binding — service transport in on-premise systems (ABAP platform)
- 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