XML transformeren in werkstromen met Azure Logic Apps
Van toepassing op: Azure Logic Apps (Verbruik + Standard)
In B2B-scenario's (Business-to-Business) voor bedrijfsintegratie moet u mogelijk XML tussen indelingen converteren. Uw werkstroom voor logische apps kan XML transformeren met behulp van de actie XML transformeren en een vooraf gedefinieerde toewijzing.
Stel dat u regelmatig B2B-orders of facturen ontvangt van een klant die de datumnotatie YearMonthDay (JJJJMMDD) gebruikt. Uw organisatie gebruikt echter de datumnotatie MonthDayYear (MMDDYJJJJ). U kunt een kaart maken en gebruiken waarmee de YearMonthDay-indeling wordt omgezet in de MonthDayYear-indeling voordat u de order- of factuurgegevens opslaat in de database van uw klantactiviteit.
Vereisten
Een Azure-account en -abonnement. Als u nog geen abonnement hebt, meldt u zich aan voor een gratis Azure-account.
Een werkstroom voor logische apps die al begint met een trigger, zodat u waar nodig de XML-actie Transformeren kunt toevoegen in uw werkstroom.
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 waar u de XML-actie Transformeren wilt gebruiken.
Als u werkt aan een resource en werkstroom van een logische app verbruik, zijn voor uw integratieaccount de volgende items vereist:
De toewijzing die moet worden gebruikt voor het transformeren van XML-inhoud.
Een koppeling naar de resource van uw logische app.
Als u aan een resource en werkstroom voor een standaard logische app werkt, kunt u uw integratieaccount koppelen aan uw resource voor logische apps, kaarten rechtstreeks uploaden naar uw logische app-resource of beide, op basis van de volgende scenario's:
Als u al een integratieaccount hebt met de artefacten die u nodig hebt of wilt gebruiken, kunt u uw integratieaccount koppelen aan meerdere resources van de logische standaard-app waar u de artefacten wilt gebruiken. Op die manier hoeft u geen kaarten te uploaden naar elke afzonderlijke logische app. Zie Uw logische app-resource koppelen aan uw integratieaccount voor meer informatie.
Als u geen integratieaccount hebt of alleen uw artefacten wilt gebruiken in meerdere werkstromen binnen dezelfde logische app-resource, kunt u rechtstreeks kaarten toevoegen aan uw logische app-resource met behulp van de Azure-portal of Visual Studio Code.
Notitie
Met de ingebouwde Liquid-connector kunt u een kaart selecteren die u eerder hebt geüpload naar uw logische app-resource of naar een gekoppeld integratieaccount, maar niet beide.
Als u dus geen integratieaccount hebt of nodig hebt, kunt u de optie uploaden gebruiken. Anders kunt u de koppelingsoptie gebruiken. In beide gevallen kunt u deze artefacten gebruiken voor alle onderliggende werkstromen binnen dezelfde logische app-resource.
U hebt nog steeds een integratieaccount nodig voor het opslaan van andere artefacten, zoals partners, overeenkomsten en certificaten, samen met het gebruik van de AS2-, X12- en EDIFACT-bewerkingen .
XML-actie Transformeren toevoegen
Open in Azure Portal uw standaard logische app en werkstroom in de ontwerpfunctie.
Als u een lege werkstroom hebt die geen trigger heeft, volgt u deze algemene stappen om een gewenste trigger toe te voegen. Anders gaat u verder met de volgende stap.
In dit voorbeeld wordt de aanvraagtrigger gebruikt.
Volg onder de stap in uw werkstroom waar u de XML-actie Transformeren wilt toevoegen deze algemene stappen om de actie transformatie-XML toe te voegen.
Geef in het vak Inhoud de XML-inhoud op die u wilt transformeren met behulp van XML-gegevens die u in de HTTP-aanvraag ontvangt.
Als u uitvoer van eerdere bewerkingen in de werkstroom wilt selecteren, klikt u in de actie XML-transformatie in het vak Inhoud en selecteert u de optie voor de lijst met dynamische inhoud (bliksempictogram).
Selecteer in de lijst met dynamische inhoud het token voor de inhoud die u wilt transformeren.
In dit voorbeeld wordt het bodytoken van de trigger geselecteerd.
Notitie
Zorg ervoor dat u XML-inhoud selecteert. Als de inhoud geen XML is of base64-gecodeerd is, moet u een expressie opgeven waarmee de inhoud wordt verwerkt. U kunt bijvoorbeeld expressiefuncties gebruiken, zoals
base64ToBinary()
het decoderen van inhoud ofxml()
het verwerken van de inhoud als XML.
Selecteer in de lijst Kaartbron de locatie waar u de kaart hebt geüpload, ofwel uw LogicApp-resource of uw IntegrationAccount.
Selecteer uw kaart in de lijst Kaart .
Sla uw werkstroom op als u gereed bent.
U bent nu klaar met het instellen van de XML-actie Transformeren. In een echte app wilt u mogelijk de getransformeerde gegevens opslaan in een LOB-app (Line-Of-Business), zoals SalesForce. Als u de getransformeerde uitvoer naar Salesforce wilt verzenden, voegt u een Salesforce-actie toe.
Als u de transformatieactie wilt testen, activeert u uw werkstroom en voert u deze uit. Voor de aanvraagtrigger verzendt u bijvoorbeeld een aanvraag naar de eindpunt-URL van de trigger.
De actie XML transformeren wordt uitgevoerd nadat uw werkstroom is geactiveerd en wanneer XML-inhoud beschikbaar is voor transformatie.
Geavanceerde mogelijkheden
Referentieassembly's of aangepaste code aanroepen vanuit kaarten
De XML-actie Transformeren ondersteunt het verwijzen naar externe assembly's vanuit kaarten, waardoor aangepaste .NET-code rechtstreeks vanuit XSLT-kaarten kan worden aangeroepen. Zie XSLT-kaarten toevoegen voor werkstromen in Azure Logic Apps voor meer informatie.
Referentie-extensieobjecten
In standaardwerkstromen ondersteunt de actie XML-transformatie het opgeven van een XML-extensieobject dat moet worden gebruikt met uw toewijzing.
Open in de actie XML transformeren de lijst geavanceerde parameters en selecteer XML-extensieobject, waarmee de parameter wordt toegevoegd aan de actie.
Geef in het vak XML-extensieobject het extensieobject op, bijvoorbeeld:
Byte ordermarkering
Standaard begint het antwoord van de transformatie met een bytevolgordemarkering (BOM). U hebt alleen toegang tot deze functionaliteit wanneer u in de codeweergave-editor werkt. Als u deze functionaliteit wilt uitschakelen, stelt u de transformOptions
eigenschap in op disableByteOrderMark
:
"Transform_XML": {
"inputs": {
"content": "@{triggerBody()}",
"integrationAccount": {
"map": {
"name": "TestMap"
}
},
"transformOptions": "disableByteOrderMark"
},
"runAfter": {},
"type": "Xslt"
}