ABAP RESTful Application Programming Model (RAP)
L'ABAP RESTful Application Programming Model (RAP) est le modèle de programmation de SAP pour construire en ABAP des business objects transactionnels, des services OData et des applications SAP Fiori. RAP combine des modèles de données ABAP CDS, des behavior definitions qui déclarent opérations, validations et draft, des implémentations de comportement en ABAP, ainsi que des service definitions et service bindings qui exposent le résultat en OData V2 ou V4.
L'essentiel
- Type
- Modèle de programmation ABAP
- Couche
- Logique métier et modèle de données, exposé via Services et API
- Construit dans
- ABAP Development Tools (Eclipse)
- Composants
- CDS view entities, behavior definition, behavior pool, service definition, service binding
- Disponibilité on-premise
- Unmanaged dès ABAP 7.53, managed dès ABAP 7.54 (SAP S/4HANA 1909), draft dès 7.55 (2020)
- Qui l'utilise
- Développeurs ABAP
- S'applique à
- SAP S/4HANA (toutes options de déploiement), environnement ABAP de SAP BTP
Couche : Logique métier et modèle de donnéesOù se situe-t-il ? ▾
Couche : Logique métier et modèle de données
Concerne aussi : Services et API
Ouvrir la carte d'architecture →Comment une application RAP est-elle construite ?
Une application RAP s'assemble à partir de niveaux, chacun étant un objet distinct du référentiel :
- Modèle de données : des CDS view entities sur les tables de la base de données. Une entité racine et ses entités enfants, reliées par des compositions, forment le business object, par exemple une demande d'achat avec ses postes.
- Behavior definition (BDEF) : déclare ce que le business object peut faire : création, mise à jour, suppression, actions, validations, déterminations, verrouillage, contrôle de concurrence et draft.
- Behavior pool : une classe ABAP qui implémente les parties spécifiques déclarées par la behavior definition, comme une validation qui rejette les demandes au-delà d'un plafond.
- Niveau de projection : des projection views et une projection behavior definition qui n'exposent que ce dont un service donné a besoin.
- Service definition : liste les entités qu'un service expose.
- Service binding : choisit le protocole (OData V2, OData V4 ou InA) et la catégorie, UI ou Web API, puis publie le service. Un aperçu affiche le résultat sous forme d'application SAP Fiori elements.
Chaque niveau a une seule fonction : c'est ainsi que RAP sépare modèle de données, comportement et exposition au sein d'un même business object ABAP.
Quelle est la différence entre RAP managed et unmanaged ?
Le type d'implémentation dans la behavior definition détermine qui écrit le code transactionnel :
- Managed : le framework RAP prend en charge les opérations standard de création, de mise à jour et de suppression, le buffer transactionnel et l'enregistrement dans les tables persistantes. Les développeurs n'ajoutent que la logique métier : validations, déterminations et actions.
- Unmanaged : les développeurs implémentent eux-mêmes chaque opération et la séquence d'enregistrement, en général en appelant du code applicatif existant qui gère déjà la persistance.
Une troisième variante existe pour le code plus ancien : les business objects construits avec le modèle précédent, l'ABAP Programming Model for SAP Fiori (BOPF), peuvent être migrés vers des business objects RAP basés sur BOPF. SAP précise qu'il ne s'agit pas de business objects RAP natifs et qu'ils ne sont pas activés pour ABAP Cloud.
Critère de décision : choisissez managed lorsque le business object possède ses propres tables, comme une nouvelle application spécifique chez Alder Manufacturing ; choisissez unmanaged lorsqu'une logique existante éprouvée doit être réutilisée plutôt que réécrite. RAP managed réduit le code ; RAP unmanaged protège les investissements existants.
Quelles releases prennent en charge RAP ?
RAP s'est enrichi release après release : la disponibilité dépend donc de la fonctionnalité, et pas seulement du modèle :
| Étape | Release ABAP on-premise | SAP S/4HANA | Cloud (environnement ABAP de SAP BTP) |
|---|---|---|---|
| Business objects unmanaged | 7.53 | 1809 | 1808 |
| Business objects managed | 7.54 | 1909 | 1908 |
| Gestion des drafts (table de draft) | 7.55 | 2020 | 2008 |
| Extensions de behavior definition | 7.57 | 2022 | 2208 |
SAP S/4HANA Cloud Public Edition reçoit les fonctionnalités au rythme du cloud, et la Private Edition suit la release on-premise sur laquelle elle s'exécute. SAP ERP (ECC) n'inclut pas RAP : les releases d'ABAP Platform qui le contiennent, à partir de 7.53, ne sont livrées qu'avec SAP S/4HANA. Les tableaux de fonctionnalités RAP BDL de SAP indiquent la release de chaque élément du langage, et les vérifier pour la release cible est la première étape de toute conception RAP.
Quel est le lien entre RAP et ABAP Cloud ?
ABAP Cloud est le modèle de développement de SAP pour un ABAP prêt pour le cloud et stable lors des mises à niveau : uniquement des API libérées, une version de langage restreinte et des outils basés sur Eclipse. RAP est le modèle de programmation qu'ABAP Cloud utilise pour les applications et services transactionnels.
- Dans l'environnement ABAP de SAP BTP et dans l'extensibilité développeur de SAP S/4HANA Cloud Public Edition, RAP est la manière de construire des applications et des API transactionnelles.
- En Private Edition et on-premise, RAP peut être utilisé avec les règles ABAP Cloud, disponibles à partir de SAP S/4HANA 2022 (ABAP 7.57), ou en ABAP classique. Ce choix détermine les objets SAP que le code peut utiliser.
- Le strict mode dans une behavior definition impose les bonnes pratiques actuelles, comme l'utilisation de CDS view entities comme sources de données.
RAP n'est donc pas lié à SAP BTP : le même modèle s'exécute au sein de SAP S/4HANA. ABAP Cloud apporte les règles ; RAP fournit la structure.
Où s'arrête RAP ?
Les points forts de RAP sont réels. Un même modèle va de la base de données jusqu'à l'interface SAP Fiori elements ; le verrouillage, le contrôle de concurrence et le draft sont fournis par le framework au lieu d'être codés à la main ; les services restent stables lors des mises à niveau lorsqu'ils reposent sur des API libérées ; et le même business object peut servir une interface et une API.
Ses limites découlent de l'endroit où il s'exécute :
- ABAP uniquement. RAP nécessite des compétences ABAP, ABAP Development Tools et un système ABAP ; les équipes qui n'en disposent pas font face à une réelle courbe d'apprentissage.
- Un seul système. Un business object RAP est transactionnel au sein d'un seul système ABAP. Les processus qui s'étendent sur plusieurs systèmes nécessitent une intégration ou des événements par-dessus.
- Lié à la release. Une fonctionnalité documentée pour le cloud peut n'arriver en on-premise qu'avec une release ultérieure.
- Flexibilité de l'interface via les annotations. Les applications générées avec SAP Fiori elements sont aussi flexibles que les floorplans et leurs points d'extension.
RAP est l'option la plus solide lorsque la logique et les données ont leur place dans le système ABAP ; il n'est pas conçu pour l'orchestration multisystème.
Quelles sont les erreurs fréquentes avec RAP ?
- Exposer directement le niveau de base. Sans niveau de projection, chaque modification de service touche le business object principal.
- Choisir unmanaged par habitude. Unmanaged a du sens lorsque de la logique existante est réutilisée ; pour de nouvelles tables, managed épargne l'essentiel du code.
- Lier une application SAP Fiori à un service Web API. Les bindings Web API ne portent aucune métadonnée d'interface : l'application affiche alors des tableaux vides ou des mises en page par défaut. Utilisez un binding UI.
- S'appuyer sur des vues CDS DDIC-based. Elles sont obsolètes, et le strict mode attend des view entities.
- Ignorer les tableaux de fonctionnalités. Du code copié d'un tutoriel cloud peut ne pas s'activer sur une release on-premise plus ancienne.
La plupart des problèmes RAP sont des décisions de structuration en niveaux et de release prises trop tôt, et non des erreurs de codage.
RAP ou CAP : quelle différence ?
| RAP | CAP | |
|---|---|---|
| Langage et runtime | ABAP, dans un système ABAP | Node.js ou Java |
| Où il s'exécute | SAP S/4HANA (toutes options de déploiement) et environnement ABAP de SAP BTP | Principalement SAP BTP (runtime Cloud Foundry ou Kyma) |
| Modèle de données | CDS view entities ABAP | Le langage CDS propre à CAP |
| Accès aux données SAP S/4HANA | Direct, au sein du même système (API libérées en ABAP Cloud) | Via des API distantes |
| Usage type | Applications et API transactionnelles au plus près des données SAP S/4HANA | Applications side-by-side, services multisources, SaaS |
RAP et CAP résolvent le même problème à des endroits différents : RAP au sein du système ABAP, CAP à côté, sur SAP BTP.
Questions fréquentes
RAP succède-t-il à l'ABAP Programming Model for SAP Fiori ?
Oui. SAP présente RAP comme conçu pour améliorer l'ABAP Programming Model for SAP Fiori, qui combinait vues CDS, BOPF et SAP Gateway. Les business objects existants basés sur BOPF peuvent être migrés vers des business objects RAP basés sur BOPF, mais ceux-ci ne sont pas activés pour ABAP Cloud.
RAP nécessite-t-il SAP BTP ?
Non. RAP s'exécute dans SAP S/4HANA on-premise et en Private Edition à partir des releases indiquées dans les tableaux de fonctionnalités de SAP, dans SAP S/4HANA Cloud Public Edition via l'extensibilité développeur, et dans l'environnement ABAP de SAP BTP.
RAP remplace-t-il les projets SAP Gateway Service Builder (SEGW) ?
Pas pour les projets existants. Pour les nouveaux services OData V4, la documentation Gateway de SAP recommande fortement l'approche programmatique dans ABAP Development Tools, où RAP est le modèle, plutôt que le Service Builder. SEGW reste documenté dans les releases actuelles de SAP Gateway Foundation : les projets SEGW existants continuent donc de fonctionner.
Quelles versions d'OData un service RAP peut-il exposer ?
Un service binding RAP peut publier un service en OData V2 ou OData V4, dans la catégorie UI ou Web API ; un type de binding InA existe également pour la consommation analytique. La combinaison adaptée dépend de l'utilisateur du service : une application SAP Fiori ou un consommateur externe.
Faut-il utiliser RAP ou CAP ?
Utilisez RAP lorsque la logique doit s'exécuter au sein du système ABAP, au plus près des données et des transactions SAP S/4HANA qu'elle traite. Utilisez CAP pour construire une application side-by-side sur SAP BTP, combiner plusieurs sources ou travailler avec des équipes Node.js ou Java.
Sources
- 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)
- S'applique à
- SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition · SAP BTP
- Dernière relecture