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.


images/download/attachments/62857665/1303-version-1-modificationdate-1667285145667-api-v2.png


(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.


images/download/attachments/62857665/186-version-1-modificationdate-1646207388726-api-v2.png


(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


images/download/attachments/62857665/187-version-1-modificationdate-1646207565496-api-v2.png


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>