ConvertFixRecordToCsvPreParser
Gruppe |
|
Funktion |
Dieser Preparser transformiert eine Feste-Länge-Datei in eine CSV-Datei. |
Konfigurationsdatei |
./conf/samples/sample_split_fix2csv.xml |
Beschreibung
Dieser Preparser transformiert eine Feste-Länge-Datei in eine CSV-Datei - wobei immer nur eine Zeile im Arbeitsspeicher ist.
Der Preparser erwartet zur Konfiguration eine XML-Datei (Beispiel weiter unten). Folgende Parameter können verwendet werden.
config |
Element |
Übergeordnetes Element der XML-Konfigurationsdatei. |
length |
Attribut von Element config |
Bei -1 wird angemommen, dass die Zeilen in der Feste-Länge-Datei durch einem Zeilenumbruch getrennt sind. Ansonsten muss man die Zeilenlänge angeben. |
delim |
Attribut von Element config |
Bestimmt das Trennzeichen, das in der erzeugten CSV-Datei verwendet werden soll. |
segment |
Element |
Pro Satzart der Feste-Länge-Datei gibt es ein XML-Element segment, das die Felder beschreibt. |
matchcode |
Attribut von Element segment |
Kann entweder leer sein (damit werden alle Zeilen erkannt) oder definiert, falls gefüllt, die Satzarterkennung wie Starts with in Knoten (z.B. matchcode="123" ). Alternativ kann ein regulärer Ausdruck angegeben werden (z.B. matchcode="regex:123.*"). |
insert |
Attribut von Element segment |
Ist optional und kann eine neue (erste) Spalte im CSV mit einem Festwert füllen. Das Attribut kann also verwendet werden, um in den CSV-Zeilen eine Satzartkennung einzufügen. |
column |
Sub-Element von Element segment |
Beschreibt ein Feld der Satzart, die im übergeordeten Element segment beschrieben ist. Die Reihenfolge wird beachtet. |
length |
Attribut von Element column |
Die Länge des Feldes in der Feste-Länge-Satzart (Zeile). |
trim |
Attribut von Element column |
true oder false. Gibt ab, ob führende oder folgende Leerzeichen des Feste-Länge-Feldes im CSV-Feld entfernt werden sollen. |
type |
Attribut von Element column |
Gibt den Datentyp des CSV-Feldes an (wie in der GUI im Zielfeld-Attribut "Typ"). Kann Integer, Float, Double, String, Date, Timestamp, BigInt, oder BigDecimal sein. |
format |
Attribut von Element column |
Gibt das Format des CSV-Feldes an (wie in der GUI im Zielfeld-Attribut "Vorlage"). |
Beispiel
Wir möchten die Feste-Länge-Zeile
001Hello world 110915 |
umwandeln in die CSV-Zeile
A;1;Hello World;2015-09-11 |
Das können wir mit der folgenden XML-Konfigurationsdatei erreichen:
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
config
length
=
"-1"
delim
=
";"
>
<
segment
matchcode
=
""
insert
=
"A"
>
<
column
length
=
"3"
trim
=
"false"
type
=
"Integer"
/>
<
column
length
=
"12"
trim
=
"true"
type
=
"String"
/>
<
column
length
=
"6"
trim
=
"false"
type
=
"Date"
format
=
"ddMMyy"
/>
</
segment
>
</
config
>
Hinweis: Zu beachten ist hier die Typumwandlung von String 001 zu Integer 1 und String 110915 zu Date 2015-09-11, wie sie auch in Mappings durchgeführt werden würde.
Beispiel-Datei in Auslieferung
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<!-- length = -1: new line is used. Otherwise define length of record
delim: which delimiter should be used
-->
<
config
length
=
"-1"
delim
=
";"
>
<!-- matchcode: check if line 'starts with' or use regular expression by matchcode="regex:...."
insert: if not empty, this value will be added as first column
-->
<
segment
matchcode
=
""
insert
=
"A"
>
<
column
length
=
"10"
trim
=
"true"
type
=
"String"
/>
<
column
length
=
"10"
trim
=
"false"
type
=
"String"
format
=
""
/>
<
column
length
=
"2"
trim
=
"false"
type
=
"Integer"
format
=
""
/>
<
column
length
=
"2"
trim
=
"false"
type
=
"Integer"
format
=
"N6.2"
/>
<
column
length
=
"8"
trim
=
"false"
type
=
"Date"
format
=
"ddMMyyyy"
/>
</
segment
>
</
config
>