Zum Inhalt springen

Von hierarchischen zu flachen Strukturen im Jitterbit Design Studio

Instanzzuordnung

Eine „Instanz“ kann eine Zeile in einer Datenbanktabelle oder ein XML-Element sein, das einen Wert, Attribute oder Unterelemente haben kann. Wenn die Zuordnung einer Zielinstanz möglicherweise von mehr als einer Instanz der Quelle abhängt, nennen wir dies „Instanzzuordnung“. Ein gutes Beispiel ist die Zuordnung einer Quelle, die durch Einzelposten dargestellt wird, die die Kosten und die Menge angeben, die einem Zielfeld zugeordnet sind, das die Gesamtkosten darstellt. Ein weiteres Beispiel ist die Zuordnung einer Quelle, die mehrere Instanzen von Namenswertpaaren enthält, zu einem Zielfeld, das einen Benutzernamen darstellt. „Instanzzuordnung“ ermöglicht dem Benutzer, eine Zuordnung zu definieren, um eine Quelle mit mehreren Instanzen auf eine einzige Zielinstanz zu reduzieren. Im Wesentlichen ermöglicht es dem Benutzer, zeilenorientierte Daten in spaltenorientierte Daten zu verschieben, wobei die Anzahl der generierten Datensätze durch die Ebene der zugeordneten Daten bestimmt wird. Dies kann durch Zuordnungen von hierarchischen zu flachen Strukturen demonstriert werden, bei denen Sie einige Informationen aus einem oder mehreren vorherigen oder „höherstufigen“ Datensätzen auflösen müssen.

Nachfolgend werden zwei Beispielsituationen bereitgestellt, um zu veranschaulichen, wie hierarchische zu flachen Transformations erreicht werden.

Beispielsituation 1

Stellen Sie sich die folgende Situation vor, in der ein XML-Quelldokument eine Schleifenstruktur mit vielen Ebenen und ein denormalisiertes (flaches) Zieldokument enthält. Dies könnte auch bei anderen Transformations vorkommen, z. B. bei komplexen Text-zu-Datenbank-Transformationen usw.

Dokumentstrukturen und Daten

  • Struktur des Quelldokuments: Das Quelldokument ist ein XML-Dokument mit vielen Ebenen, von denen einige Schleifen bilden.

  • Daten des Quelldokuments: Diese Datei enthält Beispieldaten, die die Struktur der DTD-Datei widerspiegeln.

  • Struktur des Zieldokuments: Das Zieldokument ist eine Textdatei.

Szenario

Die Herausforderung beim Zuordnen der Quell- und Zieldokumente besteht darin, die Ebenen der Quelle den Ebenen des Ziels korrekt zuzuordnen und sicherzustellen, dass die richtigen Daten in das Ziel eingefügt werden.

In diesem Zuordnungsszenario muss für jede der Artikelnummern ein Datensatz erstellt werden. Dazu muss eine Artikelnummer im XML-Quelldokument der Artikelnummernspalte des Ziels zugeordnet werden. Wenn wir dies tun, erstellen wir einen (Ziel-)Datensatz für jeden (Quell-)Lagerartikeleintrag.

Hinweis

Artikel, die mehr als einmal aufgeführt werden, erstellen zusätzliche Datensätze. In diesem einfachen Beispiel entspricht dies 4 Datensätzen (ABC-123, ABC-456, ABC-123, DEF-456).

Als Nächstes muss die Menge jeder Quellartikelnummer dem Mengenfeld des Ziels zugeordnet werden. Sobald dies abgeschlossen ist, würde das Ziel folgendermaßen aussehen:

Artikelnummer Menge Farbe Gewicht Kosten Lagercode Lagerstatus
ABC-123 450
ABC-456 210
ABC-123 65
DEF-456 75

Kostenattribut zuordnen

Um das Kostenattribut zu erhalten, ordnen Sie das Attributwertelement des Attributtags dem Kostenfeld des Ziels zu. Da unter dem Attributtag mehr als ein Attributcode/-werteintrag vorhanden sein kann, müssen Sie angeben, welches Attribut dem Kostenfeld des Ziels zugeordnet wird. Sie müssen also genau definieren, welches Attribut für das Kostenfeld verwendet werden soll. In diesem Beispiel ist es der Kostenattributcode.

Achtung

Die Datenelemente aus der Quelle, die Kandidaten sind, müssen Datenelemente sein, die sich auf derselben Ebene wie das zugeordnete Datenelement befinden, was bedeutet, dass es sich nur um Attributcode handeln kann. Die Verwendung einer anderen Ebene darüber oder darunter wäre nicht sinnvoll.

Nachdem wir nun wissen, welche Optionen es gibt, müssen wir sie definieren. In diesem Beispiel wäre dies die Identifizierung des gewünschten Attributwerts, bei dem der Attributcode gleich „Kosten“ ist. Es kann auch sein, dass Attribute in einer bestimmten Reihenfolge geliefert werden und dass ihre Position die richtige Attributinstanz bestimmt.

Befolgen Sie diese Schritte, um „Kosten“ richtig zuzuordnen:

  • Wählen Sie im Quellbereich unter dem Attributwertelement das [V] aus.

  • Klicken Sie im Zielbereich auf Kosten.

  • Klicken Sie auf das Symbol Zuordnen.

  • Klicken Sie auf das Symbol Formel, um den Formel-Generator anzuzeigen.

hf mapandcreateformula

  • Der Formel-Generator sollte erscheinen. Öffnen Sie den Ordner Instance im linken Bereich und wählen Sie die Funktion FindValue() aus.

  • Klicken Sie auf die Schaltfläche Einfügen, um diese Funktion zu Ihrem Ausdruck hinzuzufügen.

  • Der neue Ausdruck wird im Bereich oben im Dialogfeld angezeigt.

instancemappingsample2 2of4

  • Sie müssen nun die Parameter der Funktion richtig konfigurieren:

    • Markieren Sie sorgfältig das erste <arg> in Ihrem Ausdruck oben im Fenster. Dieser Parameter sollte der Name des Attributs sein, also geben Sie COST ein und ersetzen Sie das <arg> im Ausdruck.

    • Dieser Parameter gibt den im Quelldatenelement verwendeten Code an. Stellen Sie sicher, dass der zweite des Ausdrucks <arg> ist hervorgehoben, ersetzen Sie es durch Doppelklicken auf das Datenelement [V]** des **Attributcodes.

    • Der letzte Parameter gibt den Wert des Quelldatenelements zurück. Stellen Sie sicher, dass der letzte des Ausdrucks <arg> ist hervorgehoben, ersetzen Sie es durch Doppelklicken auf das Datenelement [V]** des **Attributwerts.

  • Vergleichen Sie Ihren Ausdruck mit der Abbildung unten und klicken Sie anschließend auf „OK“, um das Fenster zu schließen.

instancemappingsample 1 3of4

Beispiel vervollständigen

Wiederholen Sie die oben aufgeführten Schritte, um die Attribute GEWICHT und FARBE in der Quelle ihren Zielgegenstücken zuzuordnen.

Die endgültige Datenausgabe würde wie folgt aussehen:

Artikelnummer Menge Farbe Gewicht Kosten Lagercode Lagerstatus
ABC-123 450 BLAU 13 450,00 WH123 WA
ABC-456 210 GRÜN 5 525,00 WH123 WA
ABC-123 65 BLAU 13 450,00 WH456 TX
DEF-456 75 - 23 1250,00 WH456 TX

Sie haben die Übung zu Beispiel 1 abgeschlossen. Vergleichen Sie Ihre Arbeit mit der Abbildung unten.

hf 1 completemap

Beispielsituation 2

Dieses Beispiel ähnelt dem von Beispielsituation 1, außer dass die Struktur des Quelldokuments etwas anders ist. Außerdem werden wir anstelle der Zuordnung der Artikelinformationen datensatzbasierte Lagercodes zusammenstellen.

Dokumentstrukturen und Daten

  • Struktur des Quelldokuments: Das Quelldokument ist ein XML-Dokument mit vielen Ebenen, von denen einige Schleifen bilden. Beachten Sie, dass sich diese DTD von der in Beispielsituation 1 unterscheidet: In dieser DTD sind die Lagerinformationen von den Lagerartikeln getrennt.

  • Daten des Quelldokuments: Diese Datei enthält Beispieldaten, die die Struktur der DTD-Datei widerspiegeln.

  • Struktur des Zieldokuments: Das Zieldokument ist eine Textdatei. Diese Zielstruktur unterscheidet sich von der Zielstruktur in Beispiel 1, da sie eine separate Spalte zur Identifizierung jedes Lagers verwendet.

Szenario

Ähnlich wie in Beispiel 1 möchten wir für jede der Artikelnummern einen Datensatz erstellen, aber wir möchten, dass jedes der Lager im Ziel nach Spalten aufgelistet wird. Dazu müssen wir für jeden Lagerartikeleintrag in der Quell-XML-Datei einen Datensatz erstellen. In diesem Beispiel entspricht dies 3 Datensätzen (ABC-123, ABC-456, DEF-456).

Wir haben Attribute von instockitem, die die Lager enthalten, in denen der Artikel gelagert wird (instockat). Innerhalb dieses Attributs können 0 oder mehr Einträge vorhanden sein, um alle Lager zu identifizieren, in denen der Artikel zu finden ist, sowie die Menge im Lager. Was wir tun müssen, ist, alle Einträge für WH123 usw. in die richtige Spalte zu bringen.

Die Logik für Artikelnummer ABC-123 und Lager WH123 wäre:

Holen Sie sich den Wert des Attributs „Menge“ des Artikels „ABC-123“, bei dem das Attribut „whcode“ gleich „WH123“ ist.

Beispielsweise wäre die für WH123 für Artikelnummer ABC-123 anzugebende Antwort 450.

Befolgen Sie diese Schritte, um itemnumber richtig zuzuordnen und zu konfigurieren:

  • Ordnen Sie das Datenelement itemnumber der Quelle der itemnumber des Ziels zu.

  • Ordnen Sie das Datenelement itemquantity der Quelle dem Datenelement WH123 des Ziels zu.

  • Die Daten von WH123 müssen qualifiziert werden. Wählen Sie das Datenelement WH123 des Ziels aus und klicken Sie auf die Schaltfläche „Formel“, um den Formel-Generator zu starten.

hf2 createformula

  • Der Formel-Generator sollte erscheinen. Öffnen Sie den Ordner Instance im linken Bereich und wählen Sie die Funktion FindValue() aus.

  • Klicken Sie auf die Schaltfläche Einfügen, um diese Funktion zu Ihrem Ausdruck hinzuzufügen.

  • Der neue Ausdruck wird im Bereich oben im Dialogfeld angezeigt.

instancemappingsample2 2of4

  • Sie müssen nun die Parameter der Funktion richtig konfigurieren:

    • Markieren Sie sorgfältig das erste <arg> in Ihrem Ausdruck oben im Fenster. Dieser Parameter sollte der Name des Attributs sein, also geben Sie WH123 ein und ersetzen Sie das <arg> im Ausdruck.

    • Dieser Parameter gibt den im Quelldatenelement verwendeten Code an. Stellen Sie sicher, dass der zweite des Ausdrucks <arg> ist hervorgehoben, ersetzen Sie es durch Doppelklicken auf das Datenelement [V]** des **Attributcodes.

    • Der letzte Parameter gibt den Wert des Quelldatenelements zurück. Stellen Sie sicher, dass der letzte des Ausdrucks <arg> ist hervorgehoben, ersetzen Sie es durch Doppelklicken auf das Datenelement [V]** des **Attributwerts.

  • Vergleichen Sie Ihren Ausdruck mit der Abbildung unten und klicken Sie anschließend auf „OK“, um das Fenster zu schließen.

instancemappingsample2 3of4

Beispiel vervollständigen

Wiederholen Sie die oben beschriebenen Schritte für die beiden verbleibenden Lager, WH456 und WH789, und legen Sie deren Werte entsprechend fest. Damit haben Sie die Übung zu Beispiel 2 abgeschlossen. Vergleichen Sie Ihre Arbeit mit der Abbildung unten.

hf2 complete0