Kornshell (ksh) vs Perl – Part II – Laufzeitvergleich: mehre Arbeitsschritte mit kleine Dateien

Im vorigen Artikel ging es um einen allgemeinen Vergleich von KornShell (ksh) vs Perl. Dabei wurde deutlich, je größer die Dateien desto größer der Geschwindigkeitsvorteil von Perl gegenüber Kornshell. Perl ist bei einer Dateigröße von 500 KB bzw. 1 MB klar im Vorteil.

Jetzt stellt sich die Frage, was passiert bei kleinen Dateien, wenn mehre Aktionen bzw. Operationen innerhalb eines Scripts angewendet werden. Beispiel wäre hier die EDI Vorverarbeitung, wo die Dateien eine durchschnittliche Größe von 5KB bis 16KB haben. Dort werden Daten auf Basis von Teilstrings analysiert, sortiert oder angereichert.

In diesem Test werden 8 Arbeitsschritte (Aktionen/Operationen) in den Skripten durchgeführt und zur Gegenüberstellung einfach verdoppelt.
Continue reading

Kornshell (ksh) vs. Perl – Part I – Verarbeitungszeiten von Dateien bei String/File Operationen

Bei vielen Analysen oder wiederkehrenden Jobs wird weiterhin auf Shell (Bash oder Ksh) gesetzt. Vorallem bei Aktionen wo einer Datei analysieren oder der Inhalt verändert werden sollen. Allerdings stellt sich immer wieder mal die Frage: in wie weit, wie in diesem Fall die Kornshell, die Performance eines System belastet wird, wenn z.B. die schnell geschrieben Skripte vollständig in die automatische Verarbeitung integriert werden. Dieser Beitrag soll aufzeigen ob und in wie fern es sich lohnt anstelle von Shell Scripting auf Perl Scripting zu setzen, wenn es sich um Datei oder String Operationen handelt.
Continue reading

Input XML Dokument in globale Variable schreiben und von überall im XSL zugreifen

Ziel ist es bei einer XSL Template Verarbeitung von einzelnen <record> Tags, bei dem Sub-Tag <referTo> das jeweilige Referenz Tag zu finden und den Inhalt zu verwenden. Anwendungsfall ist z.B. bei EDI Message Strukturbeschreibungen, dass mit <referTo> Tag der Inhalt nicht wiederholt werden muss, sondern nur referenziert wird. Allerdings braucht man gelegentlich trotzdem ein XML Dokument ohne Referenzen sondern mit dem ganzen Inhalt – in unserem Fall um vollständige WorkSheets für ein OOXML Dokument zu erstellen.
Continue reading

Zwei XML Dokumente mit XSL zusammenführen

Ziel ist es zwei separate XML Dokumente in ein XML Dokument unter einem <root> Tag zusammenzuführen. Dabei wird das erste XML Dokument mit einem XSL/T Prozessor (z.B. Saxon) gestartet und zu einem neuen Zieldokument transformiert. Während der Transformation wird im XSL mittels der document() Funktion das zweite XML Dokument in eine Variable geschrieben und steht somit der Verarbeitung zur Verfügung.
Continue reading

EDI Doku mit OOXML durch XSL für Seeburger Messages erstellen

Zu jeder EDI Implementierung gehört eine ordentliche Dokumentation. Leider wird das oft aus Zeitgründen vernachlässigt. Wobei sich im Verlauf der Zeit, aber immer herausstellt das eine Mapping Dokumentation ein sehr gute Kommunikationsmittel zwischen EDI Entwickler und Fachabteilung ist. Die Lösung auf den Code als Mapping Dokumentation zu setzen ist meist ein Problem, weil dies für die Fachabteilung oft unverständlich und nicht nachvollziehbar ist. Des weiteren spiegelt der Code nur die Vorstellungen und das Verständnis des Entwicklers wieder und das muss nicht immer richtig sein. Deshalb wird meist eine Mapping Dokumentation auf Basis von Word oder Excel genutzt.
Continue reading

XML in mehrere Dateien splitten, welche mehrere XML Dokumente enthalten

Aus einer großen XML Datei, welche mehrere kleine XML Dokument enthält, sollen jeweils mehrere kleine Dateien mit einer bestimmten Anzahl von XML Dokumenten erstellt werden.

Fallbeispiel:
Die große XML Datei enthält 5 XML Dokumente. Eine XML Datei soll allerdings nur jeweils 2 XML Dokumente erhalten. Das bedeutet aus der einen großen XML Datei müssen 3 kleine XML Dateien erzeugt werden. Die ersten beiden Dateien enthalten somit 2 XML Dokumente und die letzte Datei ein XML Dokument. Natürlich müssen die XML Dokumente wie bei der großen XML Datei durch ein <root> Tag gekapselt werden.
Continue reading