Die erste Aufgabe war das Einlesen einer klassischen XML-Datei. Anschließend wurden, basierend auf den gelesenen Werten, fachliche Prüfungen implementiert. Diese umfassten zum Einen das Zählen bestimmter Wiederholungsgruppen innerhalb des XML und zum anderen einen HTTP-REST Aufruf zur Prüfung einer Wertpapierkennnummer (WKN). Das Ergebnis wurde anschließend sowohl in eine CSV- als auch als JSON-Datei in das Dateisystem geschrieben.
Die zweite Aufgabe war hinsichtlich der Quelldatei etwas komplexer, da es sich um eine Excel-Datei handelte. Die Excel-Datei wurde mittels einer Java-Transformation und einer In-Stream-XML-Transformation verarbeitet. Dieses Verfahren ist voll flexibel und wird bereits bei der DZ Bank erfolgreich produktiv eingesetzt. Die Java Transformation erstellt aus dem Excel eine XML-Struktur, die dann im Mapping mit besagter Transformation umgewandelt wird. So stehen alle Spalten des Excels anschließend im Mapping zur Verfügung. Die Herausforderung lag darin, dass die Spalten im Excel nicht zwangsläufig die gleiche bzw. eine vorhersehbare Reihenfolge aufweisen müssen. Ebenso konnte es vorkommen, dass Spalten bspw. durch Rechtschreibfehler minimal anders benannt sind. Zum Beispiel liefert Kunde A die Bezeichnung WKN und Kunde B an deren Stelle das Wort Wertpapierkennnummer. Nach der erfolgreichen Harmonisierung der Struktur wurden Referenzdaten nachgeschlagen, um das CSV-Zielformat zu befüllen.
Die dritte Aufgabe hatte einen direkten Bezug zur Dateneingangskontrolle. Angediente CSV-Dateien mussten eingelesen und mittels einer Oracle Prozedur geprüft werden. Die Prüfung entnahm dabei Nutzdatenwerte aus der CSV-Datei und Informationen aus dem Dateinamen. Auf Basis der Kombination von Sender und WKN ermittelte die Prozedur, ob der Sender berechtigt ist, die WKN zu liefern oder nicht. Um die Weiterverarbeitung auf dem bestehenden HOST-System zu beschleunigen, mussten die Zeilen gefiltert werden, die sich im Vergleich zur letzten Lieferung nicht geändert haben. Dies wurde klassisch mit MD5 Hashwert-Vergleichen und dynamischen Lookups umgesetzt.