Delen via


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:

De aanvraagtrigger toevoegen

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

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

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

    Schermopname van Azure Portal en designer voor meerdere tenants met 'wanneer een HTTP-aanvraag' in het zoekvak en de aanvraagtrigger is geselecteerd.

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

    Schermopname van de eigenschappen multitenantontwerper en aanvraagtrigger.

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

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

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

  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 trigger met 'Nieuwe stap' geselecteerd.

  2. Selecteer Onder het zoekvak Kies een bewerking alles, indien niet geselecteerd. Typ as2en selecteer AS2 Decode in het zoekvak.

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

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

      Schermopname van de ontwerpfunctie voor meerdere tenants met dynamische inhoudslijst 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 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 .

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

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

    1. Als u een expressie wilt invoeren die verwijst naar de uitvoer van headers de trigger, selecteert u Berichtkoppen overschakelen naar de 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 actie AS2 Decoderen 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 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:

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

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.

  1. Selecteer nieuwe stap onder de actie AS2 Decoderen.

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

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

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

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

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

    1. Als de as2-decodeeractie slaagt, selecteert u een actie toevoegen in de vorm Waar. 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 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']

    3. Als u wilt dat de expressies worden omgezet als tokens, schakelt u tussen de ontwerpfunctie 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 False 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 uw werkstroom voor logische apps op.

De X12-berichtactie decoderen toevoegen

Voeg nu de berichtactie X12 decoderen toe.

  1. Selecteer een actie toevoegen onder de actie Antwoord.

  2. Typ x12 decodeonder Kies een bewerking in het zoekvak en selecteer X12-bericht decoderen.

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

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

    Schermopname van multitenant designer en verbinding met integratieaccount.

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

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

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

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

Volgende stappen