Transformace XML v pracovních postupech pomocí Azure Logic Apps

Platí pro: Azure Logic Apps (Consumption + Standard)

Ve scénářích B2B (Enterprise Integration Business-to-Business) možná budete muset převést XML mezi formáty. Pracovní postup aplikace logiky může transformovat XML pomocí akce Transformovat XML a předdefinované mapování.

Předpokládejme například, že pravidelně dostáváte objednávky B2B nebo faktury od zákazníka, který používá formát data YearMonthDay (RRRRMMDD). Vaše organizace ale používá formát data MonthDayYear (MMDDYYYYYYY). Před uložením podrobností objednávky nebo faktury do databáze aktivit zákazníka můžete vytvořit a použít mapu, která transformuje formát YearMonthDay na formát MonthDayYear.

Požadavky

  • Účet a předplatné Azure. Pokud ještě nemáte předplatné, zaregistrujte si bezplatný účet Azure.

  • Pracovní postup aplikace logiky, který už začíná triggerem, abyste mohli v pracovním postupu přidat akci Transformovat XML tam, kde je to potřeba.

  • Prostředek účtu integrace, kde definujete a ukládáte artefakty, jako jsou obchodní partneři, smlouvy, certifikáty atd., pro použití v podnikových integracích a pracovních postupech B2B. Tento prostředek musí splňovat následující požadavky:

    • Je přidružený ke stejnému předplatnému Azure jako prostředek aplikace logiky.

    • Existuje ve stejném umístění nebo oblasti Azure jako prostředek aplikace logiky, ve kterém plánujete použít akci TransformOVAT XML .

    • Pokud pracujete na prostředku a pracovním postupu aplikace logiky Consumption, váš účet integrace vyžaduje následující položky:

    • Pokud pracujete na prostředku a pracovním postupu standardní aplikace logiky, můžete propojit svůj účet integrace s prostředkem aplikace logiky, nahrát mapy přímo do prostředku aplikace logiky nebo obojí na základě následujících scénářů:

      • Pokud už máte účet integrace s artefakty, které potřebujete nebo chcete použít, můžete svůj účet integrace propojit s několika prostředky standardní aplikace logiky, ve kterých chcete artefakty používat. Díky tomu nemusíte nahrávat mapy do každé jednotlivé aplikace logiky. Další informace najdete v tématu Propojení prostředku aplikace logiky s účtem integrace.

      • Pokud nemáte účet integrace nebo plánujete používat artefakty napříč několika pracovními postupy ve stejném prostředku aplikace logiky, můžete do prostředku aplikace logiky přidat mapy přímo pomocí webu Azure Portal nebo editoru Visual Studio Code.

        Poznámka:

        Integrovaný konektor Liquid umožňuje vybrat mapu, kterou jste předtím nahráli do prostředku aplikace logiky nebo do propojeného účtu integrace, ale ne do obou.

      Pokud tedy účet integrace nemáte nebo potřebujete, můžete použít možnost nahrávání. V opačném případě můžete použít možnost propojení. V obou směrech můžete tyto artefakty použít napříč všemi podřízenými pracovními postupy v rámci stejného prostředku aplikace logiky.

    Stále potřebujete účet integrace pro ukládání dalších artefaktů, jako jsou partneři, smlouvy a certifikáty, spolu s používáním operací AS2, X12 a EDIFACT .

Přidání akce XML transformace

  1. Na webu Azure Portal otevřete aplikaci logiky Standard a pracovní postup v návrháři.

  2. Pokud máte prázdný pracovní postup, který nemá aktivační událost, postupujte podle těchto obecných kroků a přidejte všechny požadované triggery. V opačném případě pokračujte k dalšímu kroku.

    V tomto příkladu se používá trigger požadavku .

  3. Pod krokem v pracovním postupu, do kterého chcete přidat akci TransformOVAT XML , přidejte akci s názvem Transform XML podle těchto obecných kroků.

  4. Do pole Obsah zadejte obsah XML, který chcete transformovat pomocí libovolných dat XML, která obdržíte v požadavku HTTP.

    1. Pokud chcete vybrat výstupy z předchozích operací v pracovním postupu, klikněte v akci Transform XML do pole Obsah a vyberte možnost seznamu dynamického obsahu (ikona blesku).

    2. V seznamu dynamického obsahu vyberte token pro obsah, který chcete transformovat.

      Screenshot shows Standard workflow with opened dynamic content list.

      Tento příklad vybere token Body z triggeru.

      Poznámka:

      Ujistěte se, že jste vybrali obsah XML. Pokud obsah není XML nebo je kódovaný podle base64, musíte zadat výraz, který zpracovává obsah. Můžete například použít funkce výrazů, jako base64ToBinary() je dekódování obsahu nebo xml() zpracování obsahu jako XML.

  5. V seznamu Zdroj mapy vyberte umístění, kam jste mapu nahráli, a to buď prostředek LogicApp, nebo váš IntegrationAccount.

  6. V seznamu Mapy vyberte svou mapu.

  7. Po dokončení uložte pracovní postup.

    Teď jste dokončili nastavení akce TransformOVAT XML . V reálné aplikaci můžete chtít transformovaná data ukládat do obchodní aplikace, jako je SalesForce. Pokud chcete transformovaný výstup odeslat do Salesforce, přidejte akci Salesforce.

  8. Pokud chcete otestovat akci transformace, aktivujte a spusťte pracovní postup. Například pro trigger požadavku odešlete požadavek na adresu URL koncového bodu triggeru.

    Akce Transformovat XML se spustí po aktivaci pracovního postupu a dostupnosti obsahu XML pro transformaci.

Pokročilé možnosti

Referenční sestavení nebo volání vlastního kódu z map

Akce Transform XML podporuje odkazování na externí sestavení z map, která umožňují přímé volání vlastního kódu .NET z map XSLT. Další informace najdete v tématu Přidání map XSLT pro pracovní postupy v Azure Logic Apps.

Referenční objekty rozšíření

Ve standardních pracovních postupech akce Transform XML podporuje zadání objektu rozšíření XML, který se má použít s mapou.

  1. V akci Transformovat XML otevřete seznam Rozšířených parametrů a vyberte objekt rozšíření XML, který přidá parametr do akce.

  2. Do pole Objekt rozšíření XML zadejte objekt rozšíření, například:

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

Značka pořadí bajtů

Ve výchozím nastavení odpověď z transformace začíná značkou pořadí bajtů (BOM). K této funkci se dostanete jenom v případě, že pracujete v editoru zobrazení kódu. Chcete-li tuto funkci zakázat, nastavte transformOptions vlastnost na disableByteOrderMark:

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

Další kroky