Zeilen ohne Abhängigkeiten

Eine CSV-Datei ist eine Text-Datei, die tabellarisch strukturierte Daten enthält und vorrangig zum Datenaustausch verwendet wird. Bei CSV-Dateien wird zwischen zeilenweiser oder spaltenweiser Anordnung unterschieden.

Die erste Tabelle zeigt ein Beispiel für zeilenweise Anordnung. Jede Zeile ist ein Datensatz, je mehr Datensätze, desto mehr Zeilen. Die Anzahl von Spalten in der Datei bleibt gleich.

Feld1

Feld2

Feld3

Feld4

Datensatz1

D1F1

D1F2

D1F3

D1F4

Datensatz2

D2F1

D2F2

D2F3

D2F4

Datensatz3

D3F1

D3F2

D3F3

D3F4

Datensatz4

D4F1

D4F2

D4F3

D4F4

Die zweite Tabelle zeigt ein Beispiel für spaltenweise Anordnung. Jede Spalte ist ein Datensatz, je mehr Datensätze, desto länger die Zeilen. Die Anzahl von Zeilen in der Datei bleibt gleich.

Datensatz1

Datensatz2

Datensatz3

Datensatz4

...

Feld1

D1F1

D2F1

D3F1

D4F1

...

Feld2

D1F2

D2F2

D3F2

D4F2

...

Feld3

D1F3

D2F3

D3F3

D4F3

...

Feld4

D1F4

D2F4

D3F4

D4F4

...

Das erste Listing zeigt den einfachsten Fall einer CSV-Datei in zeilenweiser Anordnung. Die Datei hat nur einen Datensatztyp, die Felder sind durch Semikolon (;) voneinander getrennt.

#OrderHeader=OH
OH;Order1
OH;Order2
OH;Order3

Das zweite Listing zeigt die gleiche CSV-Datei in spaltenweiser Anordnung.

OH;OH;OH
Order1;Order2;Order3

Beim Mapping wird in Lobster_data ein Quellbaum auf den Zielbaum abgebildet. Die Erstellung des Quellbaumes wird durch den Parser erledigt. In der Quellstruktur kann der Benutzer eigene Knoten und Felder erstellen, um die Struktur der Quelldaten abzubilden.

Die Abbildung unten zeigt die Arbeitsweise des Parsers. Aus den drei Zeilen werden drei Datensätze mit je 2 Feldern. Der Parser zerlegt die Eingangsdatei ab der zweiten Zeile in einzelne Datensätze. Danach müssen die Zeilen noch in Werte zerlegt werden. Um dieses Ziel zu erreichen, muss dem Parser zunächst mitgeteilt werden, eine ganze Zeile als Spalte zu interpretieren. Dies wird erreicht, indem als Trennzeichen in Feld (6) der Wert Neue Zeile eingetragen wird. Anschließend müssen die Zeilen noch auseinandergenommen werden. Dazu muss eingestellt werden, wie die Werte in einer Zeile getrennt sind. Diese Einstellung wird in den Eigenschaften eines Knotens vorgenommen.

images/download/attachments/21304061/CSV_1-version-5-modificationdate-1568688242315-api-v2.png

Die folgende Abbildung zeigt die Quellstruktur für die Beispieldatei unabhängig von der Anordnung der Daten in der Datei.

images/download/attachments/44925652/CSV_4-version-1-modificationdate-1568688280320-api-v2.png

Die nächste Abbildung zeigt die Eigenschaften für den Knoten OrderHeader der Quellstruktur aus der vorherigen Abbildung. Der Wert in (1) gibt an, welches Zeichen die Werte in einer Zeile trennt. Da der Wert im Knoten eingetragen wird, sind unterschiedliche Trenner für unterschiedliche Datensatz-Typen möglich.

images/download/attachments/44925652/CSV_5-version-1-modificationdate-1568688280324-api-v2.png

Lobster_data betritt einen Knoten auf der Eingangsseite nur, wenn eingestellte Bedingungen erfüllt sind. Diese Einstellungen, die sogenannten Satzarterkennungen, können im Kontextmenü der Quellstruktur-Knoten definiert werden. Die folgende Abbildung zeigt den Dialog zur Definition der Satzarterkennung.

images/download/attachments/44925652/CSV_6-version-1-modificationdate-1568688280326-api-v2.png

Für einen Knoten können beliebig viele Bedingungen eingetragen werden. Die Bedingungen werden ODER-verknüpft. Im Beispiel ist die Satzarterkennung der Wert des ersten Feldes in jeder Zeile. Mit dem Mechanismus der Satzarterkennung können unterschiedliche Datensatztypen in einer Eingangsdatei gemischt werden. Wird die Checkbox (14) auf Seite CSV gesetzt, kann die gleiche Satzarterkennung auch innerhalb eines Unterknotens verwendet werden.

Beim CSV-Parser müssen in den Oberknoten ebenfalls die Zeichenfolgen definiert sein, die erlauben, dass die Unterknoten betreten werden. Beim Feste-Länge-Parser werden die Unterknoten dagegen allein durch die Zeichenfolgen in den Unterknoten gefunden.

Bei einer Hierarchie von Knoten muss als Spaltentrenner im Vaterknoten das Leerzeichen (" ") oder nichts ("") eingetragen werden.

Die Abbildung unten zeigt die Arbeitsweise des Parsers bei der Zerlegung einer Datei in Datenblätter bei der Verwendung unterschiedlicher Satzarten.

images/download/attachments/21304061/CSV_2-version-4-modificationdate-1568690546342-api-v2.png