Aufteiler (Splitter)
Alle verfügbaren Aufteiler sind definiert in Konfigurationsdatei ./etc/admin/datawizard/ci_splitter.properties . Lobster_data bietet eine Programmierschnittstelle (API), die es Ihnen auch erlaubt eigene Komponenten in Java zu entwickeln. Hierzu bieten wir eine vertiefte Schulung an. Bei Interesse wenden Sie sich bitte an unsere Mitarbeiter im Support bzw. im Vertrieb.
EDIFACT Message Splitter
Dieser Dateitrenner trennt EDIFACT-Dateien, die mehrere EDIFACT-Nachrichten enthalten. Aus jeder Nachricht wird eine Datei erstellt.
EDIFACT UNH Message Splitter
Dieser Dateitrenner trennt EDIFACT-Dateien, die mehrere UNH-Segmente haben. Das Envelope um die Datei wird in jede neue Datei mit kopiert. Zu Beachten ist dabei, dass der Segmentzähler nicht aktualisiert wird.
JSON Splitter
Dieser Dateitrenner trennt große JSON-Dateien auf.
(1) Gibt die Anzahl an Objekten an, die zusammengefasst werden sollen. Bei 1 wird pro Splitting-Text (5) eine neue JSON-Datei erstellt.
(2) Präfix, das vor den Splitting-Text gesetzt wird.
(3) Suffix, das nach dem Splitting-Text gesetzt wird (nicht beim letzten).
(4) Bei true wird gegebenenfalls das letzte Komma bis einschließlich dem vorletzten Vorkommen entfernt. Der JSON-Text wird normalisiert, d. h. es werden alle Leerzeichen und Zeilenumbrüche entfernt, worauf dann auch beim Splitting-Text (5) zu achten ist.
(5) Text, nach dem gesplittet wird.
Beispiel
Gegeben sei folgende Datei und die Einstellungen im Screenshot. Das Ergebnis des Splittings sind die drei Dateien, die danach gelistet sind.
{
"users"
: [ {
"userId"
:
1
,
"firstName"
:
"Krish"
,
"lastName"
:
"Lee"
,
"phoneNumber"
:
"123456"
,
"emailAddress"
:
"krish.lee@learningcontainer.com"
}, {
"userId"
:
2
,
"firstName"
:
"racks"
,
"lastName"
:
"jacson"
,
"phoneNumber"
:
"123456"
,
"emailAddress"
:
"racks.jacson@learningcontainer.com"
}, {
"userId"
:
3
,
"firstName"
:
"denial"
,
"lastName"
:
"roast"
,
"phoneNumber"
:
"33333333"
,
"emailAddress"
:
"denial.roast@learningcontainer.com"
}
]
}
{
"users"
:[{
"userId"
:
1
,
"firstName"
:
"Krish"
,
"lastName"
:
"Lee"
,
"phoneNumber"
:
"123456"
,
"emailAddress"
:
"krish.lee@learningcontainer.com"
}]}
{
"users"
:[{
"userId"
:
2
,
"firstName"
:
"racks"
,
"lastName"
:
"jacson"
,
"phoneNumber"
:
"123456"
,
"emailAddress"
:
"racks.jacson@learningcontainer.com"
}]}
{
"users"
:[{
"userId"
:
3
,
"firstName"
:
"denial"
,
"lastName"
:
"roast"
,
"phoneNumber"
:
"33333333"
,
"emailAddress"
:
"denial.roast@learningcontainer.com"
}]}
Plain Text Splitter
Dieser Dateitrenner überprüft zeilenweise, ob die definierten Regeln zutreffen. Eine Split-Datei wird durch eine zutreffende Anfangsregel und eine zutreffende Endregel erzeugt, oder auch nur durch eine einzelne Anfangsregel, wenn nur diese definiert ist (dies wird meist ausreichend sein).
Eine neue Regel kann über das Kontextmenü erzeugt werden.
(1) Es gibt zwei verschiedene Regeltypen: Ist Anfang der Nachricht, Ist Ende der Nachricht.
(2) Mögliche Werte sind:
beginnt mit
endet mit
enthält
ist gleich
RegEx (Regulärer Ausdruck)
(3) Der Wert, mit dem die Dateizeile verglichen wird.
(4) Wenn dort ein Wert größer 0 hinterlegt ist, wird beim zeilenweise Einlesen der Eingangsdatenzeile nur der Teilstring zwischen diesen Indizes (beginnend mit 1) verglichen. Hinweis: Start-Wert muss kleiner als der Ende-Wert sein.
Beispiel
Gegeben sei folgende Datei. Die Einstellungen seien wie oben im Screenshot.
ORDER;9879871234;Max Mustermann
POS;1;7687876;1;Artikel1
POS;2;5477969;1;Artikel2
POS;3;3687652;2;Artikel3
END
ORDER;9527638478;Testkunde 1
POS;1;6537896;1;Artikel4
POS;2;2971087;1;Artikel5
END
Es entstehen zwei Dateien.
ORDER;9879871234;Max Mustermann
POS;1;7687876;1;Artikel1
POS;2;5477969;1;Artikel2
POS;3;3687652;2;Artikel3
END
ORDER;9527638478;Testkunde 1
POS;1;6537896;1;Artikel4
POS;2;2971087;1;Artikel5
END
Hinweis: Wie bereits erwähnt, würde in diesem Fall auch lediglich die Anfangsregel ausreichen, um das selbe Ergebnis zu erzielen.
Tradacoms Message Splitter
Enthält eine Eingangsdatei mehrere Tradacoms-Nachrichten (jeweils von Segment STX bis Segment END) hintereinander, dann wird die Datei in mehrere Einzeldateien mit jeweils einer Tradacoms-Nachricht gesplittet (jeweils von Segment STX bis Segment END).
X12 Message Splitter V2
Hinweis: Die erste Version des Splitters (V1) ist nur noch aus Kompatibilitätsgründen vorhanden und wird hier nicht extra beschrieben. Bitte verwenden Sie immer Version 2.
Enthält eine Eingangsdatei mehrere X12-Nachrichten (jeweils von Segment ISA bis Segment IEA) hintereinander, dann wird die Datei in mehrere Einzeldateien mit jeweils einer X12-Nachricht gesplittet (jeweils von Segment ISA bis Segment IEA).
XML Message Splitter
Der Dateitrenner trennt Dateien, die mehrere XML-Definition enthalten. Beispiel:
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
ORDER
nr
=
"9879871234"
cust
=
"Max Mustermann"
>
<
POS
index
=
"1"
nr
=
"7687876"
amount
=
"1"
artName
=
"Artikel1"
/>
<
POS
index
=
"2"
nr
=
"5477969"
amount
=
"1"
artName
=
"Artikel2"
/>
<
POS
index
=
"3"
nr
=
"3687652"
amount
=
"2"
artName
=
"Artikel3"
/>
</
ORDER
>
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
ORDER
nr
=
"9527638478"
cust
=
"Testkunde 1"
>
<
POS
index
=
"1"
nr
=
"6537896"
amount
=
"1"
artName
=
"Artikel4"
/>
<
POS
index
=
"2"
nr
=
"2971087"
amount
=
"1"
artName
=
"Artikel5"
/>
</
ORDER
>
Als Ergebnis würde der Dateitrenner folgende zwei Dateien liefern:
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
ORDER
nr
=
"9879871234"
cust
=
"Max Mustermann"
>
<
POS
index
=
"1"
nr
=
"7687876"
amount
=
"1"
artName
=
"Artikel1"
/>
<
POS
index
=
"2"
nr
=
"5477969"
amount
=
"1"
artName
=
"Artikel2"
/>
<
POS
index
=
"3"
nr
=
"3687652"
amount
=
"2"
artName
=
"Artikel3"
/>
</
ORDER
>
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
ORDER
nr
=
"9527638478"
cust
=
"Testkunde 1"
>
<
POS
index
=
"1"
nr
=
"6537896"
amount
=
"1"
artName
=
"Artikel4"
/>
<
POS
index
=
"2"
nr
=
"2971087"
amount
=
"1"
artName
=
"Artikel5"
/>
</
ORDER
>
XML Node Splitter
Dieser Dateitrenner erwartet die Angabe eines Root Nodes (1) und eines Split Nodes (2). Beide müssen dabei mit einem XPath-Ausdruck angegeben werden. Der Root Node ist der "oberste" Knoten des XML-Dokuments. Der Split Node ist der Knoten, der mehrfach im Dokument vorkommt und aufgespaltet werden soll. Das Ergebnis sind so viele Dateien, wie es Split Nodes gibt und jede Ergebnisdatei ist jeweils das vollständige XML-Dokument mit aber jeweils nur einem Split Node.
Nehmen wir beispielsweise an es wäre folgende Datei gegeben. Als XPath-Ausrücke verwenden wir /breakfast im Feld Root Node und /breakfast/food im Feld Split Node.
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
breakfast
>
<
food
>
<
name
>Belgian Waffles</
name
>
<
price
>$5.95</
price
>
<
description
>Two of our famous Belgian Waffles with plenty of real maple syrup</
description
>
</
food
>
<
food
>
<
name
>French Toast</
name
>
<
price
>$4.50</
price
>
<
description
>Thick slices made from our homemade sourdough bread</
description
>
</
food
>
</
breakfast
>
Als Ergebnis erhalten wir dann diese beiden Dateien.
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
breakfast
>
<
food
>
<
name
>Belgian Waffles</
name
>
<
price
>$5.95</
price
>
<
description
>Two of our famous Belgian Waffles with plenty of real maple syrup</
description
>
</
food
>
</
breakfast
>
<?
xml
version
=
"1.0"
encoding
=
"ISO-8859-1"
?>
<
breakfast
>
<
food
>
<
name
>French Toast</
name
>
<
price
>$4.50</
price
>
<
description
>Thick slices made from our homemade sourdough bread</
description
>
</
food
>
</
breakfast
>