Erstellen von Zuordnungen zum Transformieren von Daten in Azure Logic Apps mithilfe von Visual Studio Code

Gilt für: Azure Logic Apps (Standard)

Um Nachrichten mit unterschiedlichen XML- oder JSON-Formaten in einem Azure Logic Apps-Workflow auszutauschen, müssen Sie die Daten von einem Format in das andere transformieren, insbesondere dann, wenn zwischen den Quell- und Zielschemastrukturen Lücken bestehen. Die Datentransformation hilft Ihnen dabei, diese Lücken zu schließen. Für diese Aufgabe müssen Sie eine Zuordnung erstellen, die die Transformation zwischen Datenelementen im Quell- und Zielschema definiert.

Um eine Zuordnung visuell zu erstellen und zu bearbeiten, können Sie Visual Studio Code mit der Erweiterung „Azure Logic Apps (Standard)“ im Kontext eines Standard-Logik-App-Projekts verwenden. Das Data Mapper-Tool bietet eine einheitliche Benutzeroberfläche für die XSLT-Zuordnung und -Transformation mithilfe von Drag & Drop, eine vordefinierte Funktionsbibliothek zum Erstellen von Ausdrücken und eine Möglichkeit zum manuellen Testen der Zuordnungen, die Sie in Ihren Workflows erstellen und verwenden.

Nachdem Sie Ihre Zuordnung erstellt haben, können Sie diese direkt aus einem Workflow in Ihrem Logik-App-Projekt oder aus einem Workflow im Azure-Portal aufrufen. Für diese Aufgabe können Sie die Aktion Data Mapper Operations (Data Mapper-Vorgänge) namens Transform using Data Mapper XSLT (Mit Data Mapper XSLT transformieren) in Ihrem Workflow verwenden.

In dieser Schrittanleitung wird gezeigt, wie Sie eine leere Datenzuordnung (Data Map) erstellen, Ihre Quell- und Zielschemas auswählen, Schemaelemente zum Starten der Zuordnung auswählen, verschiedene Zuordnungen erstellen, Ihre Zuordnung speichern und testen und anschließend die Zuordnung aus einem Workflow in Ihrem Logik-App-Projekt aufrufen.

Einschränkungen und bekannte Probleme

  • Data Mapper funktioniert derzeit nur in Visual Studio Code auf Windows-Betriebssystemen.

  • Data Mapper ist derzeit nur in Visual Studio Code und nicht über das Azure-Portal verfügbar und wird nur innerhalb von Logik-App-Projekten im Tarif „Standard“ bereitgestellt, aber nicht in Logik-App-Projekten im Tarif „Verbrauch“.

  • Data Mapper unterstützt derzeit keine CSV-Dateien.

  • Der Bereich Codeansicht von Data Mapper ist derzeit schreibgeschützt.

  • Das Zuordnungslayout und die Elementposition werden derzeit automatisch festgelegt und sind schreibgeschützt.

  • Zum Aufrufen von Zuordnungen, die mit dem Data Mapper-Tool erstellt wurden, können Sie nur die Aktion der Data Mapper Operations (Data Mapper-Vorgänge) namens Transform using Data Mapper XSLT (Mit Data Mapper XSLT transformieren) verwenden. Verwenden Sie für Zuordnungen, die mit einem anderen Tool erstellt wurden, die Aktion der XML Operations (XML-Vorgänge) mit dem Namen Transform XML (XML transformieren).

  • Wenn Sie die mit dem Data Mapper-Tool erstellten Zuordnungen im Azure-Portal verwenden möchten, müssen Sie sie direkt Ihrer Standard-Logik-App-Ressource hinzufügen.

Voraussetzungen

  • Visual Studio Code und die Erweiterung „Azure Logic Apps (Standard)“ zum Erstellen von Logik-App-Workflows im Tarif „Standard“.

    Hinweis

    Die ehemals separate Data Mapper-Erweiterung wurde mit der Erweiterung „Azure Logic Apps (Standard)“ zusammengeführt. Um Konflikte zu vermeiden, werden alle ggf. vorhandenen Versionen der Data Mapper-Erweiterung entfernt, wenn Sie die Erweiterung „Azure Logic Apps (Standard)“ installieren oder aktualisieren. Starten Sie Visual Studio Code nach der Installation oder Aktualisierung der Erweiterung neu.

  • Die Quell- und Zielschemadateien, die die zu transformierenden Datentypen beschreiben. Diese Dateien können die folgenden Formate aufweisen:

    • Eine XML-Schemadefinitionsdatei mit der XSD-Dateierweiterung
    • Eine JavaScript Object Notation-Datei mit der JSON-Dateierweiterung
  • Ein Logik-App-Projekt im Tarif „Standard“, das einen zustandsbehafteten oder zustandslosen Workflow mit mindestens einem Trigger enthält. Wenn Sie über kein Projekt verfügen, führen Sie die folgenden Schritte in Visual Studio Code aus:

    1. Stellen Sie eine Verbindung mit Ihrem Azure-Konto her, sofern Sie diesen Schritt noch nicht ausgeführt haben.

    2. Erstellen Sie einen lokalen Ordner, ein lokales Logik-App-Projekt im Tarif „Standard“ und einen zustandsbehafteten oder zustandslosen Workflow. Wählen Sie während der Workflowerstellung Open in current window (Im aktuellen Fenster öffnen) aus.

  • Beispieleingabedaten, wenn Sie die Zuordnung testen und überprüfen möchten, ob die Transformation erwartungsgemäß funktioniert.

  • Um die Funktion XSLT ausführen verwenden zu können, müssen sich Ihre XSLT-Codeschnipsel in Dateien mit der Erweiterung .xml oder .xslt befinden. Sie müssen Ihre XSLT-Codeschnipsel in der lokalen Projektordnerstruktur im Ordner InlineXslt platzieren: Artifacts>DataMapper>Extensions>InlineXslt. Sollte diese Ordnerstruktur nicht vorhanden sein, erstellen Sie die fehlenden Ordner.

Erstellen einer Datenzuordnung

  1. Wählen Sie im Visual Studio Code-Menü auf der linken Seite das Azure-Symbol aus.

  2. Wählen Sie im Bereich Azure im Abschnitt Data Mapper die Option Create new data map (Neue Datenzuordnung erstellen) aus.

    Screenshot showing Visual Studio Code with Data Mapper tool, Azure window open, and selected button for Create new data map.

  3. Geben Sie einen Namen für Ihre Datenzuordnung an.

  4. Geben Sie Ihr Quell- und Zielschema an, indem Sie die folgenden Schritte ausführen:

    1. Wählen Sie in der Zuordnungsoberfläche Add a source schema (Quellschema hinzufügen) aus.

      Screenshot showing Visual Studio Code with Data Mapper open, new data map, and selected option for Add a source schema.

    2. Wählen Sie im Bereich Konfigurieren, der daraufhin geöffnet wird, die Option Neu hinzufügen>Durchsuchen aus.

    3. Suchen Sie Ihre Quellschemadatei, und wählen Sie sie aus. Wählen Sie dann Hinzufügen aus.

      Wenn Ihr Quellschema nicht im Fenster Öffnen angezeigt wird, ändern Sie in der Dateitypliste XSD-Datei (*.xsd) in Alle Dateien (*.*).

      Die Zuordnungsoberfläche zeigt nun die Datentypen aus dem Quellschema an. Für die Beispiele in diesem Leitfaden,

    4. Wählen Sie in der Zuordnungsoberfläche Add a target schema (Zielschema hinzufügen) aus.

    5. Wählen Sie im Bereich Konfigurieren, der daraufhin geöffnet wird, die Option Neu hinzufügen>Durchsuchen aus.

    6. Suchen Sie Ihre Zielschemadatei, und wählen Sie sie aus. Wählen Sie dann Hinzufügen aus.

      Wenn Ihr Zielschema nicht im Fenster Öffnen angezeigt wird, ändern Sie in der Dateitypliste XSD-Datei (*.xsd) in Alle Dateien (*.*).

      Die Zuordnungsoberfläche zeigt nun Datentypen aus dem Zielschema an.

    Alternativ können Sie Ihre Quell- und Zielschemadateien Ihrem Logik-App-Projekt im Ordner Artifacts/Schemas auch lokal hinzufügen, damit sie in Visual Studio Code angezeigt werden. In diesem Fall können Sie Ihr Quell- und Zielschema im Data Mapper-Tool im Bereich Konfigurieren angeben, indem Sie Vorhandene auswählen statt Neu hinzufügen auswählen.

    Wenn Sie fertig sind, sieht Ihre Zuordnung ähnlich wie im folgenden Beispiel aus:

    Screenshot showing the Data Mapper open and data map with sample source and target schemas.

In der folgenden Tabelle werden die möglichen Datentypen beschrieben, die in einem Schema angezeigt werden können:

Symbol Typ Weitere Informationen
Icon representing an Array data type. Array Enthält Elemente oder wiederholte Elementknoten
Icon representing a Binary data type. Binär
Icon representing a Bool data type. Bool Nur TRUE oder FALSE
Icon representing a Complex data type. Complex Ein XML-Objekt mit untergeordneten Eigenschaften, ähnlich dem Objekt-JSON-Typ
Icon representing a DateTime data type. DateTime
Icon representing a Decimal data type. Decimal
Icon representing an Integer data type. Integer Nur ganze Zahlen
Icon representing the NULL symbol. Null Kein Datentyp, sondern wird bei Vorliegen eines Fehlers oder ungültigen Typs angezeigt
Icon representing a Number data type. Number Eine JSON-Ganzzahl oder -Dezimalzahl
Icon representing an Object data type. Object Ein JSON-Objekt mit untergeordneten Eigenschaften, ähnlich dem komplexen XML-Typ
Icon representing a String data type. String

Um sich in der Zuordnung zu bewegen, haben Sie die folgenden Optionen:

  • Zum Schwenken drücken und ziehen Sie den Mauszeiger in der Zuordnungsoberfläche herum. Beziehungsweise halten Sie das Mausrad gedrückt, während Sie die Maus oder den Trackball bewegen.

  • Nachdem Sie in der Zuordnung eine Ebene nach unten gewechselt sind, wird in der unteren linken Ecke der Zuordnung eine Navigationsleiste angezeigt, in der Sie aus den folgenden Optionen auswählen können:

    Screenshot showing map navigation bar.

    Option Alternative Geste
    Verkleinern Doppelklicken Sie bei gedrückter UMSCHALTTASTE auf die Zuordnungsoberfläche.
    Oder
    Scrollen Sie mit dem Mausrad nach unten.
    Vergrößern Doppelklicken Sie auf die Zuordnungsoberfläche.
    Oder
    Scrollen Sie mit dem Mausrad nach oben.
    Auf optimale Darstellung zoomen Keine
    Minimap anzeigen (ausblenden) Keine
  • Um in der Zuordnung eine Ebene nach oben zu wechseln, wählen Sie auf dem Breadcrumb-Pfad oben in der Zuordnung eine vorherige Ebene aus.

Auswählen der zuzuordnenden Ziel- und Quellelemente

  1. Wählen Sie in der Zuordnungsoberfläche auf der rechten Seite im Zielschemabereich das Zielelement aus, das Sie zuordnen möchten. Wenn das gewünschte Element einem übergeordneten Element untergeordnet ist, suchen und erweitern Sie zuerst das übergeordnete Element.

  2. Wählen Sie nun auf der linken Seite im Bereich des Quellschemas Select element (Element auswählen) aus.

  3. Wählen Sie im daraufhin angezeigten Fenster Source schema (Quellschema) mindestens ein Quellelement aus, das in der Zuordnung angezeigt werden soll.

    • Um ein übergeordnetes Element und direkt untergeordnete Elemente einzuschließen, öffnen Sie das Kontextmenü des übergeordneten Elements, und wählen Sie Add children (Untergeordnete Elemente hinzufügen) aus.

    • Um ein übergeordnetes Element und alle ihm untergeordneten Elemente einschließlich aller diesen untergeordneten Elemente einzubeziehen, öffnen Sie das Kontextmenü des übergeordneten Elements der obersten Ebene, und wählen Sie Add children (recursive) (Untergeordnete Elemente hinzufügen [rekursiv]) aus.

  4. Wenn Sie fertig sind, können Sie das Quellschemafenster schließen. Sie können später jederzeit weitere Quellelemente hinzufügen. Wählen Sie in der Zuordnung in der oberen linken Ecke das Symbol zum Anzeigen des Quellschemas (Icon for Show source schema.) aus.

Erstellen einer direkten Zuordnung zwischen Elementen

Führen Sie die folgenden Schritte aus, um eine einfache Transformation zwischen Elementen desselben Typs im Quell- und im Zielschema durchzuführen:

  1. Um zu überprüfen, was im Code geschieht, während Sie die Zuordnung erstellen, wählen Sie in der oberen rechten Ecke der Zuordnung Show code (Code anzeigen) aus.

  2. Falls noch nicht geschehen, wählen Sie in der Zuordnung die Zielelemente und dann die Quellelemente aus, die Sie zuordnen möchten.

  3. Bewegen Sie den Zeiger über das Quellelement, sodass sowohl ein Kreis als auch ein Pluszeichen (+) angezeigt werden.

    Screenshot showing the data map and starting a mapping between EmployeeID and ID in the source and target schema, respectively.

  4. Ziehen Sie eine Linie auf das Zielelement, sodass die Linie mit dem angezeigten Kreis verbunden wird.

    Screenshot showing the data map and ending a mapping between EmployeeID and ID in the source and target schema, respectively.

    Sie haben nun eine direkte Zuordnung zwischen beiden Elementen erstellt.

    Screenshot showing the data map and a finished mapping between EmployeeID and ID in the source and target schema, respectively.

    Das Codeansichtsfenster zeigt die von Ihnen erstellte Zuordnungsbeziehung:

    Screenshot showing code view with direct mapping between EmployeeID and ID in the source and target schema, respectively.

Hinweis

Wenn Sie eine Zuordnung zwischen Elementen erstellen, deren Datentypen nicht übereinstimmen, wird für das Zielelement eine Warnung wie die folgende angezeigt:

Screenshot showing direct mapping between mismatching data types.

Erstellen einer komplexen Zuordnung zwischen Elementen

Für eine komplexere Transformation zwischen Elementen im Quell- und Zielschema, z. B. Elementen, die Sie kombinieren möchten oder die unterschiedliche Datentypen aufweisen, können Sie eine oder mehrere Funktionen verwenden, um Aufgaben für diese Transformation auszuführen.

In der folgenden Tabelle sind die verfügbaren Funktionsgruppen und Beispielfunktionen aufgeführt, die Sie verwenden können:

Group Beispielfunktionen
Sammlung Average, Count, Direct Access, Distinct values, Filter, Index, Join, Maximum, Minimum, Reverse, Sort, Subsequence, Sum
Konvertierung To date, To integer, To number, To string
Datum und Uhrzeit Tage addieren
Logischer Vergleich Equal, Exists, Greater, Greater or equal, If, If else, Is nil, Is null, Is number, Is string, Less, Less or equal, Logical AND, Logical NOT, Logical OR, Not equal
Mathematik Absolute, Add, Arctangent, Ceiling, Cosine, Divide, Exponential, Exponential (base 10), Floor, Integer divide, Log, Log (base 10), Module, Multiply, Power, Round, Sine, Square root, Subtract, Tangent
String Code points to string, Concat, Contains, Ends with, Length, Lowercase, Name, Regular expression matches, Regular expression replace, Replace, Starts with, String to code-points, Substring, Substring after, Substring before, Trim, Trim left, Trim right, Uppercase
Hilfsprogramm Copy, Error, Execute XPath, Format date-time, Format number, Run XSLT

In der Zuordnung sieht die Bezeichnung der Funktion wie im folgenden Beispiel aus und wird je nach Funktionsgruppe farblich codiert. Auf der linken Seite des Funktionsnamens wird ein Symbol für die Funktion angezeigt. Auf der rechten Seite des Funktionsnamens wird ein Symbol für den Datentyp der Funktionsausgabe angezeigt.

Screenshot showing example function label.

Hinzufügen einer Funktion ohne Zuordnungsbeziehung

Im Beispiel in diesem Abschnitt wird der Quellelementtyp vom Typ „String“ in den Typ „DateTime“ transformiert, sodass er mit dem Zielelementtyp übereinstimmt. Im Beispiel wird die Funktion To date verwendet, die eine einzige Eingabe annimmt.

  1. Um zu überprüfen, was im Code geschieht, während Sie die Zuordnung erstellen, wählen Sie in der oberen rechten Ecke der Zuordnung Show code (Code anzeigen) aus.

  2. Falls noch nicht geschehen, wählen Sie in der Zuordnung die Zielelemente und dann die Quellelemente aus, die Sie zuordnen möchten.

  3. Wählen Sie in der oberen linken Ecke der Zuordnung das Symbol zum Anzeigen von Funktionen (Icon for Show functions.) aus.

    Screenshot showing source and target schema elements plus the selected function, Show functions.

  4. Suchen Sie in der daraufhin geöffneten Funktionsliste nach der Funktion, die Sie verwenden möchten, und wählen Sie sie aus. Die Funktion wird der Zuordnung hinzugefügt. Wenn die Funktion in der Zuordnung nicht sichtbar ist, verkleinern Sie die Zuordnungsoberfläche.

    In diesem Beispiel wird die Funktion To date ausgewählt. Auf die gleiche Weise können Sie auch benutzerdefinierte Funktionen suchen und auswählen. Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Funktion.

    Screenshot showing the selected function named To date.

    Hinweis

    Wenn keine Zuordnungslinie vorhanden oder ausgewählt ist, wenn Sie der Zuordnung eine Funktion hinzufügen, wird die Funktion in der Zuordnung angezeigt, aber von Elementen oder anderen Funktionen getrennt. Beispiel:

    Screenshot showing the disconnected function, To date.

  5. Erweitern Sie die Funktionsform, um die Details und Verbindungspunkte der Funktion anzuzeigen. Um die Funktionsform zu erweitern, klicken Sie in die Form.

  6. Verbinden Sie die Funktion mit den Quell- und Zielelementen.

    1. Ziehen Sie eine Linie zwischen den Quellelementen und dem linken Rand der Funktion. Sie können entweder bei den Quellelementen oder bei der Funktion beginnen.

      Screenshot showing start mapping between source element and function.

    2. Ziehen Sie eine Linie zwischen dem rechten Rand der Funktion und dem Zielelement. Sie können entweder beim Zielelement oder bei der Funktion beginnen.

      Screenshot showing finish mapping between function and target element.

  7. Bestätigen oder bearbeiten Sie die zu verwendende Eingabe auf der Registerkarte Eigenschaften der Funktion.

    Screenshot showing Properties tab for the function, To date.

    Für einige Datentypen, z. B. Arrays, ist möglicherweise auch der Bereich für die Transformation verfügbar. Dieser Bereich ist normalerweise das unmittelbare Element, z. B. ein Array. In einigen Szenarien kann der Bereich jedoch über das unmittelbare Element hinausgehen.

    Das Codeansichtsfenster zeigt die von Ihnen erstellte Zuordnungsbeziehung:

    Screenshot showing code view with direct mapping relationship between source and target elements.

Informationen zum Durchlaufen von Arrayelementen finden Sie beispielsweise unter Erstellen einer Schleife zwischen Arrays. Informationen zum Ausführen einer Aufgabe, wenn der Wert eines Elements eine Bedingung erfüllt, finden Sie unter Hinzufügen einer Bedingung zwischen Elementen.

Hinzufügen einer Funktion zu einer vorhandenen Zuordnungsbeziehung

Wenn bereits eine Zuordnungsbeziehung zwischen Quell- und Zielelementen vorhanden ist, können Sie die Funktion hinzufügen, indem Sie die folgenden Schritte ausführen:

  1. Wählen Sie in der Zuordnung die Linie für die Zuordnung aus, die Sie erstellt haben.

  2. Bewegen Sie den Zeiger auf die ausgewählte Linie, und wählen Sie das angezeigte Pluszeichen (+) für Funktion einfügen aus. Beispiel:

    Screenshot shows Visual Studio Code with elements from source and target schemas with mapping relationship and option to Insert function.

  3. Suchen Sie in der daraufhin geöffneten Funktionsliste nach der gewünschten Funktion, und wählen Sie sie aus.

    Die Funktion wird in der Zuordnung angezeigt und automatisch mit dem Quell- und dem Zielelement verbunden.

Hinzufügen einer Funktion mit mehreren Eingaben

Im Beispiel in diesem Abschnitt werden mehrere Quellelementtypen verkettet, sodass Sie die Ergebnisse dem Zielelementtyp zuordnen können. Im Beispiel wird die Funktion Concat verwendet, die mehrere Eingaben akzeptiert.

  1. Um zu überprüfen, was im Code geschieht, während Sie die Zuordnung erstellen, wählen Sie in der oberen rechten Ecke der Zuordnung Show code (Code anzeigen) aus.

  2. Falls noch nicht geschehen, wählen Sie in der Zuordnung die Zielelemente und dann die Quellelemente aus, die Sie zuordnen möchten.

  3. Wählen Sie in der oberen linken Ecke der Zuordnung das Symbol zum Anzeigen von Funktionen (Icon for Show functions.) aus.

    Screenshot showing source and target schema elements and the selected function named Show functions.

  4. Suchen Sie in der daraufhin geöffneten Funktionsliste nach der Funktion, die Sie verwenden möchten, und wählen Sie sie aus. Die Funktion wird der Zuordnung hinzugefügt. Wenn die Funktion in der Zuordnung nicht sichtbar ist, verkleinern Sie die Zuordnungsoberfläche.

    In diesem Beispiel wird die Funktion Concat ausgewählt:

    Screenshot showing the selected function named Concat.

    Hinweis

    Wenn keine Zuordnungslinie vorhanden oder ausgewählt ist, wenn Sie der Zuordnung eine Funktion hinzufügen, wird die Funktion in der Zuordnung angezeigt, aber von Elementen oder anderen Funktionen getrennt. Wenn die Funktion konfiguriert werden muss, wird in der oberen rechten Ecke der Funktion ein roter Punkt angezeigt. Beispiel:

    Screenshot showing the disconnected function, Concat.

  5. Erweitern Sie die Funktionsform, um die Details und Verbindungspunkte der Funktion anzuzeigen. Um die Funktionsform zu erweitern, klicken Sie in die Form.

  6. Wählen Sie im Funktionsinformationsbereich auf der Registerkarte Eigenschaften unter Eingaben die Quelldatenelemente aus, die als Eingaben verwendet werden sollen.

    In diesem Beispiel werden die Quellelemente FirstName und LastName als Funktionseingaben ausgewählt. Dadurch werden der Zuordnung automatisch die entsprechenden Verbindungen hinzugefügt.

    Screenshot showing multiple source data elements selected as function inputs.

  7. Um die Zuordnung abzuschließen, ziehen Sie eine Linie zwischen dem rechten Rand der Funktion und dem Zielelement. Sie können entweder beim Zielelement oder bei der Funktion beginnen.

    Screenshot showing finished mapping from function with multiple inputs to target element.

    Das Codeansichtsfenster zeigt die von Ihnen erstellte Zuordnungsbeziehung:

    Screenshot showing code view with complex mapping relationship between source and target elements.

Erstellen einer Schleife zwischen Arrays

Wenn Ihre Quell- und Zielschemas Arrays enthalten, können Sie eine Schleifenzuordnungsbeziehung erstellen, die die Elemente in diesen Arrays durchläuft. Im Beispiel in diesem Abschnitt werden ein Quellarray „Employee“ und ein Zielarray „Person“ durchlaufen.

  1. Um zu überprüfen, was im Code geschieht, während Sie die Zuordnung erstellen, wählen Sie in der oberen rechten Ecke der Zuordnung Show code (Code anzeigen) aus.

  2. Wählen Sie in der Zuordnung im Zielschemabereich das Zielarrayelement und die Elemente des Zielarrayelements aus, die Sie zuordnen möchten.

  3. Erweitern Sie in der Zuordnung im Zielschemabereich das Zielarrayelement und die Arrayelemente.

  4. Fügen Sie der Zuordnung im Quellschemabereich das Quellarrayelement und die Elemente des Arrayelements hinzu.

  5. Erstellen Sie eine direkte Zuordnung zwischen Quell- und Zielelement.

    Screenshot showing the data map and drawing a connection between Name array items in the source and target arrays, Employee and Person, respectively.

    Wenn Sie zum ersten Mal eine Zuordnungsbeziehung zwischen einem übereinstimmenden Paar von Arrayelementen erstellen, wird automatisch eine Zuordnungsbeziehung auf der übergeordneten Arrayebene erstellt.

    Screenshot showing loop mapping between the Name array items plus the source and target arrays, Employee and Person, respectively.

    Das Codeansichtsfenster zeigt die von Ihnen erstellte Zuordnungsbeziehung:

    Screenshot showing code view with looping relationship between source and target arrays, Employee and Person, respectively.

  6. Fahren Sie mit dem Zuordnen der anderen Arrayelemente fort.

    Screenshot showing continue looping mapping between other array items in source and target arrays.

Einrichten einer Bedingung und einer Aufgabe zum Ausführen zwischen Elementen

Um eine Zuordnungsbeziehung hinzuzufügen, die eine Bedingung auswertet und bei erfüllter Bedingung eine Aufgabe durchführt, können Sie mehrere Funktionen verwenden, beispielsweise die If-Funktion, eine Vergleichsfunktion wie Greater und die durchzuführende Aufgabe, beispielsweise Multiply.

Im Beispiel in diesem Abschnitt wird ein Rabatt berechnet, der angewendet wird, wenn die Einkaufsmenge 20 Artikel überschreitet. Hierzu werden die folgenden Funktionen verwendet:

  • Greater: Überprüft, ob die Artikelmenge 20 überschreitet.
  • If: Überprüft, ob die Funktion Greater den Wert TRUE zurückgibt.
  • Multiply: Berechnet den Rabatt durch Multiplizieren des Artikelpreises mit 10 % und der Artikelmenge.
  1. Um zu überprüfen, was im Code geschieht, während Sie die Zuordnung erstellen, wählen Sie in der oberen rechten Ecke der Zuordnung Show code (Code anzeigen) aus.

  2. Falls noch nicht geschehen, wählen Sie in der Zuordnung die Zielelemente und dann die Quellelemente aus, die Sie zuordnen möchten.

    In diesem Beispiel werden die folgenden Elemente ausgewählt:

    Screenshot showing the data map and elements to map.

  3. Wählen Sie in der oberen linken Ecke der Zuordnung das Symbol zum Anzeigen von Funktionen (Icon for Show functions.) aus.

  4. Fügen Sie der Zuordnung die folgenden Funktionen hinzu: Greater, If und Multiply.

  5. Erweitern Sie alle Funktionsformen, um die Funktionsdetails und Verbindungspunkte anzuzeigen.

  6. Verbinden Sie die Quellelemente, Funktionen und Zielelemente wie folgt:

    • Das Element ItemPrice des Quellschemas mit dem Element ItemPrice des Zielschemas
    • Das Element ItemQuantity des Quellschemas mit dem Feld Value der Funktion Greater
    • Die Ausgabe der Funktion Greater mit dem Feld Condition der Funktion If
    • Das Element ItemPrice mit dem Feld Multiplicand 0* der Funktion Multiply
    • Die Ausgabe der Funktion Multiply mit dem Feld Value der Funktion If
    • Die Ausgabe der Funktion If mit dem Element ItemDiscount des Zielschemas

    Hinweis

    Bei der Funktion If wird das Wort ANY rechts neben dem Funktionsnamen angezeigt. Dies weist darauf hin, dass Sie den Ausgabewert einem beliebigen Element zuweisen können.

  7. Geben Sie bei den folgenden Funktionen auf der Registerkarte Eigenschaften die folgenden Werte an:

    Funktion Eingabeparameter und -wert
    Höher - Value 1: Das Quellelement namens ItemQuantity
    - Value 2: 20
    Multiplizieren - Multiplicand 1: Das Quellelement namens ItemPrice
    - Multiplicand 2: .10
    If - Condition: is-greater-than(ItemQuantity,20)
    - Value: multiply(ItemPrice, .10)

    Die folgende Zuordnung zeigt das fertige Beispiel:

    Screenshot showing finished condition example.

    Das Codeansichtsfenster zeigt die von Ihnen erstellte Zuordnungsbeziehung:

    Screenshot showing code view with conditional mapping between source and target elements using the functions, Greater, If, and Multiply.

Speichern der Zuordnung

Wenn Sie fertig sind, wählen Sie auf der Zuordnungssymbolleiste Speichern aus.

Visual Studio Code speichert Ihre Zuordnung als die folgenden Artefakte:

  • Eine Datei <name-ihrer-zuordnung>.yml im Projektordner Artifacts>MapDefinitions
  • Eine Datei <name-ihrer-zuordnung>.xslt im Projektordner Artifacts>Maps

Generieren der XSLT-Datei zu einem beliebigen Zeitpunkt

Die Datei <Name Ihrer Zuordnung>.xslt kann jederzeit generiert werden. Wählen Sie dazu auf der Zuordnungssymbolleiste die Option XSLT generieren aus.

Testen der Zuordnung

Um zu bestätigen, dass die Transformation erwartungsgemäß funktioniert, benötigen Sie Beispieleingabedaten.

  1. Stellen Sie vor dem Testen der Zuordnung sicher, dass Sie die neueste Datei <Name Ihrer Zuordnung>.xslt generieren.

  2. Klicken Sie auf der Zuordnungssymbolleiste auf Testen.

  3. Fügen Sie im Bereich Test map (Zuordnung testen) im Fenster Input (Eingabe) die Beispieleingabedaten ein, und wählen Sie dann Test aus.

    Der Testbereich wechselt zur Registerkarte Output (Ausgabe) und zeigt den Statuscode und den Antworttext des Tests an.

Aufrufen der Zuordnung aus einem Workflow in Ihrem Projekt

  1. Wählen Sie im linken Visual Studio Code-Menü Explorer (Dateisymbol) aus, um die Struktur Ihres Logik-App-Projekts anzuzeigen.

  2. Erweitern Sie den Ordner mit Ihrem Workflownamen. Wählen Sie im Kontextmenü der Datei workflow.json die Option Designer öffnen aus.

  3. Führen Sie im Workflow-Designer die folgenden allgemeinen Schritte zum Hinzufügen der integrierten Aktion Data Mapper-Vorgänge mit dem Namen Mit Data Mapper XSLT transformieren aus.

  4. Wählen Sie im Designer die Aktion Mit Data Mapper XSLT transformieren aus.

  5. Geben Sie im angezeigten Aktionsinformationsbereich den Wert Inhalt an, und lassen Sie Zuordnungsquelle auf Logik-App festgelegt. Wählen Sie in der Liste Zuordnungsname die Zuordnungsdatei (XSLT) aus, die Sie verwenden möchten.

    Screenshot shows Visual Studio Code, Standard workflow designer, with selected action named Transform using Data Mapper XSLT and action properties.

    Wenn Sie die gleiche Aktion vom Typ Mit Data Mapper XSLT transformieren im Azure-Portal verwenden möchten, müssen Sie die Zuordnung zur Standard-Logik-App-Ressource hinzufügen.

Erstellen einer benutzerdefinierten Funktion

Führen Sie die folgenden Schritte aus, um eine eigene Funktion zu erstellen, die Sie mit dem Data Mapper-Tool verwenden können:

  1. Erstellen Sie eine XML-Datei mit einem aussagekräftigen Namen, der den Zweck Ihrer Funktion beschreibt.

    Wenn Sie über mehrere verwandte Funktionen verfügen, können Sie eine einzelne Datei für diese Funktionen verwenden. Sie können zwar einen beliebigen Dateinamen verwenden, ein aussagekräftiger Dateiname oder eine aussagekräftige Kategorie macht es jedoch einfacher, Ihre Funktionen zu identifizieren, zu finden und zu entdecken.

  2. Verwenden Sie in Ihrer XML-Datei das folgende Schema für die Funktionsdefinition:

    <?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="customfunctions">
          <xs:complexType>
             <xs:sequence>
                <xs:element maxOccurs="unbounded" name="function">
                   <xs:complexType>
                      <xs:sequence>
                         <xs:element maxOccurs="unbounded" name="param">
                            <xs:complexType>
                                <xs:attribute name="name" type="xs:string" use="required" />
                                <xs:attribute name="as" type="xs:string" use="required" />
                            </xs:complexType>
                         </xs:element>
                         <xs:any minOccurs="0" />
                      </xs:sequence>
                      <xs:attribute name="name" type="xs:string" use="required" />
                      <xs:attribute name="as" type="xs:string" use="required" />
                      <xs:attribute name="description" type="xs:string" use="required" />
                   </xs:complexType>
                </xs:element>
             </xs:sequence>
          </xs:complexType>
       </xs:element>
    </xs:schema>
    

    Jedes XML-Element mit dem Namen "function" implementiert eine Funktion im XSLT 3.0-Stil mit einigen wenigen weiteren Attributen. Die Liste der Data Mapper-Funktionen enthält den Funktionsnamen und die Beschreibung sowie Parameternamen und Parametertypen.

    Das folgende Beispiel zeigt die Implementierung einer Datei namens SampleFunctions.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <customfunctions>
       <function name="age" as="xs:float" description="Returns the current age.">
          <param name="inputDate" as="xs:date"/> 
          <value-of select="round(days-from-duration(current-date() - xs:date($inputDate)) div 365.25, 1)"/>
       </function> 
       <function name="custom-if-then-else" as="xs:string" description="Evaluates the condition and returns corresponding value.">
          <param name="condition" as="xs:boolean"/>
          <param name="thenResult" as="xs:anyAtomicType"/>
          <param name="elseResult" as="xs:anyAtomicType"/>
          <choose>
             <when test="$condition">
                <value-of select="$thenResult"></value-of>
             </when>
             <otherwise>
                <value-of select="$elseResult"></value-of>
             </otherwise>
          </choose>
       </function>
    </customfunctions>
    
  3. Öffnen Sie auf Ihrem lokalen Computer den Ordner für Ihr Standard-Logik-App-Projekt.

  4. Öffnen Sie den Ordner Artifacts, und erstellen Sie die folgende Ordnerstruktur (sofern noch nicht vorhanden): DataMapper>Extensions>Functions.

  5. Speichern Sie die XML-Datei Ihrer Funktion im Ordner Functions.

  6. Sie finden Ihre benutzerdefinierte Funktion in der Funktionsliste des Data Mapper-Tools, indem Sie nach der Funktion suchen oder die Sammlung Benutzerdefinierte Funktionen erweitern.

Nächste Schritte