Delen via


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:

De aanvraagtrigger toevoegen

Als u de werkstroom in dit voorbeeld wilt starten, voegt u de aanvraagtrigger toe.

  1. Open in de Azure Portal uw logische app-resource en lege werkstroom in de werkstroomontwerper.

  2. 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.

    Schermopname van Azure Portal en ontwerpfunctie voor meerdere tenants met 'wanneer een HTTP-aanvraag' in het zoekvak en Aanvraagtrigger geselecteerd.

  3. Laat in de trigger het vak Aanvraagbody JSON-schema leeg.

    De reden hiervoor is dat de trigger een X12-bericht in platte bestandsindeling ontvangt.

    Schermopname met de eigenschappen van de ontwerpfunctie voor meerdere tenants en de aanvraagtrigger.

  4. 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.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de gegenereerde URL voor aanvraagtrigger.

  5. 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.

  1. 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.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de trigger met 'Nieuwe stap' geselecteerd.

  2. Selecteer onder het zoekvak Kies een bewerkingde optie Alles als deze optie niet is geselecteerd. Voer in het zoekvak in as2en selecteer AS2 Decoderen.

    Schermopname van de ontwerpfunctie voor meerdere tenants met de actie 'AS2 decoderen' geselecteerd.

  3. 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:

      Schermopname van de ontwerpfunctie voor meerdere tenants met een lijst met dynamische inhoud en de eigenschap Hoofdtekst geselecteerd.

      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 .

      Schermopname van de ontwerpfunctie voor meerdere tenants met de opgeloste uitvoer van de eigenschap Hoofdtekst.

  4. 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.

    1. Als u een expressie wilt invoeren die verwijst naar de uitvoer van headers de trigger, selecteert u Berichtkoppen overschakelen naar tekstmodus.

      Schermopname van de ontwerpfunctie voor meerdere tenants met 'Berichtkoppen overschakelen naar tekstmodus' geselecteerd.

    2. 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:

      Schermopname van de ontwerpfunctie voor meerdere tenants en het vak Berichtkoppen met het token '@triggerOutputs()['Headers']'.

    3. 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:

      Schermopname van de uitvoer van de ontwerpfunctie voor meerdere tenants en opgeloste headers van de trigger.

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.

  1. Selecteer onder de actie AS2 decoderende optie Nieuwe stap.

  2. Selecteer onder het zoekvak Kies een bewerkingde optie Ingebouwd, als dit nog niet is geselecteerd. Typ condition in het zoekvak. Selecteer de actie Voorwaarde .

    Schermopname van de ontwerpfunctie voor meerdere tenants en de actie Voorwaarde.

    Nu wordt de voorwaardeshape weergegeven, inclusief de paden die bepalen of aan de voorwaarde wordt voldaan.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de voorwaardeshape met lege paden.

  3. 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 waarde Expectedin.

  4. Sla de werkstroom van uw logische app op. Als u de expressie wilt omzetten als dit token, schakelt u tussen de ontwerp- en codeweergave.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de shape van de voorwaarde met een bewerking.

  5. Geef nu de antwoorden op die moeten worden geretourneerd op basis van of de AS2-decodeeractie slaagt of niet.

    1. 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 responseen selecteer Antwoord.

      Schermopname van de ontwerpfunctie voor meerdere tenants en de actie 'Antwoord'.

    2. 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']

    3. Als u de expressies wilt omzetten als tokens, schakelt u tussen de ontwerpweergave en de codeweergave:

      Schermopname van multitenant designer en opgeloste expressie voor toegang tot AS2 MDN.

    4. Als de AS2-decodeeractie mislukt, selecteert u in de shape Falsede optie Een actie toevoegen. Voer onder het zoekvak Kies een bewerking in responseen selecteer Antwoord. Stel de actie Antwoord in om de gewenste status en fout te retourneren.

  6. Sla de werkstroom van uw logische app op.

De actie X12-bericht decoderen toevoegen

Voeg nu de actie X12-bericht decoderen toe.

  1. Selecteer onder de actie Antwoord de optie Een actie toevoegen.

  2. Voer onder Kies een bewerking in het zoekvak x12 decodein en selecteer X12-bericht decoderen.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de actie 'X12-bericht decoderen' geselecteerd.

  3. 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.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de verbinding met het integratieaccount.

  4. 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'])

  5. 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.

    Schermopname van de ontwerpfunctie voor meerdere tenants en de conversie van met base64 gecodeerde inhoud naar een tekenreeks.

  6. 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.

Volgende stappen