Action zur generische Spliting von Nachrichten

Kurzbeschreibung

Diese Action kann dazu genutzt werden um Edi-Nachrichten anhand ihrer Vorgänge zu splitten oder um Nachrichten per regulären Ausdruck zu splitten.

Einrichtung

Die GenericSplit Action wird als Java-Action eingerichtet (siehe Actions Anlegen). Dabei müssen die folgenden Einstellungen der Action vorgenommen werden.

Klasse: org.b2bbp.runtime.actions.managed.GenericSplit

Alle weiteren Einstellungen der Action, die nach Erstellen der Action gesetzt werden, finden sich in den nachstehenden Tabellen.

Action Eigenschaften (Erforderlich)

Hier genannte Eigenschaften müssen konfiguriert werden. Sonst wird bei der Ausführung der Action ein Fehler generiert.

     
Name der Eigenschaft erlaubte Werte Beschreibung
DEFAULT_CHANNEL Channelnamen Dieser Parameter gibt den B3P_BASE_CHANNEL der Split-Nachrichten an.

Action Eigenschaften (Optional)

Name der Eigenschaft erlaubte Werte Beschreibung

SPLIT_ALWAYS

<true|false> (Default: false)

Gibt an, ob die Nachricht immer gesplittet werden soll auch wenn nur eine gesplittete Nachricht vorhanden ist

MESSAGE_PRIO

Ultra;Low etc. (Default: LOW)

Name des Messagecontext Eintrages indem die zu splittende Nachricht steht

CONFIG_EXTENSION_NAMES

<Name der Split-Extensions> (;separiert) (Reihenfolge wichtig)

Der Extension Inhalt wird weiter unten beschrieben

CHANNEL_EXIT <true|false> (Default: false) Falls true findet keine weitere Verarbeitung der Nachricht nach einem Split mehr statt (im Ursprungschannel)

SOURCE_FIELD

MessageContext Parametername

Wird nur benötigt wenn der Nachrichteninhalt nicht aus dem CURRENT_PAYLOAD genommen werden soll. Die Eigenschaft darf nicht nur angelegt und leergelassen werden.

B3P_ACKNOWLEDGEMENT

z.B. SPL oder B3P_ACKNOWLEDGEMENT = ${loadExtensionProperty(BS,${template(SPLIT_&(this.CHANNEL))},true)}

Der Bestätigungsstatus der gesplitteten Nachricht wird auf den definierten Wert geändert, sofern dieser gesetzt ist.

Split Extension

Wenn keine Split-Extension angegeben wird, wird automatisch pro Incident gesplittet. Pro Vorgang wird eine Edi-Nachricht erzeugt.

Mithilfe einer Split-Extension kann das Verhalten feiner gesteuert werden. Der Inhalt wird weiter unten beschrieben. Gibt man mehr als eine Split-Extensions an, werden die gesplitteten Nachrichten auch mehrmals gesplittet. Jeder Split Vorgang wird durch eine Extension beschrieben.

Eine Split Extension hat den folgenden Aufbau:

DEFAULT_GROUP_NAME Gibt den Gruppennamen an, falls kein expliziter Name angegeben wird.

ACCUMULATE_GROUPS=<Groupname1>;< Groupname2>;…;< GroupnameN>

GroupnameX_PATTERN=<Regex>

GroupnameX_NAME=< dynamic function>

Mithilfe von Accumulate Groups kann man gesplittete Vorgänge zusammenfassen. Jeder Vorgang der den regulären Ausdruck der Gruppe erfüllt wird dieser Gruppe zugeordnet. Der Gruppenname ist später der BASE_CHANNEL der Split Nachricht. Der Gruppenname kann auch eine dynamische Funktion sein.

ACCUMULATE_MODE=<DUPLICATE,FIRST_WINS>

Gibt an, ob ein Vorgang mehreren Gruppen zugeordnet werden kann(DUPLICATE) oder ob der Vorgang der ersten Gruppe zugeordnet wird.

REST_HANDLING=<REMOVE,ACCUMULATE, SEPERATE>

Gibt an was mit Vorgängen passiert, die keiner Gruppe zugeordnet werden kann.

REMOVE= Vorgänge werden gelöscht

ACCUMULATE= Vorgänge werden in einer Nachricht zusammengefasst

SEPERATE= Eine Nachricht pro Vorgang

 

Der Gruppenname der Restgruppe.

REST_GROUP_NAME=<dynamic function>

SPLIT_MODE=<REGEX oder INCIDENT>

Wenn der Splitmode Incident ist, werden die Nachrichten anhand des Vorganges gesplittet.

 

Format Incident
APERAK ERC
CONTRL UCM
INVOIC UNH
REMADV DOC
MSCONS UNH
UTILMD IDE
UTILTS IDE
REQOTE UNH
QUOTES UNH
ORDERS UNH
ORDRSP UNH
IFTSTA EQD
INSRPT DOC
PRICAT LIN

Wenn der Splitmode REGEX ist, werden die Nachrichten anhand der folgenden Regulären Ausdrücke gesplittet:

SPLIT_PATTERNS_HEAD>;< NameRegex2>,…,<NameRegexN>

SPLIT_PATTERNS_TAIL=<NameRegex1>;< NameRegex2>,…,<NameRegexN>

SPLIT_PATTERNS_PARTS=<NameRegex1>;< NameRegex2>,…,<NameRegexN>

NameRegexX=<Regex>

Die Head-Pattern geben den Prefix der Edi-Nachricht an.

Die Tail-Pattern geben den Suffix der Edi-Nachricht an.

Die Parts-Pattern geben den Inhalt der Vorgänge an.

Beispiel einer Extension mit REGEX Splitmode

Wenn über die Extension beispielsweise nur eine IFTSTA-Nachricht auf CNI-Ebene gesplittet werden soll, sieht die Extension wie folgt aus:

Hinweis: “IFTSTA_SPLIT” ist der Channelname, in dem die gesplitteten Nachrichten übergeben werden sollen

REST_GROUP_NAME=IFTSTA_SPLIT
SPLIT_MODE=REGEX
SPLIT_PATTERNS_HEAD=PART1
PART1=(?s)(^.*?')CNI\\+
SPLIT_PATTERNS_TAIL=PART2
PART2=(?s)'(UNT\\+.*)
SPLIT_PATTERNS_PARTS=PART3
PART3=(?s)'(?=CNI\\+)(.+?)(?=(')(?:UNT|CNI)\\+)

Action Eigenschaften (Experte)

Hier genannte Eigenschaften sollten nur in Ausnahmefällen oder durch Expertennutzer gesetzt werden, die mit dem Quellcode der Action vertraut sind.

Name der Eigenschaft erlaubte Werte Beschreibung

BATCH_SIZE

Integer (Default: 50)

Größe der Batchsize beim Einfügen der Nachrichten. Bei Angabe von -1 gibt es nur einen Batch.

View Me   Edit Me