Action Decorator

Übersicht

Mit den Action Decorators ist es möglich gewünschte Actions zu erweitern.

Einrichtung

In der Action welche via Decorator erweitert werden soll muss folgende Eigenschaft gesetzt werden:

Eigenschaft Wert
ACTION_DECORATORS Wert des Types zb. StopperAction. Mehere Decoratoren sollen mit ; getrennt werden

Die Eigenschaft ACTION_DECORATORS muss den Nachrichtenkontext nicht überschreiben.

Typen

Es gibt verschiedene Typen von Decorators mit verschiedenen Funktionalitäten.

Hinweis: Die Decorator betreffen nicht die Ausführung von Services, die beispielsweise durch das Setzen von Action-Eigenschaften aufgerufen werden (wie in der FileWriterAction über B3P_USED_SERVICE_ID). Diese werden über einen separaten Mechanismus gesteuert.

Stopper Action

Wert = StopperAction Stopt bei Condition = true den weiteren Workflow der Nachricht

Weitere Eigenschaften

Eigenschaft Beispiel Wert Beschreibung Default (Wenn vorhanden)
CONDITION ${equals(a,b)} Dynamischer Ausdruck. Wenn der Parameter vorhanden ist, wird dieser ausgewertet. Falls der Parameter true dann stoppe Workflowist wird die Verarbeitung unterbrochen, ansonsten nicht. Wenn der Parameter nicht vorhanden ist, wird die Verarbeitung immer unterbrochen. Die Verarbeitung wird immer abgebrochen
B3P_TARGET_VS_STATE MAN Setzt den Verarbeitungsstatus nach erfolgreichem Stop. Wenn die Action eine Exception wirft, wird der Parameter ignoriert. SUC
B3P_STOP_ALWAYS true Unterbricht den Workflow immer false

Evaluate After Action Properties

Wert = EvaluateAfterActionProperties

Verzögerte Auswertung von Actionproperties

Durch setzten der Global Property oder lokal Action Propery ACTION_DECORATORS auf „EvaluateAfterActionProperties“ wird folgendes verhalten aktiviert: Alle Actionproperties die mit dem Prefix „!@“ beginnen werden am Anfang der Action nicht ausgewertet. Dynamische Ausdrücke werden nicht ausgewertet und der Wert wird nicht in den MessageContext geschrieben. Nachdem die Action durchlaufen wurde, werden die Actionproperties die mit dem Prefix „!@“ beginnen ausgewertet und die Werte werden in den MessageContext geschrieben, falls konfiguriert.

Conditional Execute

Wert = ConditionalExecute

Eigenschaft Beispiel Wert Beschreibung Default (Wenn vorhanden)
EXECUTE_ACTION ${equals(a,b)} Wenn true dann führe Action aus -

Die Eigenschaft EXECUTE_ACTION muss den Nachrichtenkontext zur Laufzeit überschreiben.

Exception Catcher

Wert = ExceptionCatcher

Lässt die Nachrichten weiterlaufen, auch wenn bei dieser Action ein Fehler auftritt, der normalerweise zum Stopp der Nachrichtenverarbeitung geführt hätte.

Execute Once

Wert = ExecuteOnce

Mithilfe des ExecuteOnce Decorators kann dafür gesorgt werden, dass eine Action nur einmal pro Nachricht und Channel ausgeführt wird. Das heißt bei einem Neustart der Nachricht wird die Action nicht nochmal ausgeführt.

View Me   Edit Me