B2B-berichten uitwisselen tussen partners met behulp van werkstromen in Azure Logic Apps
Van toepassing op: Azure Logic Apps (Verbruik + Standard)
Wanneer u een integratieaccount hebt dat handelspartners en overeenkomsten definieert, kunt u een geautomatiseerde B2B-werkstroom (business-to-business) maken waarmee berichten worden uitgewisseld tussen handelspartners met behulp van Azure Logic Apps. Uw werkstroom kan connectors gebruiken die industriestandaardprotocollen ondersteunen, zoals AS2, X12, EDIFACT en RosettaNet. U kunt ook bewerkingen opnemen die worden geleverd door andere connectors in Azure Logic Apps, zoals Office 365 Outlook, SQL Server en Salesforce.
In dit artikel wordt beschreven hoe u een voorbeeldwerkstroom voor logische apps maakt die HTTP-aanvragen kan ontvangen met behulp van een aanvraagtrigger , berichtinhoud decoderen met behulp van de AS2-decodeer en X12-acties decoderen en een antwoord retourneren met behulp van de actie Antwoord . In het voorbeeld wordt de werkstroomontwerper in Azure Portal gebruikt, maar u kunt vergelijkbare stappen volgen voor de werkstroomontwerper in Visual Studio Code.
Als u geen toegang hebt tot logische apps, bekijkt u wat is Azure Logic Apps? Raadpleeg B2B Enterprise Integration-werkstromen met Azure Logic Apps voor meer informatie over B2B Enterprise Integration-werkstromen.
Vereisten
Een Azure-account en -abonnement. Als u nog geen abonnement hebt, meldt u zich aan voor een gratis Azure-account.
Een integratieaccountresource waarin u artefacten definieert en opslaat, zoals handelspartners, overeenkomsten, certificaten, enzovoort, voor gebruik in uw bedrijfsintegratie en B2B-werkstromen. Deze resource moet voldoen aan de volgende vereisten:
Is gekoppeld aan hetzelfde Azure-abonnement als uw logische app-resource.
Bestaat in dezelfde locatie of Azure-regio als uw logische app-resource.
Als u het resourcetype logische app (verbruik) gebruikt, vereist uw integratieaccount een koppeling naar uw logische app-resource voordat u artefacten in uw werkstroom kunt gebruiken.
Als u het resourcetype Logische app (Standard) gebruikt, heeft uw integratieaccount geen koppeling naar uw logische app-resource nodig, maar is nog steeds vereist om andere artefacten op te slaan, zoals partners, overeenkomsten en certificaten, samen met het gebruik van de AS2-, X12- of EDIFACT-bewerkingen. Uw integratieaccount moet nog steeds voldoen aan andere vereisten, zoals het gebruik van hetzelfde Azure-abonnement en het bestaande op dezelfde locatie als uw logische app-resource.
Notitie
Momenteel ondersteunt alleen het resourcetype logische app (verbruik) RosettaNet-bewerkingen. Het resourcetype logische app (Standard) bevat geen RosettaNet-bewerkingen .
Ten minste twee handelspartners in uw integratieaccount. De definities voor beide partners moeten dezelfde kwalificatie voor bedrijfsidentiteit gebruiken, namelijk AS2, X12, EDIFACT of RosettaNet.
Een AS2-overeenkomst en X12-overeenkomst voor de partners die u in deze werkstroom gebruikt. Voor elke overeenkomst zijn een hostpartner en een gastpartner vereist.
Een logische app-resource met een lege werkstroom waar u de aanvraagtrigger kunt toevoegen en vervolgens de volgende acties kunt uitvoeren:
Voorwaarde, waarmee een antwoord wordt verzonden op basis van of de AS2-decodeeractie slaagt of mislukt
De aanvraagtrigger toevoegen
Als u de werkstroom in dit voorbeeld wilt starten, voegt u de aanvraagtrigger toe.
Open in Azure Portal de resource van uw logische app en lege werkstroom in de werkstroomontwerper.
Selecteer Alles in het zoekvak van de ontwerpfunctie, indien niet geselecteerd. Typ
when a http request
in het zoekvak. Selecteer de aanvraagtrigger met de naam Wanneer een HTTP-aanvraag wordt ontvangen.Laat in de trigger het vak JSON-schema voor aanvraagbody leeg.
De reden hiervoor is dat de trigger een X12-bericht in platte bestandsindeling ontvangt.
Als u klaar bent, selecteert u Opslaan op de werkbalk in de ontwerper.
Met deze stap wordt de HTTP POST-URL gegenereerd die u later gebruikt om een aanvraag te verzenden die de werkstroom van de logische app activeert.
Kopieer en sla de URL op voor later gebruik.
De as2-actie decoderen toevoegen
Voeg nu de B2B-acties voor dit voorbeeld toe, waarbij de AS2- en X12-acties worden gebruikt.
Selecteer onder de trigger de optie Nieuwe stap.
Tip
Als u de details van de aanvraagtrigger wilt verbergen, selecteert u de titelbalk van de trigger.
Selecteer Onder het zoekvak Kies een bewerking alles, indien niet geselecteerd. Typ
as2
en selecteer AS2 Decode in het zoekvak.Voer in het bericht van de actie om de eigenschap te decoderen de invoer in die u wilt dat de AS2-actie decoderen. Dit is de
body
uitvoer van de aanvraagtrigger. U hebt meerdere manieren om deze inhoud op te geven als invoer van de actie door een selectie te maken in de lijst met dynamische inhoud of als een expressie:Als u een keuze wilt maken uit een lijst met de beschikbare triggeruitvoer, klikt u in het vak Bericht om te decoderen . Nadat de lijst met dynamische inhoud wordt weergegeven, selecteert u onder Wanneer een HTTP-aanvraag wordt ontvangen, de waarde van de hoofdteksteigenschap, bijvoorbeeld:
Tip
Als er geen triggeruitvoer wordt weergegeven, selecteert u in de lijst met dynamische eigenschappen onder Wanneer een HTTP-aanvraag wordt ontvangen meer.
Als u een expressie wilt invoeren die verwijst naar de uitvoer van
body
de trigger, klikt u in het bericht om het vak te decoderen . Nadat de lijst met dynamische inhoud wordt weergegeven, selecteert u Expressie. Voer in de expressie-editor de volgende expressie in en selecteer OK:triggerOutputs()['body']
U kunt ook in het vak Bericht om te decoderen de volgende expressie rechtstreeks invoeren:
@triggerBody()
De expressie wordt omgezet in het hoofdteksttoken .
Voer in de eigenschap Berichtkoppen van de actie eventuele headers in die vereist zijn voor de AS2-actie, die zich in de
headers
uitvoer van de aanvraagtrigger bevinden.Als u een expressie wilt invoeren die verwijst naar de uitvoer van
headers
de trigger, selecteert u Berichtkoppen overschakelen naar de tekstmodus.Klik in het vak Berichtkoppen . Nadat de lijst met dynamische inhoud wordt weergegeven, selecteert u Expressie. Voer in de expressie-editor de volgende expressie in en selecteer OK:
triggerOutputs()['Headers']
In de actie AS2 Decoderen wordt de expressie nu weergegeven als een token:
Als u het expressietoken wilt ophalen dat moet worden omgezet in het headers-token , schakelt u tussen de ontwerpfunctie en de codeweergave. Na deze stap ziet de AS2-decodeeractie er als volgt uit:
De actie Antwoord toevoegen als berichtbevestiging
Als u de handelspartner wilt informeren dat het bericht is ontvangen, kunt u een antwoord retourneren dat een MDN (Message Disposition Notification) bevat met behulp van de acties Voorwaarde en Antwoord. Door deze acties direct na de AS2-actie toe te voegen, kan de werkstroom van de logische app doorgaan met verwerken als de AS2-actie slaagt. Als de AS2-actie mislukt, wordt de verwerking van de werkstroom van de logische app gestopt.
Selecteer nieuwe stap onder de actie AS2 Decoderen.
Selecteer in het zoekvak Een bewerking kiezen de optie Ingebouwd als deze nog niet is geselecteerd. Typ
condition
in het zoekvak. Selecteer de actie Voorwaarde .Nu wordt de voorwaardeshape weergegeven, inclusief de paden die bepalen of aan de voorwaarde wordt voldaan.
Geef nu de voorwaarde op die moet worden geëvalueerd. Voer in het vak Een waarde kiezen de volgende expressie in:
@body('AS2_Decode')?['AS2Message']?['MdnExpected']
Controleer in het middelste vak of de vergelijkingsbewerking is ingesteld op
is equal to
. Voer in het vak aan de rechterkant de waardeExpected
in.Sla uw werkstroom voor logische apps op. Als u de expressie wilt ophalen die moet worden omgezet als dit token, schakelt u tussen de ontwerpfunctie en de codeweergave.
Geef nu de antwoorden op die moeten worden geretourneerd op basis van of de AS2-decodeeractie al dan niet slaagt.
Als de as2-decodeeractie slaagt, selecteert u een actie toevoegen in de vorm Waar. Voer onder het zoekvak Kies een bewerking in
response
en selecteer Antwoord.Als u toegang wilt krijgen tot de MDN van AS2 vanuit de uitvoer van de AS2-decodeeractie , geeft u de volgende expressies op:
Voer in de eigenschap Headers van de antwoordactie de volgende expressie in:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
Voer in de eigenschap Hoofdtekst van de antwoordactie de volgende expressie in:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Als u wilt dat de expressies worden omgezet als tokens, schakelt u tussen de ontwerpfunctie en de codeweergave:
Als de as2-decodeeractie mislukt, selecteert u in de shape False een actie toevoegen. Voer onder het zoekvak Kies een bewerking in
response
en selecteer Antwoord. Stel de actie Antwoord in om de gewenste status en fout te retourneren.
Sla uw werkstroom voor logische apps op.
De X12-berichtactie decoderen toevoegen
Voeg nu de berichtactie X12 decoderen toe.
Selecteer een actie toevoegen onder de actie Antwoord.
Typ
x12 decode
onder Kies een bewerking in het zoekvak en selecteer X12-bericht decoderen.Als de X12-actie u vraagt om verbindingsgegevens, geeft u de naam op voor de verbinding, selecteert u het integratieaccount dat u wilt gebruiken en selecteert u Vervolgens Maken.
Geef nu de invoer op voor de X12-actie. In dit voorbeeld wordt de uitvoer van de AS2-actie gebruikt. Dit is de berichtinhoud, maar houd er rekening mee dat deze inhoud de JSON-objectindeling heeft en base64 is gecodeerd. U moet deze inhoud dus converteren naar een tekenreeks.
Voer in het bericht X12 Flat file to decodeer de volgende expressie in om de AS2-uitvoer te converteren:
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Sla uw werkstroom voor logische apps op. Als u de expressie wilt ophalen die moet worden omgezet als dit token, schakelt u tussen de ontwerpfunctie en de codeweergave.
Sla uw werkstroom voor logische apps op.
Als u extra stappen nodig hebt voor deze werkstroom voor logische apps, bijvoorbeeld om de berichtinhoud te decoderen en die inhoud uit te voeren in de JSON-objectindeling, gaat u verder met het toevoegen van de benodigde acties aan uw werkstroom voor logische apps.
U bent nu klaar met het instellen van uw werkstroom voor de logische B2B-app. In een echte app wilt u mogelijk de gedecodeerde X12-gegevens opslaan in een LOB-app (Line-Of-Business) of gegevensopslag. Raadpleeg bijvoorbeeld de volgende documentatie:
Als u uw eigen LOB-apps wilt verbinden en deze API's wilt gebruiken in uw logische app, kunt u meer acties toevoegen of aangepaste API's schrijven.