Service Binding (RAP)
Un service binding es el objeto del repositorio ABAP de RAP que vincula una service definition a un protocolo de comunicación, como OData V2, OData V4 o InA, y a un tipo de consumo, UI o Web API. Un service binding también publica el endpoint del servicio y ofrece una vista previa de SAP Fiori elements para los servicios de UI.
Datos clave
- Tipo
- Objeto del repositorio ABAP (business service binding)
- Capa
- Servicios y API
- Se crea en
- ABAP Development Tools (Eclipse)
- Tipos de binding
- OData V2, OData V4, InA, SQL; categoría UI o Web API
- Transacciones de administración
- /IWFND/V4_ADMIN, /IWFND/MAINT_SERVICE (administración de Gateway en on-premise)
- Quién trabaja con ello
- Desarrolladores ABAP, desarrolladores SAP Fiori, desarrolladores de integración
- Se aplica a
- SAP S/4HANA (todas las opciones de implementación), SAP BTP ABAP environment
Capa: Servicios y APIDónde se ubica ▾
Capa: Servicios y API
Abrir el mapa de arquitectura →¿Cómo funciona un service binding?
Un service binding es el último paso de la cadena RAP que va del modelo de datos al servicio consumible:
- Las CDS view entities y una behavior definition forman el business object.
- Las projection views dan forma a lo que necesita un servicio concreto.
- Una service definition enumera las entidades que expone el servicio.
- El service binding decide cómo se expone ese alcance: qué protocolo, qué tipo de consumo y qué versión.
Sus parámetros son el nombre del servicio, idéntico al nombre del binding; el tipo de binding; la versión del servicio; y el estado de publicación. Como el protocolo y el alcance son objetos separados, varios bindings pueden apoyarse en una misma service definition: Alder Manufacturing podría exponer el mismo alcance de solicitudes de pedido una vez como servicio de UI OData V4 para su aplicación SAP Fiori y otra vez como Web API OData V4 para un portal de proveedores de Cedar Office Supply. Un service binding es, por tanto, el punto en el que un servicio RAP se convierte en un endpoint concreto y direccionable.
¿Qué tipos de service binding existen?
La documentación actual de SAP enumera cuatro protocolos y dos categorías de consumo:
| Protocolo | UI | Web API |
|---|---|---|
| OData V2 | Sí | Sí |
| OData V4 | Sí | Sí |
| InA (acceso analítico en vivo) | Sí | No |
| SQL (objetos de base de datos gestionados por ABAP publicados) | No | Sí |
La categoría importa tanto como el protocolo. Los servicios de UI incluyen en sus metadatos anotaciones de UI, ayudas de valores, side effects y feature control, y ofrecen la vista previa de SAP Fiori elements. Las Web API no contienen información específica de UI, están pensadas para consumidores desconocidos y pueden ampliarse. SAP recomienda OData V4 siempre que sea posible para los servicios transaccionales, y señala que la compatibilidad completa de SAP Fiori elements con OData V4 solo se garantiza en escenarios habilitados para draft. Compruebe qué tipos de binding ofrece su release en su documentación de RAP. Criterio de decisión: vincule como UI cuando una aplicación SAP Fiori consuma el servicio, y como Web API en todos los demás casos.
¿Cómo se publican y versionan los service bindings?
- Publicación: el binding debe estar activo, y el botón Publish del editor de service bindings ejecuta las listas de tareas que habilitan el endpoint. SAP subraya que la publicación habilita el servicio solo en el sistema actual; no hace que el servicio sea accesible desde otros sistemas.
- Después del transporte (on-premise y Private Edition): SAP documenta que el service binding solo habilita el servicio localmente en el sistema de desarrollo; en los sistemas de calidad y de producción, el servicio se activa con las herramientas de Gateway, los servicios OData V4 como grupos de servicios en /IWFND/V4_ADMIN y los servicios OData V2 en /IWFND/MAINT_SERVICE.
- ABAP environment (SAP BTP y extensibilidad para desarrolladores de Public Edition): una Web API llega a los llamantes externos a través del inbound service generado por el binding, añadido a un communication scenario publicado, y después a un communication arrangement que crea un administrador.
- Versionado: añadir otra service definition a un binding existente crea la siguiente versión del servicio, de modo que los cambios llegan a los nuevos consumidores sin romper los existentes.
Un service binding publicado es un endpoint local; la exposición a otros sistemas es un paso de configuración separado.
¿Cuáles son los errores comunes con los service bindings?
- Vincular una aplicación SAP Fiori a una Web API. La aplicación se carga pero muestra tablas vacías o diseños predeterminados, porque los metadatos de una Web API no contienen anotaciones de UI. Cree un binding UI.
- Elegir OData V4 para una aplicación transaccional sin draft. La compatibilidad de SAP Fiori elements con V4 solo es completa con draft; habilite el draft o prevea carencias.
- Modificar en el mismo lugar un servicio ya liberado. Los consumidores fallan sin aviso. Añada en su lugar una versión del servicio.
- Suponer que Publish significa accesible. Un llamante remoto sigue necesitando la configuración de comunicación, y en on-premise los usuarios necesitan autorizaciones para el servicio.
- Depurar primero la UI. Cuando falla una vista previa, compruebe que el binding está activo y publicado antes de tocar las anotaciones.
La mayoría de los problemas con los service bindings provienen de elegir la categoría equivocada o de omitir un paso de publicación, no del business object que hay detrás.
Service binding frente a service definition: ¿cuál es la diferencia?
| Service definition | Service binding | |
|---|---|---|
| Pregunta que responde | ¿Qué expone el servicio? | ¿Cómo y para quién se expone? |
| Contenido | Lista de entidades CDS expuestas, con alias opcionales | Protocolo, categoría UI o Web API, versión, estado de publicación |
| Cardinalidad | Un alcance | Varios bindings pueden reutilizar una misma service definition |
| Resultado | Ningún endpoint por sí sola | Un endpoint publicado y, para los servicios de UI, una vista previa de SAP Fiori elements |
La service definition fija el alcance de un servicio RAP; el service binding convierte ese alcance en un endpoint específico de un protocolo.
Preguntas frecuentes
¿Cuál es la diferencia entre un service binding UI y uno Web API?
Un service binding UI incluye en sus metadatos anotaciones de UI, ayudas de valores, side effects y feature control, y ofrece una vista previa de SAP Fiori elements. Un binding Web API no contiene información específica de UI y está pensado para otros consumidores, como las integraciones. Las aplicaciones SAP Fiori elements necesitan un binding UI.
¿Puede una service definition tener varios service bindings?
Sí. SAP diseñó la separación para que una misma service definition pueda vincularse varias veces, por ejemplo como servicio de UI OData V4 y como Web API OData V2 o V4, sin volver a implementar la lógica de negocio que hay detrás.
¿Publicar un service binding hace que el servicio esté disponible para otros sistemas?
No. La publicación habilita el endpoint del servicio solo en el sistema actual. Los consumidores externos necesitan una configuración adicional, como communication scenarios y arrangements en el SAP BTP ABAP environment, o la administración de Gateway y las autorizaciones en los sistemas on-premise.
¿Un nuevo servicio RAP debe usar OData V2 u OData V4?
SAP recomienda OData V4 siempre que sea posible para los servicios transaccionales. Para SAP Fiori elements sobre OData V4, la compatibilidad completa requiere un business object habilitado para draft. OData V2 sigue siendo útil cuando una aplicación o un consumidor existente depende de él.
Fuentes
- 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)
- Se aplica a
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
- Última revisión