Tipps und Tricks: Daten in XML einlesen

In diesem Artikel erklärt Senior IT-Consultant Tilo Winter, welche Schritte notwendig sind, um eine XML-Datei vollständig und fehlerfrei einzulesen.

Verfasst von: Tilo Winter, Senior IT-Consultant

IIS DataStage 11.7 - XML Daten einlesen

1. Einleitung

Im Umfeld des Datenaustausches zwischen unterschiedlichen Umgebungen und Plattformen ist neben einer reinen kommaseparierten Textdatei auch häufig der Austausch von strukturierten Daten in Form von einer XML-Datei nötig. Teils bieten Schnittstellen auch nur diese eine Möglichkeit an.

In diesen Fällen ist somit eine Benutzung der Sequential File Stage nicht mehr möglich. Stattdessen muss hier die „Hierarchical Data“-Stage benutzt werden für das Einlesen einer XML-Datei.

In der Version 11.7 von IIS DataStage ist der Flow Designer hinzugekommen. Damit steht neben der bisherigen Fat-Client Anwendung eine Web-Oberfläche zur Verfügung.

Damit ist jetzt in der „Hierarchical Data“-Stage die Möglichkeit gegeben, das „Edit assembly“ zu benutzen, welches im DS Designer nicht mehr funktionierte. Darin werden die Stage Eigenschaften zum XML-Datei Einlesen festgelegt.

XML-Daten-einlesen_1

HD-Stage

Der Grund dafür ist die Deaktivierung von Flash.

Innerhalb des DS-Designer lässt sich in der HD-Stage somit nur die Definition der Ausgabeattribute und Typdefinitionen vernünftig durchführen.

2. Beschreibung

In diesem Kapitel wird erklärt, welche Schritte nötig sind, damit eine XML-Datei fehlerfrei und vollständig eingelesen wird.

2.1 Namespace Definition

Zuerst muss sichergestellt werden, dass die Namespace Definition im XML und in der zugehörigen XSD-Datei identisch eingetragen sind:

xmlns=http://SchemaProduktstruktur.blabla.de
targetNamespace=http://SchemaProduktstruktur.blabla.de

XML-Daten-einlesen_2

Ausschnitt aus der XML-Datei

XML-Daten-einlesen_3

Ausschnitt aus der XSD-Datei

2.2 Ausschnitt aus der XML-Datei

In der XML-Datei „Produkt“ gibt es die Hierarchie: Artikelstamm – STP – R3P – VKP  
Es soll also in der Hierarchie bis auf die Ebene VKP alle Detailinformation eingelesen werden.

XML-Daten-einlesen_4

Inhalt in der XML-Datei

2.3 Das Jobdesign

Der DS-Job als Beispiel hat einen einfachen Aufbau:

HD-Stage, Transformer, DB2-Stage

Im Output der HD-Stage wird erst mal alles als Datentyp VARCHAR definiert.

Die Definitionen in der HD-Stage werden im Flow-Designer erledigt. Der Rest kann weiterhin im DS-Designer erfolgen.

2.3.1 HD-Stage Überblick

XML-Daten-einlesen_6

Bild der HD-Stage im Flow-Designer

Nun erst in den Tab „Bibliotheken“ wechseln. Darin wird die passende XSD-Datei zur XML-Datei verwaltet. In der Bibliothek „Produkt“, Kategorie „Prod“ ist die XSD-Datei importiert.

XML-Daten-einlesen_7

Ausschnitt „Bibliotheken“

Der Namespace ist das, was dann unter „Namensbereich“ rechts auftaucht. Ohne den Eintrag kann im „Assembly Editor“ der Namespace nicht ausgewählt werden (Drop Down Box).

Diese identische Namespace-Definition muss auch in der XML Datei vorhanden sein. Sonst kann das nicht gemappt werden intern und es wird nichts eingelesen.

2.3.2 HD-Stage, Einstellungen im Assembly Editor

Nun in den Tab „Assembly Editor“ wechseln. Darin werden die XML-Eigenschaften definiert.

Zuerst im Tab „Administration“ die Key-Felder definieren. Hier sind das 3 Keys für diese XML-Datei (StpNr, R3ProdNr und ProduktNr).

XML-Daten-einlesen_8

Bild Assembly Editor

Im Tab „2.XML_Parser“ mit „+add step“ den

Im Tab „2.XML_Parser“ mit „+add step“ den XML_Parser auswählen. Danach die XML-Datei auswählen (aus lokalem Verzeichnis). Diese wird übertragen zur DS Maschine. Es kann aber ein Parameter dort eingetragen werden, damit der Dateiname von außen übergeben werden kann.

XML-Daten-einlesen_10

Bild XML-Parser 1

Danach die vorher erstellte Bibliothek auswählen und die Schemadefinition. Dann weiter als Stammverzeichnis „Artikelstamm“ (da geht es los) auswählen und darunter auch „Artikelstamm“ auswählen.

XML-Daten-einlesen_9

Bild XML-Parser 2

Jetzt weiter zum Tab „3.Output“.

Darin wird die Zuordnung XML-Attribut zu Output-Attribut vorgenommen. Das geht über Drop Down Boxen. Das ist nicht sehr Benutzerfreundlich und die Zuordnung wird auch nicht immer so übernommen.

Sicherheitshalber noch mal überprüfen, ob das ausgewählte XML-Attribut auch wie gewünscht so ausgewählt bleibt in der Drop Down Box.

Dann in „Zuordnung auf Verbindungsebene“ die Ebene wählen, zu der die gewünschten Datendetailtiefe gebraucht wird.

XML-Daten-einlesen_11

Bild Output 1

In der Drop Down Box „Zuordnung auf Verbindungsebene“ VKP auswählen.

XML-Daten-einlesen_12

Bild Output 2 (Zuordnungsebene)

Danach jedes Quellelement zum Output Attribut zuordnen. Das ist jetzt das Mapping.

XML-Daten-einlesen_13

Bild Output 3 (Mapping)

Wenn die Zuordnung so akzeptiert wird erscheint vorne ein Häckchensymbol. Dann mit ok bestätigen und alles speichern.

Nun kann wieder in den DS-Designer gewechselt werden. In der Transformer-Stage hinter der HD-Stage werden die Attribute von VARCHAR auf die gewünschten Datentypen gemappt.

Zum Schluss noch die notwendigen Parameter in die DB2-Stage hinsichtlich DB-Name, User und Passwort und Tabellenname eintragen. Danach den Job kompilieren und starten.

Finden Sie diesen Beitrag gut? Teilen Sie ihn gerne:

Möchten Sie über neue Magazin-Beiträge informiert werden?

Folgen Sie uns

Scroll to Top