Service Binding (RAP)
Un service binding est l'objet du référentiel ABAP qui, dans RAP, lie une service definition à un protocole de communication, tel qu'OData V2, OData V4 ou InA, et à un type de consommation, UI ou Web API. Un service binding publie également l'endpoint du service et propose un aperçu SAP Fiori elements pour les services UI.
L'essentiel
- Type
- Objet du référentiel ABAP (business service binding)
- Couche
- Services et API
- Créé dans
- ABAP Development Tools (Eclipse)
- Types de binding
- OData V2, OData V4, InA, SQL ; catégorie UI ou Web API
- Transactions d'administration
- /IWFND/V4_ADMIN, /IWFND/MAINT_SERVICE (administration Gateway en on-premise)
- Qui l'utilise
- Développeurs ABAP, développeurs SAP Fiori, développeurs d'intégration
- S'applique à
- SAP S/4HANA (toutes options de déploiement), environnement ABAP de SAP BTP
Couche : Services et APIOù se situe-t-il ? ▾
Couche : Services et API
Ouvrir la carte d'architecture →Comment fonctionne un service binding ?
Un service binding est la dernière étape de la chaîne RAP qui va du modèle de données au service consommable :
- Des CDS view entities et une behavior definition forment le business object.
- Des projection views définissent ce dont un service a besoin.
- Une service definition liste les entités que le service expose.
- Le service binding détermine comment ce périmètre est exposé : quel protocole, quel type de consommation et quelle version.
Ses paramètres sont le nom du service, identique au nom du binding ; le type de binding ; la version du service ; et le statut de publication. Comme le protocole et le périmètre sont des objets distincts, plusieurs bindings peuvent reposer sur une même service definition : Alder Manufacturing pourrait exposer le même périmètre de demande d'achat une fois comme service UI OData V4 pour son application SAP Fiori, et une fois comme Web API OData V4 pour un portail fournisseurs de Cedar Office Supply. Le service binding est donc l'endroit où un service RAP devient un endpoint concret et adressable.
Quels types de service binding existent ?
La documentation SAP actuelle répertorie quatre protocoles et deux catégories de consommation :
| Protocole | UI | Web API |
|---|---|---|
| OData V2 | Oui | Oui |
| OData V4 | Oui | Oui |
| InA (accès analytique en direct) | Oui | Non |
| SQL (objets de base de données gérés par ABAP publiés) | Non | Oui |
La catégorie compte autant que le protocole. Les services UI portent dans leurs métadonnées les annotations d'interface, les aides à la saisie, les side effects et le feature control, et proposent l'aperçu SAP Fiori elements. Les Web API ne contiennent aucune information propre à l'interface, sont destinées à des consommateurs inconnus et peuvent être étendues. SAP recommande OData V4 partout où c'est possible pour les services transactionnels, et précise que la prise en charge complète de SAP Fiori elements sur OData V4 n'est assurée que pour les scénarios avec draft. Vérifiez dans la documentation RAP de votre release quels types de binding elle propose. Critère de décision : choisissez un binding UI lorsqu'une application SAP Fiori consomme le service, et un binding Web API dans tous les autres cas.
Comment les service bindings sont-ils publiés et versionnés ?
- Publication : le binding doit être actif, et le bouton Publish de l'éditeur de service binding exécute les task lists qui activent l'endpoint. SAP souligne que la publication n'active le service que dans le système courant ; elle ne le rend pas accessible depuis d'autres systèmes.
- Après transport (on-premise et Private Edition) : SAP documente que le service binding n'active le service qu'en local, dans le système de développement ; dans les systèmes de qualification et de production, le service est activé avec les outils Gateway, les services OData V4 comme groupes de services dans /IWFND/V4_ADMIN et les services OData V2 dans /IWFND/MAINT_SERVICE.
- Environnement ABAP (SAP BTP et extensibilité développeur de la Public Edition) : une Web API atteint les appelants externes via l'inbound service généré par le binding, ajouté à un communication scenario publié, puis via un communication arrangement créé par un administrateur.
- Gestion des versions : ajouter une autre service definition à un binding existant crée la version suivante du service, de sorte que les modifications atteignent les nouveaux consommateurs sans casser les existants.
Un service binding publié est un endpoint local ; l'exposition à d'autres systèmes est une étape de configuration distincte.
Quelles sont les erreurs fréquentes avec les service bindings ?
- Lier une application SAP Fiori à une Web API. L'application se charge mais affiche des tableaux vides ou des mises en page par défaut, car les métadonnées Web API ne contiennent aucune annotation d'interface. Créez un binding UI.
- Choisir OData V4 pour une application transactionnelle sans draft. La prise en charge de SAP Fiori elements en V4 n'est complète qu'avec le draft ; activez le draft ou prévoyez des lacunes.
- Modifier sur place un service libéré. Les consommateurs cessent de fonctionner sans signal. Ajoutez plutôt une version de service.
- Supposer que Publish signifie accessible. Un appelant distant a toujours besoin d'une configuration de communication, et en on-premise les utilisateurs ont besoin d'autorisations pour le service.
- Déboguer d'abord l'interface. Lorsqu'un aperçu échoue, vérifiez que le binding est actif et publié avant de toucher aux annotations.
La plupart des problèmes de service binding proviennent du choix de la mauvaise catégorie ou d'une étape de publication omise, et non du business object qui se trouve derrière.
Service binding ou service definition : quelle différence ?
| Service definition | Service binding | |
|---|---|---|
| Question à laquelle il répond | Qu'expose le service ? | Comment et pour qui est-il exposé ? |
| Contenu | Liste des entités CDS exposées, avec des alias facultatifs | Protocole, catégorie UI ou Web API, version, statut de publication |
| Cardinalité | Un seul périmètre | Plusieurs bindings peuvent réutiliser une même service definition |
| Résultat | Aucun endpoint à elle seule | Un endpoint publié et, pour les services UI, un aperçu SAP Fiori elements |
La service definition fixe le périmètre d'un service RAP ; le service binding transforme ce périmètre en endpoint propre à un protocole.
Questions fréquentes
Quelle est la différence entre un service binding UI et un service binding Web API ?
Un service binding UI inclut dans ses métadonnées les annotations d'interface, les aides à la saisie, les side effects et le feature control, et propose un aperçu SAP Fiori elements. Un binding Web API ne contient aucune information propre à l'interface et est destiné à d'autres consommateurs, comme les intégrations. Les applications SAP Fiori elements nécessitent un binding UI.
Une service definition peut-elle avoir plusieurs service bindings ?
Oui. SAP a conçu cette séparation pour qu'une même service definition puisse être liée plusieurs fois, par exemple comme service UI OData V4 et comme Web API OData V2 ou V4, sans réimplémenter la logique métier qui se trouve derrière.
Publier un service binding rend-il le service disponible pour d'autres systèmes ?
Non. La publication n'active l'endpoint du service que dans le système courant. Les consommateurs externes nécessitent une configuration supplémentaire, comme des communication scenarios et arrangements dans l'environnement ABAP de SAP BTP, ou l'administration Gateway et des autorisations dans les systèmes on-premise.
Un nouveau service RAP doit-il utiliser OData V2 ou OData V4 ?
SAP recommande OData V4 partout où c'est possible pour les services transactionnels. Pour SAP Fiori elements sur OData V4, la prise en charge complète exige un business object avec draft. OData V2 reste utile lorsqu'une application ou un consommateur existant en dépend.
Sources
- 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)
- S'applique à
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
- Dernière relecture