B2B-berichten uitwisselen tussen partners met behulp van werkstromen in Azure Logic Apps
Van toepassing op: Azure Logic Apps (verbruik + standaard)
Wanneer u een integratieaccount hebt dat handelspartners en -overeenkomsten definieert, kunt u een geautomatiseerde B2B-werkstroom (business-to-business) maken waarmee berichten tussen handelspartners worden uitgewisseld met behulp van Azure Logic Apps. Uw werkstroom kan connectors gebruiken die industriestandaard protocollen 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 een logische app maakt die HTTP-aanvragen kan ontvangen met behulp van een aanvraagtrigger , berichtinhoud decoderen met behulp van de AS2-acties decoderen en decoderen, en een antwoord retourneert met behulp van de actie Antwoord . In het voorbeeld wordt de werkstroomontwerper in de Azure Portal gebruikt, maar u kunt vergelijkbare stappen volgen voor de werkstroomontwerper in Visual Studio.
Als u geen gebruik hebt van logische apps, raadpleegt u Wat is Azure Logic Apps? Raadpleeg Werkstromen voor B2B enterprise-integratie met Azure Logic Apps voor meer informatie over B2B Enterprise-integratie.
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, heeft uw integratieaccount een koppeling naar uw logische app-resource nodig voordat u artefacten in uw werkstroom kunt gebruiken.
Als u het resourcetype Logische app (Standaard) gebruikt, heeft uw integratieaccount geen koppeling naar uw logische app-resource nodig, maar is het wel vereist voor het opslaan van andere artefacten, 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
Op dit moment ondersteunt alleen het resourcetype Logische app (verbruik)RosettaNet-bewerkingen . Het resourcetype Logische app (Standard) bevat geen RosettaNet-bewerkingen .
Ten minste twee handelspartners in uw integratierekening. De definities voor beide partners moeten dezelfde kwalificatie voor bedrijfsidentiteiten 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, die een antwoord verzendt 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 de Azure Portal uw logische app-resource en lege werkstroom in de werkstroomontwerper.
Selecteer onder het zoekvak van de ontwerper de optie Alles als dit niet is 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 Aanvraagbody JSON-schema leeg.
De reden hiervoor is dat de trigger een X12-bericht in platte bestandsindeling ontvangt.
Selecteer Opslaan op de werkbalk van de ontwerper wanneer u klaar bent.
Met deze stap wordt de HTTP POST-URL gegenereerd die u later gebruikt om een aanvraag te verzenden waarmee de werkstroom van een logische app wordt geactiveerd.
Kopieer de URL en sla deze op voor later gebruik.
De actie AS2 decoderen toevoegen
Voeg nu de B2B-acties toe voor dit voorbeeld, waarin de acties AS2 en X12 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 bewerkingde optie Alles als deze optie niet is geselecteerd. Voer in het zoekvak in
as2
en selecteer AS2 Decoderen.Voer in de eigenschap Bericht om te decoderen van de actie de invoer in die u met de AS2-actie wilt decoderen. Dit is de
body
uitvoer van de aanvraagtrigger. U kunt deze inhoud op verschillende manieren opgeven als de invoer van de actie, door te selecteren in de lijst met dynamische inhoud of als een expressie:Als u een selectie wilt maken in 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 eigenschapswaarde Hoofdtekst , bijvoorbeeld:
Tip
Als er geen triggeruitvoer wordt weergegeven, selecteert u in de lijst met dynamische eigenschappen onder Wanneer een HTTP-aanvraag wordt ontvangen de optie Meer weergeven.
Als u een expressie wilt invoeren die verwijst naar de uitvoer van
body
de trigger, klikt u in het vak Bericht om 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']
Of voer in het vak Bericht om te decoderen rechtstreeks de volgende expressie in:
@triggerBody()
De expressie wordt omgezet in het token Body .
Voer in de eigenschap Berichtkoppen van de actie eventuele kopteksten 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 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 as2-decodeeractie wordt de expressie nu weergegeven als een token:
Als u het expressietoken wilt omzetten in het token Headers , schakelt u tussen de ontwerpfunctie en de codeweergave. Na deze stap ziet de as2-decodeeractie er als volgt uit:
De actie Antwoord toevoegen als ontvangstbevestiging
Als u de handelspartner op de hoogte wilt stellen dat het bericht is ontvangen, kunt u een antwoord retourneren dat een BERICHT-verwijderingsmelding (MDN) van AS2 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, stopt de werkstroom van de logische app met de verwerking.
Selecteer onder de actie AS2 decoderende optie Nieuwe stap.
Selecteer onder het zoekvak Kies een bewerkingde optie Ingebouwd, als dit 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 Kies een waarde 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 rechtervak de waardeExpected
in.Sla de werkstroom van uw logische app op. Als u de expressie wilt omzetten als dit token, schakelt u tussen de ontwerp- en codeweergave.
Geef nu de antwoorden op die moeten worden geretourneerd op basis van of de AS2-decodeeractie slaagt of niet.
Voor het geval dat de AS2-decodeeractie is geslaagd, selecteert u in de shape Waarde optie Een actie toevoegen. 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 actie Antwoord de volgende expressie in:
@body('AS2_Decode')?['OutgoingMdn']?['OutboundHeaders']
Voer in de eigenschap Hoofdtekst van de actie antwoord de volgende expressie in:
@body('AS2_Decode')?['OutgoingMdn']?['Content']
Als u de expressies wilt omzetten als tokens, schakelt u tussen de ontwerpweergave en de codeweergave:
Als de AS2-decodeeractie mislukt, selecteert u in de shape Falsede optie 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 de werkstroom van uw logische app op.
De actie X12-bericht decoderen toevoegen
Voeg nu de actie X12-bericht decoderen toe.
Selecteer onder de actie Antwoord de optie Een actie toevoegen.
Voer onder Kies een bewerking in het zoekvak
x12 decode
in en selecteer X12-bericht decoderen.Als de X12-actie u om verbindingsgegevens vraagt, geeft u de naam voor de verbinding op, selecteert u het integratieaccount dat u wilt gebruiken en selecteert u vervolgens Maken.
Geef nu de invoer voor de X12-actie op. 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-gecodeerd is. U moet deze inhoud dus converteren naar een tekenreeks.
Voer in het vak X12 Flat file message to decoderen de volgende expressie in om de AS2-uitvoer te converteren:
@base64ToString(body('AS2_Decode')?['AS2Message']?['Content'])
Sla de werkstroom van de logische app op. Als u de expressie wilt omzetten als dit token, schakelt u tussen de ontwerpfunctie en de codeweergave.
Sla de werkstroom van de logische app op.
Als u aanvullende stappen nodig hebt voor deze werkstroom voor logische apps, bijvoorbeeld om de berichtinhoud te decoderen en die inhoud in JSON-objectindeling uit te voeren, gaat u verder met het toevoegen van de benodigde acties aan de werkstroom van uw logische app.
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 gegevensarchief. Raadpleeg bijvoorbeeld de volgende documentatie:
Als u uw eigen LOB-apps wilt verbinden en deze API's in uw logische app wilt gebruiken, kunt u meer acties toevoegen of aangepaste API's schrijven.