Créer votre premier service de passerelle SAP OData très simple

Il y a tellement d’informations et de technologies apparemment nouvelles disponibles sur le développement d’applications mobiles et réactives au sein de SAP en ce moment qu’il est très difficile de savoir par où commencer. Fiori est donc l’avenir avec SAPUI5, qu’en est-il de la passerelle SAP et d’OData, ou même de HANA, d’Ariba (ou quel que soit son nom) et des innombrables autres noms et technologies qui l’entourent….. Comment tout cela s’intègre-t-il dans la vue d’ensemble d’un développeur SAP ?
Commençons au niveau du sol, c’est-à-dire la passerelle Netweaver où les compétences SAP ABAP traditionnelles sont requises dans le cadre de la création d’une application Fiori.La passerelle SAP existe depuis de nombreuses années, mais avec le passage aux applications Fiori / Mobiles / réactives, elle est de plus en plus utilisée et constitue désormais un élément clé de votre paysage SAP.La passerelle permet au monde extérieur d’accéder aux données de votre (vos) système(s) SAP via les services OData.
So Ainsi, dans ce nouveau monde Fiori, le front end est créé à l’aide de SAPUI5 à l’aide de l’E Web,
…cela appelle un service OData qui a été créé sur votre système SAP via la passerelle SAP
…le service OData utilise ABAP pour récupérer des données SAP et les renvoie via le service OData
L’exemple ci-dessous vous montrera comment créer rapidement votre premier service de passerelle OData à l’aide du code ABAP de base pour sélectionner des données dans une table standard.
Étape 1 – SAP Netweaver Gateway Service Builder
Allez d’abord dans transaction SEGW où vous pourrez créer votre service

Étape 2 – Créer un projet
Ensuite, en utilisant le bouton créer, vous devez créer un projet pour stocker tous vos modèles de données, implémentations, types d’entités, ensembles d’entités, etc. Ne vous inquiétez pas trop de la terminologie à ce stade, tout deviendra clair.

Étape 3 – Entrez les détails du projet
Entrez un nom, une description et un package. Laissez tout le reste par défaut, sauf si vous savez que vous avez besoin de quelque chose de spécifique.

Étape 4 – Importer la structure DDIC
Nous allons baser cet exemple sur un sous-ensemble de la table SAP standard EKKO. Dans le projet nouvellement créé, faites un clic droit sur le nœud « Modèle de données » et sélectionnez Importer – > Structure DDIC

Étape 5 – Entrez les détails de la structure
Entrez EKKO dans le champ structure ABAP et entrez un objet un nom, c’est-à-dire purchaseorder

Étape 6 – Afficher les propriétés
Développez le nœud nouvellement créé « Type d’entité – > purchaseorder » et double-cliquez sur le nœud de propriétés

Nous allons simplement utiliser les premiers champs, alors sélectionnez tous les champs ci-dessous Statu et supprimez-les

Jusqu’à ce qu’il ressemble à ceci

Remarque: La raison pour laquelle je ne vais pas utiliser tous les champs est que certains sont incompatibles avec un service de passerelle sans changer le type de données.Je vais vous montrer où vous obtiendrez l’erreur plus bas si vous aviez utilisé tous les champs. Cette information pourrait simplement vous aider à comprendre errorquicker lorsque vous en créez un pour de vrai à l’avenir.
Étape 7 – Créer un Ensemble d’entités
Enregistrez votre processus jusqu’à présent, puis cliquez avec le bouton droit sur le nœud de l’ensemble d’entités et sélectionnez Créer

Étape 8 – Autre façon de créer un Ensemble d’entités
Double-cliquez alternativement sur le nœud de l’ensemble d’entités, puis cliquez sur le bouton Ajouter une ligne

Étape 9 – Détails de l’ensemble d’entités
Donnez le nom de l’ensemble d’entités (généralement un pluriel du type d’entité)

Sélectionnez ensuite le type d’entité dans l’aide d’entrée de sélection

Une fois sélectionné, appuyez sur ok (coche verte)

L’ensemble d’entités a maintenant été créé

Étape 10 – Générer service de passerelle
Double-cliquez d’abord sur le nœud de projet et générez l’ensemble du projet à l’aide du bouton « Générer des objets d’exécution  »

Vous remarquerez maintenant que des Objets d’implémentation de service ont été créés.Créer, supprimer, GetEntity (Lire), GetEntitySet (Requête) et Mettre à jour

Étape 11 – Activer et maintenir le service
Maintenant, vous devez aller à la transaction « /IWFND / MAINT_SERVICE » Je trouve toujours que je ne peux que faire fonctionner cela si iadd / n au début, c’est-à-dire /n/IWFND/MAINT_SERVICE

Étape 12 – Ajouter un service
Dans /n/IWFND/MAINT_SERVICE cliquez sur le bouton Ajouter un service

Puis entrez les informations du service que vous souhaitez ajouter (Notez que vous pouvez utiliser des caractères génériques à ce stade pour trouver votre service)

Appuyez sur Entrée pour trouver votre ou vos services qui correspondent à vos critères de recherche. Une fois qu’il clique sur celui que vous souhaitez ajouter

, l’écran suivant vous montre les détails du service sélectionné, entrez les détails du package (c’est-à-dire l’objet local) et laissez tout par défaut. Appuyez ensuite sur le bouton ok (coche verte)

Vous devriez maintenant recevoir un message contextuel indiquant que votre service « a été créé et que ses métadonnées ont été chargées avec succès »

Retour à la page précédente

Étape 13 – Trouvez votre service ajouté
Vous serez maintenant renvoyé au catalogue de services, en fonction du nombre de services que vous avez configurés dans votre système, vous devrez peut-être utiliser le filterfunctionality pour trouver votre service nouvellement ajouté.

Vous devriez maintenant voir les détails de la configuration du service et un feu vert à côté du nœud ICF ODATA dans le coin inférieur gauche.

Étape 14 – Client SAP Netweaver Gateway
Nous devons maintenant le tester en utilisant le client SAP Netweaver Gateway, auquel on accède via le bouton « Gateway Client » juste au-dessus du nœud ODATA dans le coin inférieur gauche

Puis, en laissant l’URI de requête par défaut « /sap/opu/odata/sap/ZTEST_PROJECT_SRV/?clickformat=xml  » cliquez simplement sur le bouton « Exécuter »

Vous devriez alors obtenir une réponse HTTP similaire à celle-ci avec un code d’état vert


Étape 15 – Tests supplémentaires via le client SAP Netweaver Gateway
Vous pouvez maintenant modifier l’URL pour qu’elle se termine par « metadatametadata?sap-ds-debug=true « , puis appuyez à nouveau sur execute, afin que nous puissions renvoyer les propriétés de métadonnées de l’entité purchaseorder

« / comment utiliser sap/opu/odata/sap/ZTEST_PROJECT_SRV/metadatametadata ?sap-ds-debug = vrai »

Maintenant, changez l’URI pour avoir « /purchaseorders?sap-ds-debug=true » à la fin afin que nous puissions cibler les données des ordres d’achat de l’ensemble d’entités

« / sap/opu/odata/sap/ZTEST_PROJECT3_SRV/commandes d’achat ?sap-ds-debug = vrai »


Lorsque vous appuyez sur exécuter, vous devriez obtenir l’erreur suivante car nous n’avons pas encore implémenté la méthode qui remplit ces données

Étape 16 – Implémenter la méthode GetEntitySet
Revenez maintenant à la transaction SEGW et trouvez les méthodes d’implémentation de service créées auparavant. Trouvez celui qui s’Appellegetentityset (Requête) et faites un clic droit dessus. Sélectionnez ensuite « Aller à ABAP Workbench »

Le message suivant apparaîtra indiquant que l’opération n’a pas encore été implémentée. Cliquez simplement sur ok

Vous allez maintenant être redirigé vers tcode SE80. Dans la liste d’objets à gauche, trouvez la méthode PURCHASEORDERS_GET_ENTITYSETWITHIN Methods – > Méthodes héritées.
Une fois que vous l’avez trouvé, faites un clic droit dessus et sélectionnez Redéfinir

Dans le code de méthode qui apparaît, ajoutez simplement l’instruction ABAP select suivante
SELECT *
JUSQU’À 10 LIGNES
D’ekko
DANS LES CHAMPS CORRESPONDANTS DE LA TABLE et_entityset.

Enregistrez et activez

Étape 17 – Testez à nouveau le service
Changez à nouveau l’URI en « /sap/opu/odata/sap/ZTEST_PROJECT_SRV/purchaseorders?sap-ds-debug = vrai »

Cette fois, vous devriez obtenir des données renvoyées

Étape 18 – Plus d’informations
Rappelez-vous que j’ai mentionné de ne pas utiliser tous les champs de la table EKKO car certains ne sont pas compatibles.Si vous les aviez tous inclus lors de l’exécution de l’URI « /sap/opu/odata/sap/ZTEST_PROJECT_SRV/purchaseorders?sap-ds-debug=true « vous auriez reçu le message d’erreur http suivant:

<?xml version="1.0" encoding="utf-8" ?>- <error xmlns:xsi="http://www.w3.org/2001/XMLSchema-Instance"> <code>HTTP/500/E/Internal Server Error <message>Call of service /sap/opu/odata/sap/ZTEST_PROJECT_SRV/purchaseorders terminated because of an error. The following error text was processed in system TST : The current statement is only supported for character-type data objects.The error occurred on the application server erpukpltm. The termination type was: RABAX_STATE.If the termination type is RABAX_STATE, you will find more information on the cause of termination in system TST in transaction ST22. If the termination type is ABORT_MESSAGE_STATE, you will find more information on the cause of termination on the application server ????? in transaction SM21. If the termination type is ERROR_MESSAGE_STATE, you can search for further information in the trace file for the work process in transaction ST11 on the application server ______. You may also need to analyze the trace files of other work processes. If you do not yet have a user ID, contact your system adminmistrator.</message> </error>

Étape 19 – Développement ultérieur
L’étape suivante consiste à accéder à ce service de passerelle à partir de votre application SAP Fiori


Instructions étape par étape sur la création de votre première transaction Web ITS basée sur un programme de dialogue ABAP standard à l’aide de SE80
SAP Netweaver Business Client
Développement d’applications Web SAP à l’aide de ITS – Exemple de code et d’informations ABAP
Netweaver – Informations sur les technologies SAP netweaver
Interface graphique SAP pour HTML – exécution de SAP sur un PC sur lequel le client SAP n’est pas installé
Maintenance des services Web – Utilisation du SICF de transaction pour activer et maintenir les services Web SAP
Développement d’applications Web SAP – Exemple de code et d’informations sur divers domaines du développement Web
Interface graphique SAP pour HTML – exécution de SAP sur un PC sur lequel le client SAP n’est pas installé
Serveur de transactions Internet (ITS) – avantages et inconvénients
SA logique de flux – avantages et inconvénients de l’utilisation de SA logique de flux
Développer des transactions Web SAP – utilisation de SE80 puis publié dans le ITS

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.