Event-Trigger
Einführung in Event-Trigger
Event-Trigger sind Interrupts, die signalisieren, dass ein bestimmtes Ereignis für einen Vorgang eingetreten ist. Sie hängen an Bereichen. Ein Bereich kann mehrere Event-Trigger haben. Event-Trigger können auf jegliche Arten von Änderungen reagieren, zum Beispiel Änderungen an den Vorgangsdaten, des Bearbeiters oder der Relationen des Vorgangs. Die Aktionen, die ausgeführt werden sollen, wenn das Ereignis eintritt, müssen im Skript einer mit dem Trigger verbundenen automatischen Aktivität definiert werden.
Beispiele für die Verwendung von Event-Triggern:
-
Setzen eines Overlays, wenn der Kunde oder ein Benutzer, der dem Vorgang nicht zugewiesen ist, einen Kommentar hinzufügt.
-
Neuberechnung eines Feldwerts, der auf den Werten anderer Felder beruht, wenn deren Werte geändert werden.
-
Automatisches Weiterbewegen eines Vorgangs im Geschäftsprozess, wenn der Wert eines bestimmten Feldes geändert wurde.
Prozesslogik mit Event-Triggern
Für Event-Trigger gilt die folgende allgemeine Logik:
-
Das Ereignis, das im Event-Trigger definiert wurde, tritt für einen Vorgang ein, der sich in dem Bereich befindet, an dem der Trigger hängt.
-
Der Trigger feuert, d. h. er signalisiert, dass das Ereignis eingetreten ist.
-
Das Skript, das im Trigger definiert wurde, wird ausgeführt. Wenn es true zurückgibt, wird die folgende automatische Aktivität oder der Entscheidungsknoten mit den beiden folgenden automatischen Aktivitäten ausgeführt.
Wenn eine Änderung mehr als einen Vorgangsparameter betrifft und für diese Parameter verschiedene Event-Trigger im Bereich definiert wurden, feuern die Event-Trigger in der Reihenfolge, in der sie am Bereich hängen, von links nach rechts. Falls der Vorgang durch eine automatische Aktivität den Bereich verlässt, an dem die Trigger hängen, z. B. indem er über einen Aussprungknoten in eine andere Queue verschoben wird, feuern die restlichen Trigger nicht mehr.
Wenn Event-Trigger sich in hierarchischen Bereichen befinden und auf dieselbe Änderung reagieren, wird das Ereignis vom Trigger im innersten Bereich behandelt. Falls der Trigger im innersten Bereich nicht auf alle eingetretenen Ereignisse reagiert, werden die Ereignisse, die noch nicht behandelt wurden, an den nächst äußeren Bereich weitergeleitet.
Best Practice:
-
Hängen Sie den Event-Trigger an den innerst möglichen Bereich, um unnötige Trigger-Ausführungen zu vermeiden.
-
Wenn eine Aktivität bestimmte Vorgangsdaten ändert, und ein Trigger, der auf diese Änderungen reagiert, nicht ausgeführt werden soll, dann platzieren Sie die Aktivität außerhalb des Bereiches, in dem sich der Trigger befindet.
-
Die automatische Aktivität, die auf einen Event-Trigger folgt, sollte keine Vorgangsparameter ändern, auf die der Trigger reagiert. Dies würde zu einer Endlosschleife führen, da der Trigger nach Ausführung der Aktivität erneut feuern würde. Wenn Änderungen an Vorgangsparametern, auf die ein Trigger reagiert, erforderlich sind, dann platzieren Sie die Aktivität außerhalb des Bereiches, in dem sich der Trigger befindet.
Verfügbare Einstellungen für Event-Trigger
Es sind folgende Einstellungen für Event-Trigger verfügbar:
-
Pfad:
Schreibgeschützt. Der Pfad zum Event-Trigger im Workflow. Zum Referenzieren des Triggers in Skripten verwendet. -
Queue:
Optional. Wenn diese Checkbox markiert ist, feuert der Trigger, wenn der Vorgang in eine andere Queue verschoben wird. Dabei ist nicht relevant, ob es sich um eine manuelle Aktion durch einen Benutzer oder um eine automatisch vom System durchgeführte Aktion handelt. -
Bearbeiter:
Optional. Wenn diese Checkbox markiert ist, reagiert der Trigger auf den Wechsel des zugewiesenen Bearbeiters des Vorgangs. Dazu gehört die Zuweisung eines zuvor noch nicht zugewiesenen Vorgangs an einen Benutzer, die Zuweisung eines Vorgangs an einen anderen Benutzer und das Entfernen eines Benutzers vom Vorgang. -
Vorgangsthema:
Optional. Wenn diese Checkbox markiert ist, feuert der Trigger, wenn das Thema des Vorgangs geändert wird. -
Kommunikation:
Optional. Wenn diese Checkbox markiert ist, reagiert der Trigger auf Änderungen der Kommunikation im Vorgangsprotokoll, d. h. falls ein neuer Kommentar im Web Client oder in CM/Track hinzugefügt wurde, eine E-Mail gesendet wurde oder eingetroffen ist oder ein Attachment hinzugefügt wurde. -
Beteiligte:
Optional. Wenn diese Checkbox markiert ist, reagiert der Trigger auf Änderungen der Beteiligten. Dazu gehört das Hinzufügen von Beteiligten zu einem Vorgang oder das Entfernen von Beteiligten von einem Vorgang. -
Verknüpfte Ressource:
Optional. Wenn diese Checkbox markiert ist, reagiert der Trigger auf Änderungen der verknüpften Ressourcen, d. h. falls eine Ressourcenrelation erstellt, entfernt oder geändert wurde. -
Verknüpfter Vorgang:
Optional. Wenn diese Checkbox markiert ist, reagiert der Trigger auf Änderungen der verknüpften Vorgänge, d. h. falls eine Vorgangsrelation erstellt oder entfernt wurde. Der Trigger feuert jeweils für den Quell- und den Zielvorgang der Relation. -
Zeitbuchung:
Optional. Wenn diese Checkbox markiert ist, feuert der Trigger, wenn eine neue Zeitbuchung hinzugefügt wurde. -
Vorgangsfelder:
Optional. Der Trigger reagiert auf Änderungen der ausgewählten Vorgangsfelder. Sie können ein oder mehrere Felder aus verschiedenen Feldgruppen wählen. Sie können auch alle Felder einer Vorgangsfeldgruppe auswählen. -
Skript:
Optional. Bestimmt, ob die folgende automatische Aktivität ausgeführt wird. Das Skript wird ausgeführt, wenn der Trigger gefeuert hat. Es muss true (die Aktivität wird ausgeführt) oder false (die Aktivität wird nicht ausgeführt) zurückgeben. Auf diese Weise können Sie genauer steuern, wann die Aktivität ausgeführt werden soll, z. B. um nur dann zu reagieren, wenn ein bestimmter Wert für ein Vorgangsfeld gesetzt wird.Best Practice
Verwenden Sie dieses Skript nur, um zu bestimmen, ob eine automatische Aktivität ausgeführt werden soll oder nicht. Alle anderen Aktionen sollten in dem Skript der automatischen Aktivität ausgeführt werden, die mit dem Trigger verbunden ist.
Programmieren mit Event-Triggern
Sie können ein Objekt des Typs TicketChanges abrufen, das die am Vorgang vorgenommenen Änderungen enthält:
workflowApi.getTicketUpdateEvent().getModifications()