Dela via


Transformera XML i arbetsflöden med Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

I B2B-scenarier (business-to-business) för företagsintegrering kan du behöva konvertera XML mellan format. Logikappens arbetsflöde kan transformera XML med hjälp av åtgärden Transformera XML och en fördefinierad karta.

Anta till exempel att du regelbundet får B2B-beställningar eller fakturor från en kund som använder datumformatet YearMonthDay (ÅÅÅÅÅMMDD). Din organisation använder dock datumformatet MonthDayYear (MMDDYYYYY). Du kan skapa och använda en karta som omvandlar YearMonthDay-formatet till MonthDayYear-formatet innan du lagrar order- eller fakturainformationen i kundaktivitetsdatabasen.

Förutsättningar

  • Ett Azure-konto och prenumeration. Om du inte har någon prenumeration än registrerar du dig för ett kostnadsfritt Azure-konto.

  • Ett arbetsflöde för logikappen som redan börjar med en utlösare så att du kan lägga till XML-åtgärden Transformera vid behov i arbetsflödet.

  • En integrationskontoresurs där du definierar och lagrar artefakter, till exempel handelspartner, avtal, certifikat och så vidare, för användning i dina företagsintegrerings- och B2B-arbetsflöden. Den här resursen måste uppfylla följande krav:

    • Är associerad med samma Azure-prenumeration som din logikappresurs.

    • Finns på samma plats eller i Azure-regionen som din logikappresurs där du planerar att använda XML-åtgärden Transformera.

    • Om du arbetar med en förbrukningslogikappresurs och ett arbetsflöde kräver ditt integrationskonto följande:

    • Om du arbetar med en standardlogikappresurs och ett arbetsflöde kan du länka ditt integrationskonto till din logikappresurs, ladda upp kartor direkt till logikappresursen eller båda, baserat på följande scenarier:

      • Om du redan har ett integrationskonto med artefakterna som du behöver eller vill använda kan du länka ditt integrationskonto till flera standardlogikappresurser där du vill använda artefakterna. På så sätt behöver du inte ladda upp kartor till varje enskild logikapp. Mer information finns i Länka logikappresursen till ditt integrationskonto.

      • Om du inte har ett integrationskonto eller bara planerar att använda artefakter i flera arbetsflöden i samma logikappresurs kan du lägga till kartor direkt till logikappresursen med hjälp av antingen Azure-portalen eller Visual Studio Code.

        Kommentar

        Med den inbyggda liquid-anslutningsappen kan du välja en karta som du tidigare laddade upp till din logikappresurs eller till ett länkat integrationskonto, men inte båda.

      Så om du inte har eller behöver ett integrationskonto kan du använda uppladdningsalternativet. Annars kan du använda länkningsalternativet. Hur som helst kan du använda dessa artefakter i alla underordnade arbetsflöden i samma logikappresurs.

    Du behöver fortfarande ett integrationskonto för att lagra andra artefakter, till exempel partner, avtal och certifikat, tillsammans med hjälp av ÅTGÄRDERNA AS2, X12 och EDIFACT .

Lägg till XML-åtgärd för transformering

  1. Öppna standardlogikappen och arbetsflödet i designern i Azure-portalen.

  2. Om du har ett tomt arbetsflöde som inte har någon utlösare följer du de här allmänna stegen för att lägga till valfri utlösare. Annars fortsätter du till nästa steg.

    I det här exemplet används utlösaren Förfrågning .

  3. Under steget i arbetsflödet där du vill lägga till XML-åtgärden Transformera följer du de här allmänna stegen för att lägga till åtgärden Med namnet Transformera XML.

  4. I rutan Innehåll anger du det XML-innehåll som du vill transformera med alla XML-data som du tar emot i HTTP-begäran.

    1. Om du vill välja utdata från tidigare åtgärder i arbetsflödet går du till åtgärden Transformera XML , klickar i rutan Innehåll och väljer alternativet för dynamisk innehållslista (blixtikon).

    2. I listan med dynamiskt innehåll väljer du token för det innehåll som du vill transformera.

      Screenshot shows Standard workflow with opened dynamic content list.

      I det här exemplet väljs brödtexttoken från utlösaren.

      Kommentar

      Kontrollera att du väljer XML-innehåll. Om innehållet inte är XML eller är base64-kodat måste du ange ett uttryck som bearbetar innehållet. Du kan till exempel använda uttrycksfunktioner, till exempel base64ToBinary() för att avkoda innehåll eller xml() bearbeta innehållet som XML.

  5. I listan Kartkälla väljer du den plats där du laddade upp kartan, antingen din LogicApp-resurs eller ditt IntegrationAccount.

  6. I listan Karta väljer du din karta.

  7. Spara arbetsflödet när du är klar.

    Nu är du klar med att konfigurera xml-åtgärden för transformering. I en verklig app kanske du vill lagra transformerade data i en verksamhetsspecifik app (LOB), till exempel SalesForce. Om du vill skicka transformerade utdata till Salesforce lägger du till en Salesforce-åtgärd.

  8. Testa omvandlingsåtgärden genom att utlösa och köra arbetsflödet. För utlösaren Begäran skickar du till exempel en begäran till utlösarens slutpunkts-URL.

    Åtgärden Transformera XML körs när arbetsflödet har utlösts och när XML-innehåll är tillgängligt för transformering.

Avancerade funktioner

Referenssammansättningar eller anropa anpassad kod från kartor

Åtgärden Transformera XML stöder hänvisning till externa sammansättningar från kartor, vilket gör det möjligt att direkt anropa anpassad .NET-kod från XSLT-kartor. Mer information finns i Lägga till XSLT-kartor för arbetsflöden i Azure Logic Apps.

Referenstilläggsobjekt

I Standard-arbetsflöden stöder åtgärden Transformera XML att ange ett XML-tilläggsobjekt som ska användas med kartan.

  1. I åtgärden Transformera XML öppnar du listan Avancerade parametrar och väljer XML-tilläggsobjekt, som lägger till parametern i åtgärden.

  2. I rutan XML-tilläggsobjekt anger du ditt tilläggsobjekt, till exempel:

    Screenshot shows Transform XML action with XML Extension Object parameter and value.

Byteordningsmarkering

Som standard börjar svaret från omvandlingen med ett byteordningsmärke (BOM). Du kan bara komma åt den här funktionen när du arbetar i kodvisningsredigeraren. Om du vill inaktivera den här funktionen anger du transformOptions egenskapen till disableByteOrderMark:

"Transform_XML": {
    "inputs": {
        "content": "@{triggerBody()}",
        "integrationAccount": {
            "map": {
                "name": "TestMap"
            }
        },
        "transformOptions": "disableByteOrderMark"
    },
    "runAfter": {},
    "type": "Xslt"
}

Nästa steg