Zum Inhalt springen

Arbeiten mit hierarchischen Daten im Jitterbit Integration Studio

Einführung

Hierarchische Datenstrukturen enthalten eine oder mehrere Eltern-Kind- oder geschachtelte Beziehungen zwischen Feldern und Datensätzen. Häufige Beispiele sind Kunden mit mehreren Adressen, Bestellungen mit Positionen oder Unternehmen mit mehreren Standorten.

In Integration Studio werden hierarchische Strukturen auch als relationale, mehrstufige, komplexe Daten oder Baumstrukturen bezeichnet.

Für Informationen zur Notation von Knoten und Feldern siehe Knoten und Felder in Schlüsselkonzepte.

Hierarchische Strukturen identifizieren

Hierarchische Daten erscheinen in Transformationen als Baumstruktur:

<customer>
    <id>10123</id>
    <name>ABC Co.</name>
    <addresses>
        <address>
            <street>1 Main St.</street>
            <city>Anytown</city>
            <state>NY</state>
            <zip>12345</zip>
        </address>
        <address>
            <street>1 Time Square</street>
            <city>New York City</city>
            <state>NY</state>
            <zip>54321</zip>
        </address>
    </addresses>
</customer>

Hierarchische Daten abbilden

Beim Abbilden hierarchischer Strukturen müssen Sie innerhalb derselben Ebene abbilden. Zum Beispiel:

  • Elternfelder werden auf Elternfelder abgebildet.
  • Kindfelder werden auf die entsprechenden Kindfelder abgebildet.
  • Schleifenknoten werden automatisch für wiederholende Elemente generiert.

Wenn das automatische Mapping für Ihre Struktur nicht funktioniert, siehe Daten-Schleifen steuern.

Strukturabweichungen behandeln

Wenn sich Quell- und Zielstrukturen unterscheiden, können Sie diese mit einer der folgenden Methoden behandeln:

  1. Mehrere Instanzen auf eine einzelne Instanz abbilden: Wenn Sie Arrays auf einzelne Objekte abbilden, sehen Sie diesen Dialog:

    Zitat

    Eine Quelle mit mehreren Instanzen kann nicht auf ein Ziel mit einer einzelnen Instanz abgebildet werden. Möchten Sie das Mapping ändern, um die erste Instanz für jede Quelle zu verwenden?

    Ein Klick auf Ja bildet nur den ersten Datensatz ab, indem #1 zum Pfad hinzugefügt wird.

  2. Hierarchische in flache Strukturen umwandeln: Um einen Ausgabedatensatz pro Kind-Element zu erstellen, befolgen Sie diese Schritte:

    1. Abbildung der Felder vom tiefsten wiederholenden Knoten.
    2. Die Elterndaten wiederholen sich automatisch für jedes Kind.
    3. Die Iteratorlinie bewegt sich zur Kind-Ebene.

Daten-Normalisierung verwenden

Wenn Sie Daten von einer flachen Struktur in eine hierarchische Struktur abbilden, müssen die Daten möglicherweise vor der Transformation normalisiert werden.

Standardmäßig verwendet Harmony einen Normalisierungsalgorithmus, um den Zielbaum zu erstellen. Dieser Prozess wandelt die flache Struktur der Quelle in eine hierarchische Quellstruktur um, die dann auf die hierarchische Zielstruktur abgebildet werden kann.

In der Zielstruktur werden das Wurzelelement und alle mehrfachen Instanz-Elemente unter dem Wurzel verwendet, um die Struktur der sekundären Quell-Elemente zu erstellen. Die Attribute (oder Felder) dieser sekundären Quell-Elemente sind flache Datenelemente, die dann in den Abbildungen des entsprechenden Zielelements verwendet werden.

Mit der ordnungsgemäß definierten Quellstruktur vereinfacht sich der Normalisierungsprozess auf das Kombinieren von Knoten mit denselben Eltern.

Sie haben drei Optionen für die Normalisierung:

  • Vollständige Normalisierung: Alle Elemente mit demselben Elternteil und alle Felder werden auf ein Element reduziert. Dies ist die Standardeinstellung.
  • Teilweise Normalisierung: Dies ist dasselbe wie die vollständige Normalisierung, mit der Ausnahme, dass die niedrigsten Kinder nicht normalisiert werden.
  • Keine Normalisierung: Jeder flache Datensatz erstellt einen Zweig von Elementen. Es erfolgt keine Reduzierung der Elemente beim Erstellen der hierarchischen Quellstruktur.

Die hierarchische Struktur kann einen einzelnen Instanzknoten enthalten. In diesem Fall wird nur das erste Element für dieses Wurzel beibehalten, und flache Datensätze, die mit diesem Wurzel-Datenelement in Konflikt stehen, werden ignoriert.

Um die Normalisierung zu deaktivieren, setzen Sie die Jitterbit-Variable jitterbit.transformation.disable_normalization auf true. Weitere Informationen finden Sie unter Transformation Jitterbit-Variablen.

Komplexe XML-Schemas behandeln

Wenn Sie ein Schema verwenden, das abgeleitete Typen oder Substitutionsgruppen enthält, müssen Sie einige Eingaben bereitstellen, bevor Sie mit der Transformationszuordnung fortfahren können.

Schema angeben

Abgeleitete Typen oder Ersatzgruppen sind in XML-basierten XSD- und WSDL-Schemas üblich. Sie können diese Arten von Schemata in einer Aktivität oder in einer Transformation hochladen, oder sie können von einigen Konnektoren direkt vom Endpunkt abgerufen werden. Beispielsweise enthalten Antwortschemata, die von einer gespeicherten Suche in einer NetSuite-Suchaktivität zurückgegeben werden, häufig abgeleitete Typen.

Für weitere Informationen siehe Wählen Sie Schemasourcen.

Abgeleitete Typen oder Ersatzgruppe auswählen

Nachdem Sie das Schema angegeben haben, wählen Sie die abgeleiteten Typen oder die Ersatzgruppe innerhalb der Transformation aus. Es kann Knoten geben, für die Sie abgeleitete Typen entweder auf der Quell- oder der Zielseite der Transformation auswählen können.

Ein Link zu Abgeleiteter Typ(en) auswählen oder Ersatzgruppe wird neben dem Knotennamen angezeigt, sofern zutreffend:

abgeleitete Typen Ersatzgruppe annotiert pp

Die Benutzeroberfläche ist sowohl für die Auswahl abgeleiteter Typen als auch für die Auswahl einer Ersatzgruppe gleich.

Klicken Sie auf den Link Abgeleiteter Typ(en) auswählen oder Ersatzgruppe, um einen Dialog zu öffnen, in dem Sie aus den verfügbaren Knoten auswählen können:

abgeleitete Typknoten hinzufügen entfernen

Um die Liste der Knoten zu filtern, geben Sie einen Teil des Knotennamens in das Suchfeld ein. Die Suche ist nicht groß-/kleinschreibungsempfindlich.

Wählen Sie die Knoten aus, die Sie möchten, indem Sie die Kontrollkästchen neben den Knotennamen verwenden. Die Links Alle auswählen und Alle abwählen können verwendet werden, um alle Knoten auf einmal auszuwählen oder zu löschen. Klicken Sie dann auf OK, um die abgeleiteten Typknoten innerhalb des Schemas zu verwenden.

Hinweis

Wenn Sie eine große Anzahl von abgeleiteten Typknoten auf einmal (30 oder mehr) auswählen, kann das System beim Aktualisieren der Transformation langsam reagieren.

Die ausgewählten Knoten werden dann im Schema angezeigt. Sie können sie erweitern oder reduzieren, um zusätzliche untergeordnete Knoten und Felder innerhalb dieser anzuzeigen:

source derived types

Nachdem Sie Knoten ausgewählt haben, können Sie Ihre Auswahl ändern, indem Sie erneut auf den Link Select Derived Type(s) oder Substitution Group klicken, um zum Auswahlbildschirm zurückzukehren und Knoten nach Bedarf hinzuzufügen oder zu entfernen.

Anschließend können Sie mit der Transformationszuordnung wie gewohnt fortfahren, indem Sie die Quellfelder innerhalb der ausgewählten Knoten den Ziel Feldern zuordnen oder indem Sie Ziel Felder innerhalb der ausgewählten Knoten zuordnen.