Ereignisse und Skripte
Für serverseitige Ereignisse im Ablauf von Prozessen werden Skripte implementiert. Wenn ein Ereignis ausgelöst wird, dann wird das entsprechende Skript ausgeführt. Diese Skript-API kann nur in diesen Ereignisskripten verwendet werden.
Die beiden Hauptarten von serverseitigen Prozess-Ereignissen sind Bedingungsereignisse und allgemeine Ereignisse.
Bei Bedingungen muss jedes Ereignisskript einen booleschen Wert zurückgeben.
Allgemeine Ereignisse benötigen keinen Rückgabewert.
Neben dem folgenden Überblick finden Sie detaillierte Informationen in der API-Dokumentation, Bestandteil der Installation und über folgende Adresse erreichbar:
<core-service-IP>:<Port>/rest-ws/#PAGE:bpm_script_api
Allgemeine Ereignisse
- ActivityCreateCondition: Das entsprechende Startbedingungs-Skript muss einen booleschen Wert zurückgeben. Wenn true, erstellt die Prozess-Engine die Aufgabe für die Prozessinstanz, wenn false, wird die Aktivität nicht erstellt und es werden keine nachfolgenden Transitionen und Aktivitäten auf diesem Prozesspfad erstellt.
- BeforeStartActivity: Nachdem eine Aufgabe erstellt wurde, wird dieses Ereignis ausgelöst. Wenn die Aktivität vom Typ 'Arbeitsschritt' ist, hat noch keine Benutzerinteraktion stattgefunden. Wenn die Aktivität vom Typ 'Container' ist, ist noch kein Containerinhalt ausgeführt worden.
- BeforeEndActivity: Nachdem eine Aufgabe erfolgreich weitergeleitet wurde, wird dieses Ereignis ausgelöst. Bei Arbeitsschritt-Aktivitäten bedeutet dies, dass alle Benutzerinteraktionen abgeschlossen sind. Bei Container-Aktivitäten ist der gesamte Container-Inhalt abgeschlossen.
Transitionsereignisse
Eine Transition ist ein Sequenzfluss zwischen zwei Aktivitäten. Es ist möglich, eine Skriptbedingung zu definieren, die bestimmt, ob diese Transition ausgeführt werden soll. Wenn eine abgeschlossene Aktivität eine ausgehende Transition hat, wird das Transitionsereignis ausgelöst. Da das Transitionsereignis ein bedingtes Ereignis ist, muss es einen booleschen Wert zurückgeben. Wenn true, wird dieser Pfad ausgeführt und die Aktivität am Ende der Transition erstellt. Wenn false, wird die Aktivität nicht erstellt und es werden keine nachfolgenden Transitionen und Aktivitäten auf diesem Prozesspfad erstellt.
Fristen / Verzögerungen
Wenn im Prozessmodell Zeiträume definiert sind, sind mehr zusätzliche Ereignisse verfügbar:
- DeadlineExpired: Unterstützung durch Fristen. Wenn eine Frist abgelaufen ist, wird dieses Ereignis ausgelöst.
- DelayFinished: Unterstützung durch Verzögerungen. Wenn eine Verzögerung beendet ist, wird dieses Ereignis ausgelöst.
Spezifische Aktivitätsereignisarten
Container
Der Inhalt des Containers wird ausgeführt, nachdem das Skript ActivityCreateCondition true zurückgegeben hat und nachdem das Ereignis BeforeStartActivity ausgelöst wurde. Beim Eintritt in den Container wird ein Scope erstellt. Wenn alle enthaltenen und erstellten Aktivitäten beendet sind, wird dieser Bereich abgeschlossen
- SubscopeCompleted: Wenn alle enthaltenen und erstellten Aktivitäten abgeschlossen sind, wird dieses Ereignis ausgelöst.
Schleife
Das Ereignis 'Schleifenbedingung' wird bei jeder Iteration ausgelöst. Es hängt vom Schleifentyp ab, zu welchem Zeitpunkt das Ereignis ausgelöst wird: Eine Schleifenbedingung zur Überprüfung vor der Ausführung löst das Ereignis aus, bevor der Container betreten wird. Bei einer Schleifenbedingung zur Überprüfung nach der Ausführung wird das Ereignis ausgelöst, nachdem der Inhalt des Containers ausgeführt wurde und somit der Teilbereich abgeschlossen wurde. Für diese Aktivitätsart werden die Ereignisse SubscopeCreated und SubscopeCompleted für jede Schleifeniteration ausgelöst. Das Skript für die Schleifenbedingung wird verifiziert, nachdem das Skript ActivityCreateCondition true zurückgegeben hat und das Ereignis BeforeStartActivity ausgelöst wurde.
![]() |
![]() |
Mehrfachausführungen (MIByData, MIByNumber, MIByPerformer)
Für diese Aktivitätsart werden die Ereignisse SubscopeCreated und SubscopeCompleted mit jeder ausgeführten Instanz des Containerinhalts ausgelöst.
Route
Für diese Aktivitätsart reicht es aus, ein Skript entweder für BeforeStartActivity oder AfterStartActivity zu implementieren.
Der Grund: Diese Ereignisse werden nacheinander ausgelöst, ohne dass dazwischen eine Aktivität stattfindet.
Arbeitsschritt
Die Arbeitsschritt-Aktivität bietet die folgenden Ereignistypen:
- WorkitemPersonalized: Wenn ein Element im Eingangskorb personalisiert wird, wird dieses Ereignis ausgelöst.
- WorkitemCancled: Wenn ein Benutzer ein Element aus dem Eingangskorb zurückgibt, wird dieses Ereignis ausgelöst.
- WorkitemSaved: Wenn ein Benutzer die Daten des Elements im Eingangskorb speichert oder weiterleitet, wird dieses Ereignis ausgelöst.
Diese Ereignisse hängen von den Aktionen des Benutzers im Eingangskorb ab. Sie können also mehrfach ausgelöst werden. Wenn ein Benutzer zum Beispiel ein Formular zehn Mal speichert, wird das Ereignis WorkitemSaved ebenfalls zehn Mal ausgelöst.
Der Umfang der Benutzerinteraktion beginnt, nachdem das Skript ActivityCreateCondition true zurückgegeben hat und die BeforeStartActivity ausgelöst wurde. Ein Arbeitsschritt in diesem Zustand erzeugt je nach Konfiguration Elemente im Eingangskorb.