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