Exchange 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. Ditt arbetsflöde 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 utlösare för begäran, avkoda meddelandeinnehåll med hjälp av åtgärderna AS2 Decode och Decode 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 Code.
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 registrerar du 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 dina företagsintegrerings- 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 i Azure-regionen som din logikappresurs.
Om du använder resurstypen Logikapp (Förbrukning) kräver ditt integrationskonto 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 logikappens resurs, 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.
Kommentar
För närvarande stöder endast resurstypen Logikapp (förbrukning) 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 Begäran 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.Lämna JSON-schemarutan för begärandetext tom i utlösaren.
Orsaken är att utlösaren får ett X12-meddelande i platt filformat.
När du är klar klickar du på tabelldesignern Spara på kommandofältet.
Det här steget genererar DEN HTTP POST-URL som du senare använder för att skicka en begäran som utlöser logikappens arbetsflöde.
Kopiera och spara URL:en för senare användning.
Lägg till avkodningsåtgärden 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.
Dricks
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-avkodning.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:
Dricks
Om inga utlösarutdata visas går du till listan med dynamiska egenskaper under När en HTTP-begäran tas emot väljer du Visa mer.
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']
Eller i rutan Meddelande att avkoda anger du direkt följande uttryck:
@triggerBody()
Uttrycket matchas med brödtexttoken.
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-meddelandemeddelande (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 annars misslyckas slutar logikappens arbetsflöde att bearbetas.
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 har valts. 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 arbetsflödet för logikappen. Växla mellan designern och kodvyn för att få det uttryck som ska matchas som den här token.
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 AS2-avkodningsåtgärdens utdata anger du följande uttryck:
I egenskapen Sidhuvud för åtgärden Svar anger du följande uttryck:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
Ange följande uttryck i egenskapen Svarsåtgärdens brödtext:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Om du vill hämta de uttryck som ska matchas som token växlar du mellan designern och kodvyn:
Om as2-avkodningsåtgärden misslyckas går du till formen False och väljer Lägg till en åtgärd. Under sökrutan Välj en åtgärd anger du
response
och väljer Svar. Konfigurera åtgärden Svar för att returnera den status och det fel som du vill ha.
Spara arbetsflödet för logikappen.
Lägg till åtgärden 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 går du till sökrutan och anger
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 för avkodning 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 få det uttryck som ska matchas som den här 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 är du klar med att konfigurera 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. Du kan till exempel läsa 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.