Blog
In unserem Blog finden Sie viele spannende Artikel rund um die Themen i‑effect®, EDI und IBM i. Wenn Sie Vorschläge haben für einen Thema, das Sie interessiert, freuen wir uns auf Ihre Vorschläge.
Wie Sie CSV-Dateien mit i‑effect® in eine DB2-Datenbank konvertieren
Kurzfassung - In diesem Blogartikel möchten wir Ihnen anhand eines praktischen Beispiels erläutern, wie man mithilfe eines EDI-Konverters wie beispielsweise i‑effect® CSV-Daten in eine DB2-Datenbank konvertiert. Auch wenn sich der Artikel konkret auf zwei Datenformate beschränkt so sind diese gegen beliebige andere Formate austauschbar (XML, FLATFILE, EDIFACT, MYSQL, usw.).
Dienstag, 10. Dezember 2019Ziel
Zunächst sollte das Ziel eindeutig definiert werden. Als funktionales Ziel gibt es die Anforderung, die Daten die ein Lagersystem erzeugt in Echtzeit ab zugreifen und an einem weiteren Speicherort zu speichern. Dies soll für Backup- und Statistikzwecke dienen: Beispielweise dazu um das System nachträglich um eine Visualisierungkomponente zu erweitern.
Als Ziel wird in diesem Fall die automatisierte Konvertierung von CSV-Dateien in eine DB2-Datenbank mit Fehlerbenachrichtigung definiert. Die Quell-CSV-Datei stellt eine, regelmäßig von einem Lagersystem erstellte Nachricht dar, die den Zu- und Abfluss von Paletten darstellt. Bei dieser Nachricht handelt es sich um eine CSV-Datei.
Visualisierung des Prozesses in der ProduktionVoraussetzungen
Durch die Definition des Ziels hat sich nun eine konkrete Aufgabe ergeben: Konvertierung der Quelldatei in das Zielformat. Um diese Aufgabe zu realisieren benötigt man eine geeignete technische Lösung für das Konvertieren der Daten. Häufig ist der erste Gedanke: "Programmierung". Grundsätzlich ist dieser Gedanke auch nicht falsch. Allerdings gibt es für die Konvertierung von Daten zwischen Standardformaten schon seit Jahrzehnten Standardsoftware - nämlich EDI- oder EAI-Tools. Standardsoftware dieser Art bewerkstelligt diese Aufgaben "out-of-the-box" mit allen eventuell benötigten Features und das auch ohne Programmierkenntnisse, denn diese werden im Unternehmen häufig für komplexere Programmierarbeiten benötigt. Für die weitere Betrachtung dieses Beispiels gehen wir nun davon aus, dass eine geeignete Standardsoftware wie beispielsweise i‑effect® vorhanden ist.
Quellformat
Der erste Schritt liegt nun in der formalen Beschreibung der Quellstruktur (bei einer CSV-Datei ist diese Beschreibung verglichen mit anderen Formaten relativ einfach). Diese Beschreibung benötigt die Standardsoftware um Dateien dieses Typs zu lesen oder zu erzeugen. Um diese Beschreibung zu erstellen muss man sich also zunächst die Schnittmenge aller bestehenden Dateien ansehen (bei CSV ist das vermutlich nicht notwendig - hier kann auch eine Datei reichen, da diese bereits alle Elemente enthält). Allerdings fällt beispielsweise in diesem Anwendungsfall bei der Betrachtung mehrer Dateien auf, dass es auch Dateien gibt in denen lediglich eine Zeile pro Datei gefüllt ist. Es können also 1-N Zeilen in der Datei vorkommen.
id;lager;palettennummer;x-koordinate;y-koordninate;z-koordinate;aktion;datum;uhrzeit 1;L1;4711;1;2;4;auslagerung;31.10.2019;14:14 2;L2;4800;3;4;1;einlagerung;31.10.2019;14:21 3;L3;4801;6;1;1;einlagerung;31.10.2019;14:25
Nach der Analyse der Datei kann nun die Beschreibung zu diesem CSV-Dateityp erstellt werden. Das Format einer solchen Beschreibung variiert von Software zu Software. Die wesentliche Informationen sind allerdings gleich (siehe hierzu auch CSV Artikel im Glossar).
Definiert werden:- Felder und Feldtypen (sowie die Reihenfolge)
- Trennzeichen
- Zeilenumbruch
"
Im EDI-Mapping sieht die erstellte Beschreibung dann wie folgt aus:
Zielformat
Nach der Betrachtung des Quellformats ist nun die Analyse des Zielformats notwendig. In diesem Beispiel ist dies sehr einfach, da die Struktur nahezu 1-zu-1 in die Datenbank übernommen werden soll.
Die folgende Datenbankstruktur wird nun als Zielformat verwendet:
Die DB2-Datei wird wie folgt definiert:
CREATE TABLE X006.WHOUSEMOV (
MID BIGINT,
WHOUSE VARCHAR(30),
PALLETID BIGINT,
XCOOR SMALLINT,
YCOOR SMALLINT,
ZCOOR SMALLINT,
DIR VARCHAR(1),
MDATE DATE,
MTIME TIME,
ARCFILE VARCHAR(160),
CONVDTM TIMESTAMP
);
Konvertierung (Mapping)
Im Datenmapping werden nun die Daten einander zugeordnet, das Mapping ist gleichsam der "Routenplaner" für die Daten. Das Mapping zu dieser Aufgabe sieht unter Verwendung eines graphischen Mappingeditors wie i‑effect® *MAPGUI dann so aus:
Das Ergebnis des folgenden Mappings sieht in der Datenbank auch wie erwartet aus:
In der EDI-Software kann man das Ergebnis der Konvertierung nachvollziehen:
Zurück zur Übersicht