Konfiguration MessageBufferActionFirstTime

MessageBufferActionFirstTime

Pfad: org.b2bbp.runtime.actions.internal.MessageBufferActionFirstTime

Übersicht

Diese Action unterbricht die Verarbeitung einer Nachricht unter gewissen Bedingungen und setzt den Clearing Status der Nachricht auf einen definierbaren Wert.

Wird später die Nachricht mit dem durch EXPECTED_CLEARING_STATE gegebenen Clearing Status neu gestartet, so wird die Nachricht nicht mehr gestoppt und normal verarbeitet.

Nachrichten, die so gepuffert werden, erhalten neben einem definierbaren Clearing Status auch einen definierbaren Verarbeitungsstatus.

Funktion

Um Nachrichten in der Verarbeitung (an der Stelle der BufferAction) zu stoppen, muss mindestens eine der folgenden Bedingungen zum Puffern der Nachricht erfüllt sein:

  • der (ausgewertete) Wert aus “B3P_FORMAT_VALUE” mit einem der Werte aus B3P_FORMAT_VALUES übereinstimmt
  • die Edifact beinhaltet ein Element der B3P_EDI_ELEMENTS
  • der (ausgewertete) Wert aus “B3P_FORMAT_VALUE” stimmt mit dem einer konfigurierten (Logic-)Extension überein Es wird dann an der gestoppten Nachricht der (in der Eigenschaft B3P_CLEARING_STATUS) definierte Clearing Code gesetzt. Eine Nachricht, die bereits diesen Clearing Code hat, wird bei der erneuten Verarbeitung (“FirstTime”) nicht mehr gepuffert, sondern dann verarbeitet!

Weiter kann das Puffern der Nachrichten noch auf spezifische Zeiträume oder Werktage im Monat eingeschränkt werden.

Action Properties

Property Möglicher Wert (ggf. Default) Beschreibung
B3P_CLEARING_STATUS 800 Dieser Clearing Code wird bei der gepufferten Nachrichten gesetzt. Damit die Action ausgeführt wird, muss entweder diese Property gesetzt sein oder B3P_IGNORE_CC_IF_NOT_EXPECTED_CC = true gesetzt sein.
B3P_FORMAT_VALUE ${template(&(this.FORMAT.senderCode))} Wert welcher in B3P_FORMAT_VALUES enthalten sein muss damit die Nachricht gepuffert wird
B3P_FORMAT_VALUES 9900426000009;9903086000005 Semikolon-separierte Ziel-Werte des B3P_FORMAT_VALUE Ausdrucks bei denen die Verarbeitung gestoppt wird
B3P_VS_STATE RUW (ERR, aber empfohlen RUW) Verarbeitungsstatus, den die gepufferte Nachrichten erhalten.
B3P_EDI_ELEMENTS LOC+172+12345678901;NAD+MS+9900000000000 Semikolon separierte Liste von Ausdrücken. Tritt ein solcher Ausdruck in der Edifact auf, so wird die Nachricht gepuffert
USE_EXTENSION LOGIC_BUFFER_EXTENSION Hier kann der Name einer Extension angegeben werden, in welcher konfiguriert werden kann, welche Nachrichten gepuffert werden. Genaueres wird im Kapitel Extension beschrieben.
B3P_FORMAT_VALUES_EXTENSION VALUES_BUFFER_EXTENSION Alternativ kann man die Werte in der hier angegebenen Extension festlegen
B3P_FORMAT_VALUES_INVERTED_EXTENSION VALUES_BUFFER_EXTENSION Extension für Werte, die nicht gepuffert werden. Alle anderen werden gepuffert.
B3P_INVERT true/false (false) Ist diese Eigenschaft aktiv (true), so werden die Nachrichten dann gepuffert, wenn der ausgewertete B3P_FORMAT_VALUE nicht in der Wertemenge der B3P_FORMAT_VALUES liegt.
B3P_TIME_FROM 10:00:05 Kleinste Uhrzeit Schranke für zu puffernden Nachrichten
B3P_TIME_TO 12:00:05 Größte Uhrzeit für zu puffernden Nachrichten
B3P_DATE_FROM 01:01:2020:11:15:00 Kleinster Zeitpunkt für zu puffernde Nachrichten. Datum gemäß B3P_DATE_PATTERN
B3P_DATE_TO 31:12:2020:11:55:00 Ältester Zeitpunkt für zu puffernde Nachrichten. Datum gemäß B3P_DATE_PATTERN
B3P_DATE_PATTERN yyyy-MM-dd HH:mm:ss (dd:MM:yyyy:HH:mm:ss) Hier kann man für die Properties B3P_DATE_FROM und B3P_DATE_TO ein Datums-Pattern angeben
WORKDAYS_WITHOUT_BUFFER 4;5;8 Hier können x-te Werktage im Monat”;”-separiert angegeben werden. Es werden dann Nachrichten dieser x-ten Werktage im Monat nicht gepuffert.
EXPECTED_CLEARING_STATE 111 Hier kann man einen Clearing Status angeben welcher bewirkt das Nachrichten, welche diesen Clearing Status haben durchgelassen werden
B3P_IGNORE_CC_IF_NOT_EXPECTED_CC true/false (false) Normalerweise buffert die BufferActionFirstTime nur einmal. Wenn die Nachricht neu gestartet wird, wird nicht mehr gebuffert. Wenn diese Eigenschaft aktiviert (true) ist, werden die Buffer-Kriterien immer geprüft, auch bei Neustart.
SEND_ERROR_MAIL true/false (true) Gesetzt auf ‘false’ so wird die letzte Action im Channel-Workflow (nach Ausführung der BufferAction) nicht mehr ausgeführt. Der Name ist dadurch entstanden, da dies ist üblicherweise die ErrorMailHandler Action ist.

Beispiele

Bei Angabe von B3P_TIME_FROM, B3P_TIME_TO, B3P_FORMAT_VALUE, B3P_FORMAT_VALUES, B3P_CLEARING_STATUS:

Es werden alle Nachrichten welche im Intervall [B3P_TIME_FROM, B3P_TIME_TO) liegen und für die gilt, dass das B3P_FORMAT_VALUE Element von B3P_FORMAT_VALUES ist, gepuffert und bekommen den Clearing Status B3P_CLEARING_STATUS.

Bei Angabe von B3P_FORMAT_VALUE, B3P_FORMAT_VALUES, B3P_EDI_ELEMENTS und USE_EXTENSION reicht ein erfülltes Kriterium für die Pufferung der Nachrichten (keine zeitliche Einschränkung zum Puffern).

Extension

Vor der Auswertung der Extension werden folgende zusätzliche Werte in den MessageContext geschrieben:

Format_type

Format_version

Format_partnercode

Format_sendercode

Format_attributes_key   (mit key Element von format.getAttributes().keySet().iterator() )

Diese Werte werden aus dem Format Objekt geholt.

B3P_OBJ_MESSAGE_direction

Dieser Wert wird aus dem Message Object geholt 0 ist für eingehende Nachrichten 1 ist für ausgehende Nachrichten.

Beispiel für die Extension:

equals(Format_type,UTILMD) OR equals(Format_type,MSCONS)  = buffer

equals(Format_type,ORDERS) = buffer

Nachrichten für welche der logische Ausdruck true ist und bei welchen rechts vom = buffer steht werden gepuffert. Im obigen Beispiel werden alle UTILMD und MSCONS Nachrichten gebuffert.

Die verwendbaren logischen Operatoren sind im Kapitel Logische Operatoren näher beschrieben. LINK

Logische Operatoren

MC steht im folgenden für MessageContext.

MCT steht für einen beliebigen Wert aus dem MessageContext. Z.B. Format_type, Format_version usw.

Term

Beschreibung

equals(MCT, String)

Prüft im MC, ob der Wert hinter MCT dem übergebenen String entspricht.

contains(MCT, String)

Prüft im MC, ob der Wert unter MCT den übergebenen String enthält.

matches(MCT, Regex)

Prüft im MC, ob der Wert unter MCT  dem übergebenen regulären Ausdruck genügt.

equalsEdi(EDIPATH, String)

Prüft ob der Wert, der aus der EDIPATH-Evaluierung hervorgeht, dem übergebenen String entspricht.

containsEdi(EDIPATH, String)

Prüft ob der Wert, der aus der EDIPATH-Evaluierung hervorgeht, dem übergebenen String enthält.

matchesEdi(EDIPATH, String)

Prüft ob der Wert, der aus der EDIPATH-Evaluierung hervorgeht, dem regulären Ausdruck genügt.

AND

Konjunktion

OR

Disjunktion

NOT

Negation

(,)

Klammerung

 

 

Beispiele

1)test@test.de](mailto:test@test.de) war

2)equalsEdi(UNB+5+0, 12454847): Überprüft, ob die UNB-Referenznummer 12454847

3)equalsEdi(UNB+3+0, 9900496000005) OR equalsEdi(UNB+3+0, 9900496000005) )

 

View Me   Edit Me