Transformieren von XML in Workflows mit Azure Logic Apps

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.

Falls Sie noch nicht mit Logik-Apps vertraut sind, finden Sie weitere Informationen unter Was ist Azure Logic Apps?. Weitere Informationen zur B2B-Unternehmensintegration finden Sie in B2B-Unternehmensintegrations-Workflows mit Azure Logic Apps und Enterprise Integration Pack.

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 den Ressourcentyp Logik-App (Verbrauch) verwenden, benötigen Sie ein Integrationskonto mit den folgenden Elementen:

    • Wenn Sie den Ressourcentyp Logik-App (Standard) verwenden, müssen Sie keine Zuordnungen in Ihrem Integrationskonto speichern. In diesem Fall können Sie Ihrer Logik-App-Ressource Zuordnungen direkt im Azure-Portal oder in Visual Studio Code hinzufügen. Derzeit wird nur XSLT 1.0 unterstützt. Sie können diese Zuordnungen dann in mehreren 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. Allerdings brauchen Sie Ihre Logic-App-Ressource nicht mit Ihrem Integrationskonto verknüpfen, so dass die Verknüpfungsfunktionalität nicht besteht. Ihr Integrationskonto muss darüber hinaus weitere Anforderungen erfüllen. So muss es z. B. dasselbe Azure-Abonnement und denselben Standort wie Ihre Logik-App-Ressource verwenden.

      Hinweis

      Derzeit unterstützt nur der Logic App (Verbrauch) Ressourcentyp RosettaNet-Vorgänge. Der Ressourcentyp Logik-App (Standard) umfasst keine RosettaNet-Vorgänge.

Hinzufügen der Aktion „XML transformieren“

  1. Öffnen Sie im Azure-Portal Ihre Logik-App und den Workflow in der Designeransicht.

  2. Fügen Sie im Falle einer leeren Logik-App ohne Trigger einen Trigger Ihrer Wahl hinzu. In diesem Beispiel wird der Anforderungstrigger verwendet. Fahren Sie andernfalls mit dem nächsten Schritt fort.

    Geben Sie zum Hinzufügen des Anforderungstriggers im Suchfeld des Designers HTTP request ein, und wählen Sie den Anforderungstrigger mit dem Namen Beim Empfang einer HTTP-Anforderung aus.

  3. Führen Sie unter dem Schritt in Ihrem Workflow, für den Sie die Aktion XML transformieren hinzufügen möchten, einen der folgenden Schritte aus:

    Wählen Sie für eine auf dem Verbrauchstarif oder dem ISE-Plan basierende Logik-App einen der folgenden Schritte aus:

    • Wenn Sie die Aktion XML transformieren am Ende des Workflows hinzufügen möchten, klicken Sie auf Neuer Schritt.

    • Wenn Sie die Aktion XML transformieren zwischen zwei vorhandenen Schritten hinzufügen möchten, zeigen Sie auf den Pfeil, der die beiden Schritte miteinander verbindet. Daraufhin wird ein Pluszeichen (+) angezeigt. Wählen Sie dieses Pluszeichen und anschließend die Option Aktion hinzufügen aus.

    Wählen Sie für eine auf dem Standard-Plan basierende Logik-App einen Schritt aus:

    • Wenn Sie die Aktion XML transformieren am Ende des Workflows hinzufügen möchten, klicken Sie auf das Pluszeichen ( + ) und anschließend auf Aktion hinzufügen.

    • Wenn Sie die Aktion XML transformieren zwischen zwei vorhandenen Schritten hinzufügen möchten, klicken Sie auf das Pluszeichen ( + ) zwischen diesen Schritten und dann auf Aktion hinzufügen.

  4. Wählen Sie unter Vorgang auswählen die Option Integriert aus. Geben Sie im Suchfeld transform xmlein. Wählen Sie in der Liste der Aktionen die Aktion XML transformieren aus.

  5. Verwenden Sie zur Angabe des XML-Inhalts, den Sie transformieren möchten, beliebige XML-Daten, die Sie in der HTTP-Anforderung erhalten. Klicken Sie in das Feld Inhalt, sodass die dynamische Inhaltsliste angezeigt wird.

    Die Liste mit den dynamischen Inhalten enthält Eigenschaftstoken, die die Ausgaben der vorherigen Schritte im Workflow darstellen. Sollte eine erwartete Eigenschaft in der Liste fehlen, überprüfen Sie in der Trigger- oder Aktionsüberschrift der Liste, ob die Option Mehr anzeigen vorhanden ist.

    Für eine auf dem Verbrauchstarif oder dem ISE-Plan basierende Logik-App sieht der Designer wie im folgenden Beispiel aus:

    Screenshot showing multi-tenant designer with opened dynamic content list, cursor in

    Für eine auf dem Standardtarif basierende Logik-App sieht der Designer wie im folgenden Beispiel aus:

    Screenshot showing single-tenant designer with opened dynamic content list, cursor in

  6. Wählen Sie in der Liste „Dynamischer Inhalt“ das Eigenschaftstoken für den Inhalt aus, den Sie überprüfen möchten.

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

    Hinweis

    Vergewissern Sie sich, dass der ausgewählte Inhalt im XML-Format vorhanden ist. Befindet sich der Inhalt nicht im XML-Format 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.

  7. Öffnen Sie zur Angabe der Zuordnung für die Transformation die Liste Zuordnung, und wählen Sie die zuvor hinzugefügte Zuordnung aus.

  8. Speichern Sie anschließend Ihren Logik-App-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.

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

Referenzassembly oder benutzerdefinierter Code aus Zuordnungen

In Workflows vom Typ Logik-App (Verbrauch) unterstützt die Aktion XML transformieren Zuordnungen, die auf eine externe Assembly verweisen. Weitere Informationen finden Sie unter Hinzufügen von XSLT-Zuordnungen für Workflows in Azure Logic Apps.

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