Transformieren von XML in Workflows mit Azure Logic Apps

Gilt für: Azure Logic Apps (Verbrauch + Standard)

In B2B-Szenarios (Business-to-Business) für die Unternehmensintegration müssen Sie möglicherweise XML in ein anderes Format konvertieren. Ihr Logik-App-Workflow kann XML mithilfe der Aktion XML transformieren und einer vordefinierten Zuordnung transformieren.

Angenommen, Sie erhalten von einem Kunden regelmäßig B2B-Aufträge oder -Rechnungen im Datumsformat „JJJJMMTT“ (Jahr/Monat/Tag). In Ihrer Organisation wird jedoch das Datumsformat „MMTTJJJJ“ (Monat/Tag/Jahr) verwendet. Mithilfe einer Zuordnung können Sie das Format „JJJJMMTT“ in das Format „MMTTJJJJ“ transformieren, bevor Auftrags- oder Rechnungsdetails in Ihrer Datenbank für Kundenaktivitäten gespeichert werden.

Voraussetzungen

  • Ein Azure-Konto und ein Azure-Abonnement. Sollten Sie noch kein Abonnement besitzen, können Sie sich für ein kostenloses Azure-Konto registrieren.

  • Ein Logik-App-Workflow, der bereits mit einem Trigger beginnt, sodass Sie die Aktion XML transformieren an der gewünschten Stelle in Ihrem Workflow hinzufügen können.

  • Eine Integrationskontoressource, in der Sie Artefakte wie Handelspartner, Vereinbarungen, Zertifikate usw. für die Verwendung in Ihrer Unternehmensintegration und in B2B-Workflows definieren und speichern. Diese Ressource muss die folgenden Anforderungen erfüllen:

    • Sie muss demselben Azure-Abonnement zugeordnet sein wie Ihre Logik-App-Ressource.

    • Sie muss sich am selben Standort oder in derselben Azure-Region wie Ihre Logik-App-Ressource befinden, für die Sie die Aktion XML transformieren verwenden möchten.

    • Wenn Sie an einer Verbrauchs-Logik-App-Ressource und einem Workflow arbeiten, benötigt Ihr Integrationskonto die folgenden Elemente:

    • Wenn Sie an einer Standard-Logik-App-Ressource und -Workflow arbeiten, können Sie Ihr Integrationskonto mit Ihrer Logik-App-Ressource verknüpfen, Zuordnungen direkt in Ihre Logik-App-Ressource hochladen oder beides, basierend auf den folgenden Szenarien:

      • Wenn Sie bereits über ein Integrationskonto mit den benötigten oder zu verwendenden Artefakten verfügen, können Sie dieses mit mehreren Standard-Logik-App-Ressourcen verknüpfen, in denen Sie die Artefakte verwenden möchten. Auf diese Weise müssen Sie keine Zuordnungen in die einzelnen Logik-Apps hochladen. Weitere Informationen finden Sie im Artikel zum Verknüpfen Ihrer Logik-App-Ressource mit Ihrem Integrationskonto.

      • Wenn Sie kein Integrationskonto haben oder nur planen, Ihre Artefakte in mehreren Workflows innerhalb derselben Logik-App-Ressource zu verwenden, können Sie Ihrer Logik-App-Ressource direkt Zuordnungen hinzufügen, entweder über das Azure-Portal oder Visual Studio Code.

        Hinweis

        Mit dem integrierten Liquid-Connector können Sie eine Zuordnung auswählen, die Sie zuvor in Ihre Logik-App-Ressource oder in ein verknüpftes Integrationskonto (aber nicht in beides), hochgeladen haben.

      Wenn Sie also kein Integrationskonto haben oder benötigen, können Sie die Uploadoption verwenden. Andernfalls können Sie die Verknüpfungsoption verwenden. In beiden Fällen können Sie diese Artefakte in allen untergeordneten Workflows innerhalb derselben Logik-App-Ressource verwenden.

    Sie benötigen weiterhin ein Integrationskonto, um andere Artefakte wie Partner, Vereinbarungen und Zertifikate zu speichern und um die AS2, X12 und EDIFACT-Vorgänge zu verwenden.

Hinzufügen der Aktion „XML transformieren“

  1. Öffnen Sie im Azure-Portal Ihre Standardlogik-App und deren Workflow im Workflow-Designer.

  2. Wenn Sie über einen leeren Workflow ohne Trigger verfügen, führen Sie die folgenden allgemeinen Schritte aus, um den gewünschten Trigger hinzuzufügen. Fahren Sie andernfalls mit dem nächsten Schritt fort.

    In diesem Beispiel wird der Anforderungstrigger verwendet.

  3. Führen Sie im Schritt in Ihrem Workflow, in dem Sie die Aktion XML transformieren hinzufügen möchten, die folgenden allgemeinen Schritte aus, um die Aktion namens XML transformieren hinzuzufügen.

  4. Geben Sie im Feld Inhalt den XML-Inhalt an, den Sie mithilfe von XML-Daten transformieren möchten, die Sie in der HTTP-Anforderung erhalten.

    1. Wenn Sie Ausgaben aus vorherigen Vorgängen im Workflow auswählen möchten, wählen Sie in der Aktion XML transformieren das Feld Inhalt und dann die Option für die Liste dynamischer Inhalte (Blitzsymbol) aus.

    2. Wählen Sie in der Liste dynamischer Inhalte das Token für den Inhalt aus, den Sie transformieren möchten.

      Screenshot shows Standard workflow with opened dynamic content list.

      In diesem Beispiel wird das Token Text für den Trigger ausgewählt.

      Hinweis

      Wählen Sie unbedingt XML-Inhalt aus. Weist der Inhalt kein XML-Format auf oder ist er Base64-codiert, müssen Sie einen Ausdruck für die Verarbeitung des Inhalts angeben. Hierfür können Sie z. B. Ausdrucksfunktionen wie base64ToBinary() zum Decodieren des Inhalts oder xml() zum Verarbeiten des Inhalts im XML-Format verwenden.

  5. Wählen Sie in der Liste Zuordnungsquelle den Ort aus, an dem Sie Ihre Zuordnung hochgeladen haben, entweder Ihre LogicApp-Ressource oder Ihr IntegrationAccount.

  6. Wählen Sie in der Liste Zuordnung Ihre Zuordnung aus.

  7. Wenn Sie fertig sind, speichern Sie Ihren Workflow.

    Sie haben die Aktion XML transformieren nun fertig eingerichtet. Für eine reale App sollten Sie die transformierten Daten ggf. in einer branchenspezifischen App wie Salesforce speichern. Fügen Sie zum Senden der transformierten Ausgabe an Salesforce eine Salesforce-Aktion hinzu.

  8. Wenn Sie die Transformationsaktion testen möchten, lösen Sie Ihren Workflow aus, und führen Sie ihn aus. Senden Sie beispielsweise für den Anforderungstrigger eine Anforderung an die Endpunkt-URL des Triggers.

    Die Aktion XML transformieren wird ausgeführt, wenn der Workflow ausgelöst wurde und XML-Inhalte für die Transformation verfügbar sind.

Erweiterte Funktionen

Verweisen auf Assemblys oder Aufrufen von benutzerdefiniertem Code aus Zuordnungen

Die Aktion XML transformieren unterstützt Verweise auf externe Assemblys aus Zuordnungen. Diese ermöglichen das direkte Aufrufen von benutzerdefiniertem .NET-Code aus XSLT-Zuordnungen. Weitere Informationen finden Sie unter Hinzufügen von XSLT-Zuordnungen für Workflows in Azure Logic Apps.

Verweisen auf Erweiterungsobjekte

In Workflows vom Typ „Standard“ unterstützt die Aktion XML transformieren die Angabe eines XML-Erweiterungsobjekts, das mit Ihrer Zuordnung verwendet werden soll.

  1. Öffnen Sie in der Aktion XML transformieren die Liste Erweiterte Parameter, und wählen Sie das XML-Erweiterungsobjekt aus, um der Aktion den Parameter hinzuzufügen.

  2. Geben Sie im Feld XML-Erweiterungsobjekt das Erweiterungsobjekt an, z. B.:

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

Bytereihenfolge-Marke

Die Antwort der Transformation beginnt standardmäßig mit der Bytereihenfolge-Marke (Byte Order Mark, BOM). Sie können auf diese Funktion nur im Codeansicht-Editor zugreifen. Wenn Sie diese Funktion deaktivieren möchten, legen Sie die Eigenschaft transformOptions auf disableByteOrderMark fest:

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

Nächste Schritte