Utbyta B2B-meddelanden mellan partner med hjälp av arbetsflöden i Azure Logic Apps
Gäller för: Azure Logic Apps (Förbrukning + Standard)
När du har ett integrationskonto som definierar handelspartner och avtal kan du skapa ett automatiserat B2B-arbetsflöde (business-to-business) som utbyter meddelanden mellan handelspartner med hjälp av Azure Logic Apps. Arbetsflödet kan använda anslutningsappar som stöder branschstandardprotokoll, till exempel AS2, X12, EDIFACT och RosettaNet. Du kan också inkludera åtgärder som tillhandahålls av andra anslutningsappar i Azure Logic Apps, till exempel Office 365 Outlook, SQL Server och Salesforce.
Den här artikeln visar hur du skapar ett exempel på ett logikapparbetsflöde som kan ta emot HTTP-begäranden med hjälp av en begärandeutlösare, avkoda meddelandeinnehåll med hjälp av åtgärderna AS2 Avkoda och Avkoda X12 och returnera ett svar med hjälp av åtgärden Svar. I exemplet används arbetsflödesdesignern i Azure Portal, men du kan följa liknande steg för arbetsflödesdesignern i Visual Studio.
Om du inte har använt logikappar tidigare kan du läsa Vad är Azure Logic Apps? Mer information om B2B-företagsintegrering finns i arbetsflöden för B2B-företagsintegrering med Azure Logic Apps.
Förutsättningar
Ett Azure-konto och prenumeration. Om du inte har någon prenumeration än kan du registrera dig för ett kostnadsfritt Azure-konto.
En integrationskontoresurs där du definierar och lagrar artefakter, till exempel handelspartner, avtal, certifikat och så vidare, för användning i företagets integrerings- och B2B-arbetsflöden. Den här resursen måste uppfylla följande krav:
Är associerad med samma Azure-prenumeration som din logikappresurs.
Finns på samma plats eller Azure-region som din logikappresurs.
Om du använder resurstypen Logikapp (förbrukning) måste ditt integrationskonto ha en länk till logikappresursen innan du kan använda artefakter i arbetsflödet.
Om du använder resurstypen Logikapp (Standard) behöver ditt integrationskonto inte någon länk till logikappresursen, men det krävs fortfarande för att lagra andra artefakter, till exempel partner, avtal och certifikat, tillsammans med as2-, X12- eller EDIFACT-åtgärderna. Ditt integrationskonto måste fortfarande uppfylla andra krav, till exempel att använda samma Azure-prenumeration och vara befintligt på samma plats som logikappresursen.
Anteckning
För närvarande har endast resurstypen Logikapp (förbrukning) stöd för RosettaNet-åtgärder . Resurstypen Logic App (Standard) innehåller inte RosettaNet-åtgärder.
Minst två handelspartner på ditt integrationskonto. Definitionerna för båda partnerna måste använda samma företagsidentitetskvalificerare , som är AS2, X12, EDIFACT eller RosettaNet.
Ett AS2-avtal och X12-avtal för de partner som du använder i det här arbetsflödet. Varje avtal kräver en värdpartner och en gästpartner.
En logikappresurs med ett tomt arbetsflöde där du kan lägga till utlösaren Förfrågning och sedan följande åtgärder:
Lägg till utlösaren Förfrågning
Om du vill starta arbetsflödet i det här exemplet lägger du till utlösaren Begäran.
Öppna logikappresursen och det tomma arbetsflödet i arbetsflödesdesignern i Azure Portal.
Under sökrutan designer väljer du Alla om det inte är markerat. Skriv
when a http request
i sökrutan. Välj utlösaren Begäran med namnet När en HTTP-begäran tas emot.I utlösaren lämnar du rutan JSON-schema för begärandetext tom.
Anledningen är att utlösaren får ett X12-meddelande i platt filformat.
När du är klar väljer du Spara i designerns verktygsfält.
Det här steget genererar HTTP POST-URL:en som du senare använder för att skicka en begäran som utlöser logikappens arbetsflöde.
Kopiera och spara URL:en som ska användas senare.
Lägg till åtgärden avkoda AS2
Lägg nu till B2B-åtgärderna för det här exemplet, som använder åtgärderna AS2 och X12.
Under utlösaren väljer du Nytt steg.
Tips
Om du vill dölja information om utlösaren för begäran väljer du utlösarens namnlist.
Under sökrutan Välj en åtgärd väljer du Alla om det inte är markerat. I sökrutan anger du
as2
och väljer AS2 Avkoda.I åtgärdens egenskap Meddelande att avkoda anger du de indata som du vill att AS2-åtgärden ska avkoda, vilket är
body
utdata från utlösaren Förfrågning. Du har flera sätt att ange det här innehållet som åtgärdens indata, antingen genom att välja från listan med dynamiskt innehåll eller som ett uttryck:Om du vill välja från en lista som visar tillgängliga utlösarutdata klickar du i rutan Meddelande för att avkoda . När listan med dynamiskt innehåll visas, under När en HTTP-begäran tas emot, väljer du Egenskapsvärde för brödtext , till exempel:
Tips
Om inga utlösarutdata visas går du till listan med dynamiska egenskaper och väljer Visa mer under När en HTTP-begäran tas emot.
Om du vill ange ett uttryck som refererar till utlösarens
body
utdata klickar du i rutan Meddelande för att avkoda . När listan med dynamiskt innehåll visas väljer du Uttryck. I uttrycksredigeraren anger du följande uttryck och väljer OK:triggerOutputs()['body']
Du kan också ange följande uttryck direkt i rutan Meddelande att avkoda :
@triggerBody()
Uttrycket matchas med body-token .
I åtgärdens meddelandehuvudegenskap anger du alla rubriker som krävs för AS2-åtgärden, som finns i
headers
utdata från utlösaren Förfrågning.Om du vill ange ett uttryck som refererar till utlösarens
headers
utdata väljer du Växla meddelandehuvuden till textläge.Klicka i rutan Meddelanderubriker . När listan med dynamiskt innehåll visas väljer du Uttryck. I uttrycksredigeraren anger du följande uttryck och väljer OK:
triggerOutputs()['Headers']
I as2-avkodningsåtgärden visas uttrycket nu som en token:
Växla mellan designern och kodvyn för att hämta uttryckstoken som ska matchas till token För rubriker . Efter det här steget ser as2-avkodningsåtgärden ut som i det här exemplet:
Lägg till åtgärden Svar som ett meddelandekvitto
Om du vill meddela handelspartnern att meddelandet har tagits emot kan du returnera ett svar som innehåller ett AS2-meddelandeborttagningsmeddelande (MDN) med hjälp av åtgärderna Villkor och Svar. Genom att lägga till dessa åtgärder omedelbart efter AS2-åtgärden kan logikappens arbetsflöde fortsätta bearbetningen om AS2-åtgärden lyckas. Om AS2-åtgärden misslyckas stoppas annars bearbetningen av logikappens arbetsflöde.
Under åtgärden AS2 Avkoda väljer du Nytt steg.
Under sökrutan Välj en åtgärd väljer du Inbyggd, om den inte redan är markerad. Skriv
condition
i sökrutan. Välj åtgärden Villkor .Nu visas villkorsformen, inklusive sökvägarna som avgör om villkoret uppfylls.
Ange nu villkoret som ska utvärderas. I rutan Välj ett värde anger du följande uttryck:
@body('AS2_Decode')?['AS2Message']?['MdnExpected']
Kontrollera att jämförelseåtgärden är inställd
is equal to
på i mittenrutan. I rutan till höger anger du värdetExpected
.Spara logikappens arbetsflöde. Om du vill hämta uttrycket som ska matchas som denna token växlar du mellan designern och kodvyn.
Ange nu svaren som ska returneras baserat på om AS2-avkodningsåtgärden lyckas eller inte.
Om as2-avkodningsåtgärden lyckas väljer du Lägg till en åtgärd i formen Sant. Under sökrutan Välj en åtgärd anger du
response
och väljer Svar.Om du vill komma åt AS2 MDN från utdata för AS2-avkodningsåtgärden anger du följande uttryck:
I egenskapen Headers för åtgärden Svar anger du följande uttryck:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
I egenskapen Body ( Brödtext ) för åtgärden Response (Svar) anger du följande uttryck:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Om du vill hämta de uttryck som ska matchas som token växlar du mellan designern och kodvyn:
I det fall då as2-avkodningsåtgärden misslyckas väljer du Lägg till en åtgärd i formen Falskt. Under sökrutan Välj en åtgärd anger du
response
och väljer Svar. Konfigurera svarsåtgärden för att returnera den status och det fel som du vill ha.
Spara logikappens arbetsflöde.
Lägg till åtgärden för att avkoda X12-meddelande
Lägg nu till åtgärden Avkoda X12-meddelande .
Under åtgärden Svar väljer du Lägg till en åtgärd.
Under Välj en åtgärd i sökrutan anger du
x12 decode
och väljer Avkoda X12-meddelande.Om X12-åtgärden uppmanar dig att ange anslutningsinformation anger du namnet på anslutningen, väljer det integrationskonto som du vill använda och väljer sedan Skapa.
Ange nu indata för X12-åtgärden. I det här exemplet används utdata från AS2-åtgärden, som är meddelandeinnehållet men observera att innehållet är i JSON-objektformat och är base64-kodat. Därför måste du konvertera det här innehållet till en sträng.
I rutan X12 Flat-filmeddelande som ska avkodas anger du följande uttryck för att konvertera AS2-utdata:
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Spara arbetsflödet för logikappen. Växla mellan designern och kodvyn för att hämta uttrycket som ska matchas som denna token.
Spara arbetsflödet för logikappen.
Om du behöver ytterligare steg för det här logikapparbetsflödet, till exempel för att avkoda meddelandeinnehållet och mata ut innehållet i JSON-objektformat, fortsätter du att lägga till nödvändiga åtgärder i logikappens arbetsflöde.
Nu har du konfigurerat arbetsflödet för B2B-logikappen. I en verklig app kanske du vill lagra de avkodade X12-data i en verksamhetsspecifik app (LOB) eller datalager. Läs till exempel följande dokumentation:
Om du vill ansluta dina egna verksamhetsspecifika appar och använda dessa API:er i logikappen kan du lägga till fler åtgärder eller skriva anpassade API:er.