Parcours d’intégration de SAP S/4HANA Cloud ABAP Environment avec Microsoft – Partie 1

Parcours d’intégration de SAP S/4HANA Cloud ABAP Environment avec Microsoft – Partie 1

2023-06-30 10:30:33

Bonjour et bienvenue dans votre parcours d’intégration ABAP Cloud avec Microsoft. La partie 0 de cette série vous a couvert avec les conditions préalables pour obtenir votre environnement de développement SAP avec Outils de développement ABAP (ADT) sur Eclipse opérationnel.

#Gloire pour Karl Kesler, Harish Bokkasam, André Fischer et équipe pour les coups de pouce dans la bonne direction en matière d’ABAP Cloud ????

Aujourd’hui, nous approuvons une demande de réservation de voyage délivré à SAP des équipes Microsoft. L’orchestration s’effectue via l’objet métier RAP compatible avec le cloud ABAP. Wow, c’était une bouchée ???? mais pas de soucis, il y aura des captures d’écran et plus de charabia pour vous aider. Voir ci-dessous l’architecture du flux.

???? Pour garantir l’utilisation de l’environnement ABAP dans des scénarios “sur site” ou d’édition privée, vérifiez simplement que le paramètre de version de langue ABAP sur ADT est défini sur “ABAP pour le développement cloud”. Recherchez l’option dans le volet Propriétés sous Général. L’édition publique ou l’environnement BTP ABAP dans n’importe quelle version est automatiquement défini par défaut sur ABAP Cloud.

Pour cet exemple, j’ai parcouru le didacticiel du développeur SAP “Comment créer des événements commerciaux RAP dans un système sur site” jusqu’à l’étape 7 (en sautant 5 et 6), qui crée une application de réservation de voyage. C’était le plus simple concernant l’intégration sans aucun « shi-shi » supplémentaire.

Portez une attention particulière à :

  • Étape 1 sous-section 4: Mon S/4 HANA 2022 ne contenait pas l’espace de noms de démonstration SAP “/dmo/” référencé par le tutoriel. Remplacez-les par des types internes pour continuer (regardez l’étape 3 dans ce tutoriel SAP pour l’inspiration). Alternativement, vous pouvez envisager de charger les objets “/dmo/” via abapGit comme décrit par SAP ici et ici. Regarde ça poste communautaire pour référence.
  • Ignorer l’étape 5-6
  • Étape 7 sous-section 3: Utilise mon mise en œuvre de la classe “lcl_event_handler” à la place

La dernière étape du didacticiel présente le comportement personnalisé de l’action “Enregistrer”. Nous l’utilisons pour envoyer la demande d’approbation à Microsoft Teams afin de modifier l’état de la demande de voyage.

???? Si vous êtes curieux de suivre la route du concours complet intégré RAP, décrite par les parties restantes du didacticiel, jetez un œil à cet article de blog. J’y décris les différentes options disponibles. Parmi eux se trouve également l’intégration native de SAP Event Mesh avec Azure Event Grid.

Il existe plusieurs options pour interagir avec les services Microsoft tels que Microsoft Teams. Tout calcul capable d’effectuer le flux d’authentification et la requête http atteint l’objectif technique (consultez la section sur la sécurité à la fin pour plus d’informations)

Vous trouverez ci-dessous une liste d’options d’intégration dont je discute généralement avec nos clients conjoints SAP + Microsoft :

Depuis Applications logiques Azure (moteur de flux de travail à faible code sans serveur dans AIS) a une expérience de glisser-déposer avec quelques clics pour envoyer un carte adaptative à Teams, j’ai choisi cette voie. Voir des projets comme le cadre de pont de SAP pour générer les cartes mentionnées avec les moyens SAP au cas où vous emprunteriez cette voie à la place.

Alors, passons à Azure…

Pour commencer, déployer l’application Azure Logic fournie à votre abonnement Azure à l’aide du bouton “Déployer vers” sur GitHub ou ceci lien d’ici. Une fois terminé, accédez à l’application et autorisez votre connexion Teams.

Ouvrez l’application logique et récupérez l’URL de point de terminaison générée à partir du déclencheur http. Il contient une signature d’accès. C’est la façon la plus simple de commencer.

???? Pour la préparation à la production, consultez la section suivante pour plus de détails sur la façon de sécuriser et d’isoler la charge de travail d’intégration à l’aide de l’intégration de réseau virtuel privé, des flux OAuth2 soutenus par Azure AD, et OIDC, etc.

Astuce secrète : corrigez les problèmes ad hoc de l’interface utilisateur de Logic Apps Designer en accédant à la vue de code en enregistrant à partir de là.

Copiez l’URL et ajoutez-la à votre code ABAP à la ligne 8.

CLASS lcl_event_handler IMPLEMENTATION.
***** Make your changes below
  METHOD save_modified.
***** Act on booking create action. Use update, delete, etc. for alternate behavior.
    IF create IS NOT INITIAL.
***** Setup http request to Azure Logic Apps.
      DATA(dest) = cl_http_destination_provider=>create_by_url(
  ' ).
      DATA(client) = cl_web_http_client_manager=>create_by_http_destination( dest ).
      DATA(req) = client->get_http_request(  ).
***** Create JSON payload from booking item properties
      DATA(lv_json) = /ui2/cl_json=>serialize( create-booking ).
      req->set_text( lv_json ).
      req->set_header_field( i_name="Content-Type" i_value="application/json; charset=UTF-8" ).
***** POST message to Azure Logic Apps
      DATA(create_response) = client->execute( if_web_http_client=>post )->get_text(  ).
      client->close(  ).
    ENDIF.
  ENDMETHOD.
ENDCLASS.

J’utilise la classe /ui2/cl_json pour générer la charge utile JSON pour la requête POST à ​​partir de la structure d’objet métier de réservation. Félicitations à Stoyko Stoev et son article de blog décrivant une option ABAP Cloud pour les appels REST.

Avec ça on est prêt pour un test d’intégration ????

Mettre un point d’arrêt sur enregistrer_modifié méthode et ouvrez l’aperçu Fiori de votre application de réservation.

Tout fonctionne comme prévu ? Super, je n’avais aucun doute????. Libérez votre point d’arrêt et rendez-vous sur votre application Azure Logic pour inspecter l’exécution.

Notez les étapes réussies du flux de travail générant la carte adaptative avec les détails de votre application de réservation Fiori, y compris les boutons pour approuver/rejeter la demande. Appuyez sur approuver pour le plaisir, car le champ de description indique “vacances bien méritées”.

À l’aide du service OData généré pour l’objet métier activé par RAP, nous pouvons envoyer une demande PATCH efficace et ajuster son statut de Ouvert (“O”) à Approuvé (“A).

Voir l’étape 3 du didacticiel “Génération des services d’interface utilisateur transactionnels” pour référence sur la génération de service OData v4.

Et c’est tout. Il ne reste plus qu’à s’émerveiller devant la beauté de la demande de réservation approuvée ????

Vous avez fini de vous émerveiller ? Ok, alors revenons au sérieux et voyons ce qui est nécessaire pour mettre à niveau ce scénario d’intégration dans la préparation de la production. Les signatures d’accès fixes sont agréables et simples mais ne vont pas le couper ????également je sais que beaucoup d’entre vous aiment leurs réseaux privés. Voilà ????

Tous les composants impliqués peuvent être isolés dans un réseau virtuel privé. En plus de cela, ils peuvent être limités pour accepter uniquement les demandes de vos propres services Azure internes ou plages IP. De plus, les flux OAuth2 ou OIDC peuvent être utilisés pour une authentification sécurisée. Pour le rappel vers le service OData activé par SAP RAP, les certificats X509 ou le flux OAuth2SAMLBearer sont souhaitables pour la production. Voir cet article de blog et celui-ci Stratégie Azure APIM pour en savoir plus sur le processus de configuration.

Restez à l’écoute pour la partie 2 de la série steampunk pour un aperçu de la configuration X509 pour l’environnement BTP ABAP.

???? Commentaire sur le côté : vous pouvez implémenter l’architecture ci-dessus de la même manière en utilisant SAP API Management, SAP Cloud Integration ou SAP Build Process Automation. Cependant, sachez qu’ils n’ont pas de capacités d’injection de réseau privé. De par leur conception, ils sont accessibles sur Internet, comme Microsoft Teams ou M365. Et à juste titre, si vous me le demandez, concentrez-vous sur la sécurité de la couche d’application plutôt que sur le réseau.

Encore de nombreuses entreprises aiment leurs réseaux privés, d’où ma référence d’architecture ci-dessus avec des réseaux virtuels privés sur Azure.

Utilisez SAP Cloud Connector ou Lien privé SAP pour Azure pour accéder à votre édition privée S/4HANA Cloud depuis SAP BTP. Voir ma série de blogs pour une plongée en profondeur et plus de scénarios avec Private Link.

Au lieu d’utiliser les services d’intégration Azure, vous pouvez appeler Teams depuis ABAP sans intermédiaire si vous le souhaitez. Inspirez-vous du code ici pour infuser votre code existant. Les classes ABAP accélèrent l’intégration avec Microsoft Graph et les identités managées Azure par exemple.

Cependant, par rapport à la voie “pur ABAP”, l’utilisation d’un moteur de workflow apporte la séparation des préoccupations et la valeur ajoutée des connecteurs managés pour l’intégration. En plus de cela, les différents développeurs (ABAP et Azure), qui ont besoin de collaborer, profitent également de cette séparation car ils peuvent se concentrer sur leur domaine.

Consultez les ressources Microsoft Teams de l’API Microsoft Graph. Voir les docs ici et l’explorateur de graphes en ligne ici.

Le SDK ABAP pour Azure a besoin abapGit pour importer les objets dans votre paysage.

Pour les approches événementielles utilisant ABAP, consultez cet article de blog.

C’est terminé ???? vous avez vu aujourd’hui comment vous pouvez améliorer la logique SAP RAP à partir de l’environnement S/4HANA Cloud ABAP (public ou privé n’a pas d’importance) pour faire apparaître un processus d’approbation SAP directement dans Microsoft Teams. Nous avons utilisé des cartes adaptatives exposant des boutons pour lancer le processus d’approbation. Pour conclure, nous vous éclairons sur la manière de sécuriser correctement le scénario.

Retrouvez toutes les ressources pour répliquer cette configuration sur ce dépôt GitHub. Restez à l’écoute pour les parties restantes de la série steampunk avec les scénarios d’intégration Microsoft à partir de mon article de présentation.

Acclamations

Martin



#Parcours #dintégration #SAP #S4HANA #Cloud #ABAP #Environment #avec #Microsoft #Partie
1688119692

Facebook
Twitter
LinkedIn
Pinterest

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.