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.
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
Ausschnitt aus der XML-Datei
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.
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
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.
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).
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.
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.
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.
Bild Output 1
In der Drop Down Box „Zuordnung auf Verbindungsebene“ VKP auswählen.
Bild Output 2 (Zuordnungsebene)
Danach jedes Quellelement zum Output Attribut zuordnen. Das ist jetzt das Mapping.
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.