Échangez des messages B2B entre partenaires en utilisant des workflows dans Azure Logic Apps
S’applique à : Azure Logic Apps (Consommation + Standard)
Si vous disposez d’un compte d’intégration définissant des partenaires et contrats commerciaux, vous pouvez créer un workflow B2B automatisé pour l’échange de messages entre partenaires commerciaux en utilisant Azure Logic Apps. Votre workflow peut utiliser des connecteurs qui prennent en charge des protocoles standard, tels que AS2, X12, EDIFACT et RosettaNet. Vous pouvez également inclure des opérations fournies par d’autres connecteurs dans Azure Logic Apps, comme Office 365 Outlook, SQL Server et Salesforce.
Cet article explique comment créer un exemple de workflow d’application logique qui peut recevoir des requêtes HTTP à l’aide d’un déclencheur Requête, décoder le contenu des messages à l’aide des actions Décodage AS2 et Décodage X12, et retourner une réponse à l’aide de l’action Réponse. Cet exemple utilise le Concepteur de flux de travail dans le Portail Azure, mais vous pouvez suivre des étapes similaires pour le Concepteur de flux de travail dans Visual Studio.
Si vous débutez avec les applications logiques, voir Qu’est-ce qu’Azure Logic Apps ? Pour plus d’informations sur l’intégration d’entreprise B2B, consultez Workflows d’intégration d’entreprise B2B avec Azure Logic Apps.
Prérequis
Un compte et un abonnement Azure. Si vous n’avez pas encore d’abonnement, vous pouvez vous inscrire pour obtenir un compte Azure gratuitement.
Une ressource de compte d’intégration dans laquelle vous définissez et stockez les artefacts, comme les parties, les contrats, les certificats, etc., à utiliser dans vos flux de travail d’intégration d’entreprise et B2B. Cette ressource doit remplir les conditions suivantes :
Associé au même abonnement Azure que votre ressource d’application logique.
Existe dans le même emplacement ou la même région Azure que votre ressource d’application logique.
Si vous utilisez le type de ressource Application logique (Consommation), votre compte d’intégration requiert un lien vers votre ressource d’application logique avant de pouvoir utiliser des artefacts dans votre workflow.
Si vous utilisez le type de ressource Application logique (Standard), votre compte d’intégration n’a pas besoin d’un lien vers votre ressource d’application logique, mais il est toujours nécessaire pour stocker d’autres artefacts, comme les partenaires, contrats et certificats, ainsi que pour utiliser les opérations AS2, X12 ou EDIFACT. Votre compte d’intégration doit toujours répondre à d’autres exigences, comme l’utilisation du même abonnement Azure et la présence dans le même emplacement que votre ressource d’application logique.
Notes
Actuellement, seul le type de ressource Application logique (Consommation) prend en charge les opérations RosettaNet. Le type de ressource Application logique (Standard) n’inclut pas les opérations RosettaNet.
Au moins deux partenaires commerciaux dans votre compte d’intégration. Les définitions des deux partenaires doivent utiliser le même qualificateur d’identité d’entreprise, qui est AS2, X12, EDIFACT ou RosettaNet.
Un accord AS2 et un accord X12 pour les partenaires que vous utilisez dans ce workflow. Un accord requiert un partenaire hôte et un partenaire invité.
Une ressource d’application logique avec un workflow vide dans lequel vous pouvez ajouter le déclencheur Requête, puis les actions suivantes :
Ajout du déclencheur Request
Pour démarrer le workflow dans cet exemple, ajoutez le déclencheur Requête.
Dans le portail Azure, ouvrez votre ressource d’application logique et un workflow vide dans le concepteur de workflow.
Sous la zone de recherche du concepteur, sélectionnez Tout si cette option n’est pas sélectionnée. Dans la zone de recherche, entrez
when a http request
. Sélectionnez le déclencheur Requête nommé Lors de la réception d’une requête HTTP.Dans le déclencheur, laissez la zone Schéma JSON du corps de la requête vide.
En effet, le déclencheur recevra un message X12 dans un format de fichier plat.
Lorsque c’est chose faite, dans la barre d’outils du concepteur, sélectionnez Enregistrer.
Cette étape génère l’URL HTTP POST que vous utilisez ultérieurement pour envoyer une requête qui déclenche un workflow d’application logique.
Copiez et enregistrez l’URL pour l’utiliser plus tard.
Ajouter l’action Décodage AS2
À présent, ajoutez les actions B2B pour cet exemple, qui utilise les actions AS2 et X12.
Sous le déclencheur, sélectionnez Nouvelle étape.
Conseil
Pour masquer les détails du déclencheur de requête, sélectionnez la barre de titre du déclencheur.
Sous la zone de recherche Choisir une opération, sélectionnez Toutes, si l’option n’est pas sélectionnée. Dans la zone de recherche, entrez
as2
, puis sélectionnez Décodage AS2.Dans la propriété Message à décoder de l’action, indiquez l’entrée que vous voulez que l’action AS2 décode, à savoir la sortie
body
du déclencheur de requête. Vous avez plusieurs moyens de spécifier ce contenu comme entrée, soit à partir de la liste de contenu dynamique, soit en tant qu’expression :Pour opérer une sélection dans une liste des sorties de déclencheur disponibles, cliquez à l’intérieur de la zone Message à décoder. Lorsque la liste de contenu dynamique s’affiche, sous Lors de la réception d’une requête HTTP, sélectionnez la valeur de propriété Corps, par exemple :
Conseil
Si aucune sortie de déclencheur ne s’affiche, dans la liste de propriétés dynamiques, sous Lors de la réception d’une requête HTTP, sélectionnez Afficher plus.
Pour entrer une expression qui fait référence à la sortie
body
du déclencheur, cliquez dans la zone Message à décoder. Lorsque la liste de contenu dynamique s’affiche, sélectionnez Expression. Dans l’éditeur d’expression, entrez l’expression suivante, puis sélectionnez OK :triggerOutputs()['body']
Ou bien, dans la zone Message à décoder, entrez directement l’expression suivante :
@triggerBody()
L’expression est résolue en jeton Corps.
Dans la propriété En-têtes de message de l’action, entrez les en-têtes requis pour l’action AS2, qui se trouvent dans la sortie
headers
du déclencheur Requête.Pour entrer une expression qui fait référence à la sortie
headers
du déclencheur, sélectionnez Basculer les en-têtes de message en mode texte.Cliquez dans la zone En-têtes de message. Lorsque la liste de contenu dynamique s’affiche, sélectionnez Expression. Dans l’éditeur d’expression, entrez l’expression suivante, puis sélectionnez OK :
triggerOutputs()['Headers']
Dans l’action Décodage AS2, l’expression apparaît maintenant en tant que jeton :
Pour obtenir le jeton d’expression à résoudre dans le jeton En-têtes, basculez entre le concepteur et le mode Code. Après cette étape, l’action Décodage AS2 ressemble à cet exemple :
Ajouter l’action Réponse en tant qu’accusé de réception d’un message
Pour informer le partenaire commercial de la réception du message, vous pouvez retourner une réponse contenant une notification d’état du message (MDN) AS2 à l’aide des actions Condition et Réponse. En ajoutant ces actions immédiatement après l’action AS2, le workflow de l’application logique peut continuer le traitement si l’action AS2 réussit. Sinon, si l’action AS2 échoue, le workflow de l’application logique arrête le traitement.
Sous l’action Décodage AS2, sélectionnez Nouvelle étape.
Dans la zone de recherche Choisir une opération, sélectionnez Intégrée, si cette option n’est pas déjà sélectionnée. Dans la zone de recherche, entrez
condition
. Sélectionnez l’action Condition.La forme Condition s’affiche, qui inclut les chemins d’accès déterminant si la condition est remplie ou non.
Spécifiez à présent la condition à évaluer. Dans la zone Choisir une valeur, entrez l’expression suivante :
@body('AS2_Decode')?['AS2Message']?['MdnExpected']
Dans la zone centrale, assurez-vous que l’opération de comparaison est définie sur
is equal to
. Dans la zone de droite, entrez la valeurExpected
.Enregistrez votre workflow d’application logique. Pour obtenir l’expression à résoudre en ce jeton, basculez entre le concepteur et le mode Code.
Maintenant, spécifiez les réponses à retourner selon que l’action Décodage AS2 réussit ou non.
Pour le cas où l’action Décodage AS2 réussit, dans la forme Si vrai, sélectionnez Ajouter une action. Sous la zone de recherche Choisir une opération, entrez
response
, puis sélectionnez Réponse.Pour accéder au MDN AS2 à partir de la sortie de l’action Décodage AS2, spécifiez les expressions suivantes :
Dans la propriété En-têtes de l’action Réponse, entrez l’expression suivante :
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
Dans la propriété Corps de l’action Réponse, entrez l’expression suivante :
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Pour obtenir les expressions à résoudre en tant que jetons, basculez entre le concepteur et le mode Code :
Dans le cas où l’action Décodage AS2 échoue, dans la forme Faux, sélectionnez Ajouter une action. Sous la zone de recherche Choisir une opération, entrez
response
, puis sélectionnez Réponse. Configurez l’action Réponse pour retourner l’état et l’erreur de votre choix.
Enregistrez votre workflow d’application logique.
Ajouter l’action Décoder le message X12
Ajoutez maintenant l’action Décoder le message X12.
Sous l’action Réponse, sélectionnez Ajouter une action.
Sous Choisir une opération, dans la zone de recherche, entrez
x12 decode
, puis sélectionnez Décoder le message X12.Si l’action X12 vous demande les informations de connexion, indiquez le nom de la connexion, sélectionnez le compte d’intégration à utiliser, puis sélectionnez Créer.
Spécifiez à présent l’entrée pour l’action X12. Cet exemple utilise la sortie de l’action AS2, qui est le contenu du message, mais ce contenu est au format d’objet JSON et encodé en base64. Par conséquent, vous devez convertir ce contenu en chaîne.
Dans la zone Message de fichier plat X12 à décoder, entrez l’expression suivante pour convertir la sortie AS2 :
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Enregistrez votre workflow d’application logique. Pour obtenir l’expression à résoudre en ce jeton, basculez entre le concepteur et le mode Code.
Enregistrez votre workflow d’application logique.
Si vous avez besoin d’étapes supplémentaires pour ce workflow d’application logique, par exemple, pour décoder le contenu du message et sortir ce contenu au format d’objet JSON, continuez à ajouter les actions nécessaires pour votre workflow d’application logique.
Vous avez maintenant terminé la configuration de votre workflow d’application logique B2B. Dans une application réelle, vous pourriez stocker les données X12 décodées dans une application métier ou un magasin de données. Par exemple, consultez la documentation suivante :
Pour vous connecter à vos propres applications métier et utiliser ces API dans votre application logique, vous pouvez ajouter des actions ou écrire des API personnalisées.