Auslesen und Setzen von Nachrichteneigenschaften mit der MessagePropertyAction

Kurzbeschreibung

Die MessagePropertyAction kann entweder Attribute aus dem Nachrichtenkontext in die Nachrichtentabelle schreiben oder umgekehrt Attribute aus der Nachrichtentabelle in den Nachrichtenkontext laden. Dadurch ist es möglich komplexere Abläufe zu erzeugen, in dem während der Verarbeitung einer Nachricht der Nachrichtenstatus einer anderen Nachricht verändert wird (wie bei GetReferenceNumber Action) oder die Nachrichtenverarbeitung von der Existenz oder dem Zustand einer zweiten Nachricht abhängig gemacht werden kann.

Da ein willkürliches Schreiben in der Nachrichtentabelle zu großen Problemen mit der Konsistenz der Daten führen könnte, sind die Anzahl der schreibbaren Felder eingeschränkt.

Die folgenden Nachrichtenfelder können geschrieben wie gelesen werden:

  • STATE
  • ACKNOWLEDGEMENT
  • ALTERNATIVE_ID
  • CHANNEL_ID
  • CLEARING_CODE

Auf die nachstehenden Nachrichtenfelder gibt es nur Lesezugriff:

  • CORRELATION_ID
  • REFERENCE_ID
  • FORMAT_IN
  • FORMAT_OUT
  • SENDER
  • PARTNER
  • VDEW_TYPE
  • VDEW_VERSION

Einrichtung

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

  • Klasse
    org.b2bbp.runtime.actions.managed.MessagePropertyAction
  • Typ
    JAVA

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

ActionEigenschaften (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
B3P_PROPERTY_ACTION GET, SET Die Einstellung bestimmt ob die Nachrichten-Information aus der Nachrichtentabelle in den Nachrichtenkontext eingelesen werden sollen (GET) oder aus dem Nachrichtenkontext in die Nachrichtentabelle geschrieben werden sollen (SET).
B3P_MESSAGE_FIELDS Semikolon separierte Liste von Nachrichtenfeldern der Länge 0..1000, die gelesen oder geschrieben werden sollen.
Beispiel: "ACKNOWLEDGEMENT;STATE".
Der Wert enthält eine Liste von Feldern, die gelesen oder geschrieben werden sollen. Die Liste von Feldern darf die folgenden Werte enthalten STATE, ACKNOWLEDGEMENT, ALTERNATIVE_ID, CHANNEL_ID, CLEARING_CODE, CORRELATION_ID, REFERENCE_ID, FORMAT_IN, FORMAT_OUT, SENDER, PARTNER, VDEW_TYPE, VDEW_VERSION. Zu beachten ist, dass nur die folgenden Fehlder für einen Schreibzugriff (SET) freigegebensind:STATE, ACKNOWLEDGEMENT, ALTERNATIVE_ID, CHANNEL_ID, CLEARING_CODE.
B3P_MESSAGE_VALUES Semikolon separierte Liste von Attributsnamen der Länge 1..1000, die gelesen oder geschrieben werden sollen.
Beispiel: "B3P_MY_ATTRIBUTE;B3P_OTHER_ATTRIBUTE".
B3P_PROERTY_ACTION=SET:
Dieser Wert enthält eine Liste vonWerten der gleichen Länge wie die Liste B3P_MESSAGE_FIELDS. Die angegebenen Werte werden in die Nachrichtentabelle unter den in B3P_MESSAGE_FIELDS angegebenen Feldern geschrieben.

B3P_PROERTY_ACTION=GET:
Dieser Wert enthält eine Liste vonAttributsnamen der gleichen Länge wie die Liste B3P_MESSAGE_FIELDS. Die unter den Attributsnamen gespeicherten Werte werden mit der Nachrichtentabelle synchronisiert.

Velocity Template-Ausdrücke sind erlaubt.

ActionEigenschaften (Optional)

Hier aufgeführte Eigenschaften werden automatisch beim ersten Ausführen der Action mit den Standardeinstellungen initialisiert, falls sie nicht vom Benutzer gesetzt wurden.

Name der Eigenschaft erlaubte Werte Beschreibung
B3P_SEARCH_DATE_FROM Datum im Format "dd-MM-yyyy [HH:mm:ss]" (Default: "01-01-1970 00:00:00"),
Beispiel: "01-04-2015 13:01:01" oder "09-08-2015".
Diese Eigenschaft gibt den Start für den Zeitbereich an, innerhalb dessen nach einer Nachricht gesucht werden soll. Eine sinnvolle Eingrenzung des Zeitbereiches kann die Performance der Action steigern.Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_DATE_TO Datum im Format "dd-MM-yyyy [HH:mm:ss]" (Default: "31-12-2030 00:00:00"),
Beispiel: "01-04-2015 13:01:01" oder "09-08-2015".
Diese Eigenschaft gibt das Endes des Zeitbereiches an, innerhalb dessen nach einer Nachricht gesucht werden soll. Eine sinnvolle Eingrenzung des Zeitbereiches kann die Performance der Action steigern.Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_DIRECTION IN, OUT, ALL (default) Diese Eigenschaft filtert Nachrichten danach ob sie eingehend (IN) oder ausgehend (OUT) sind. Die Standardeinstellung (ALL) erlaubt beide Richtungen. Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_ALTERNATIVE_ID Zeichenkette der Länge 0..100 (default: ""). Diese Eigenschaft (falls nicht leer) filtert Nachrichten nach einer alternativen Nachrichten Id (oder Idoc-Nummer), die dem Wert der Eigenschaft entspricht. Ist der Wert leer, wird die Einstellung ignoriert.Platzhaltersuchen sind mit dem Platzhalter '*' möglich. Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_MESSAGE_ID Zeichenkette der Länge 0..100 (default: ""). Diese Eigenschaft (falls nicht leer) filtert Nachrichten nach einer Nachrichten Id, die dem Wert der Eigenschaft entspricht. Ist der Wert leer, wird die Einstellung ignoriert.Platzhaltersuchen sind mit dem Platzhalter '*' möglich. Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_PARTNER Eine Liste von durch Semikolon separierten System-Ids der Länge 1..1000 (default: ""). Als voranzustellendes Escape-Zeichen für ';' oder '\' in System-Ids dient ein Backslash ('\').
Beispiel: "123456789;987654321".
Diese Eigenschaft (falls nicht leer) filtert Nachrichten nach einer Marktppartner Id, die dem Wert der Eigenschaft entspricht. Ist der Wert leer, wird die Einstellung ignoriert. Mehrere System-Ids werden durchSemikolon getrennt.Platzhaltersuchen sind mit dem Platzhalter '*' möglich.Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_SENDER Zeichenkette der Länge 0..100 (default: ""). Diese Eigenschaft (falls nicht leer) filtert Nachrichten nach einer System Id, die dem Wert der Eigenschaft entspricht. Ist der Wert leer, wird die Einstellung ignoriert.Platzhaltersuchen sind mit dem Platzhalter '*' möglich. Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_REFERENCE_ID Zeichenkette der Länge 0..50 (default: ""). Diese Eigenschaft (falls nicht leer) filtert Nachrichten nach einer Referenznummer (in der Datenbank 'CORRELATIONID'), die dem Wert der Eigenschaft entspricht. Ist der Wert leer, wird die Einstellung ignoriert.Platzhaltersuchen sind mit dem Platzhalter '*' möglich. Velocity Template-Ausdrücke sind erlaubt.
B3P_SEARCH_TYPE Zeichenkette der Länge 0..20 (default: ""). Falls nicht leer, wird in der Nachrichtentabelle auf diejenigen Nachrichten gefiltert, deren VDEW Typ dem hier angegebenen Typ entspricht. Falls leer wird dieser Filter ignoriert.Velocity Template-Ausdrücke sind erlaubt.
B3P_REQUIRE_MATCH true (default), false Die Eigenschaft gibt an, ob die Action ohne Effekt bleiben soll, wenn der angegebene Nachrichtenfilter keine Nachricht findet oder ob die Action einen Fehler zurückliefern soll. Die Standardeinstellung (true) führt zu einem Fehler, wenn die Action keine passende Nachricht findet.

ActionEigenschaften (Experte)

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

Name der Eigenschaft erlaubte Werte Beschreibung

B3P_PUBLISH_STATE_CHANGE

true,false(default) Es wird ein Event geworfen, welches die Änderung an der Message veröffentlicht. Wird für die Statussyncronisation verwendet.
B3P_ALLOW_MULTIPLE_MATCHES true, false (default) Diese Eigenschaft gibt an, ob die Aktion auf alle gefundenen Nachrichten oder nur auf eine gefundene Nachricht angewandt wird. Sie kann nur gesetzt werden, wenn mindestens eine der Eigenschaften B3P_SEARCH_REFERENCE_ID, B3P_SEARCH_MESSAGE_ID und B3P_SEARCH_ALTERNATIVE_ID gesetzt ist. Außer in Ausnahmefällen sollte diese Eigenschaft nicht auf true gesetzt werden. Falls die Eigenschaft auf false gesetzt ist führt eine Suche mit mehreren passenden Nachrichten im Ergebnis zu einem Fehler.
Im Fall dass aus der Nachrichtentabelle gelesen wird (B3P_PROPERTY_ACTION = GET) und mehrere passende Nachrichten gefunden werden, werden die gelesenen Eigenschaften durch Zeilenumbrüche getrennt verkettet.
View Me   Edit Me