Start-Ereignisse und Event-Variablen
Start-Ereignisse
Zum Start von Prozessen steht Ihnen im technischen Modell ein bedingtes Start-Ereignis zur Verfügung, das durch folgende Angaben definiert wird:
Ereignis: Das Ereignis, welches den Prozess startet.
Entität: Der Entitätsname falls gewünscht. Das Ereignis wird dann an diese Entität gebunden.
Bedingung: Ein Groovy-Skript, welches als Ergebnis
truebzw.falseliefern muss.
Im Folgenden finden Sie eine Übersicht über alle Start-Ereignisse und ihre jeweiligen Besonderheiten und Parameter.
Die Parameter eventName, entityName usw. sind Variablen, die im Script des Start-Ereignisses und allen Skripten des Prozesses zur Verfügung stehen.
// eventName ist vom Typ String und kann Werte aus der Tabelle annehmen
if(ScriptUtils.equal(eventName, "BusinessEntityBeforeCreateEvent", "BusinessEntityBeforeChangeEvent"))
{
...
}
In einem Prozess können auch mehrere Prozess-Startereignisse definiert werden. Thematisch zusammenhängende Prozesse z.B. "Kopieren (vorher)" und "Kopieren (nachher)" können in einem Prozess zusammen gefasst werden.
Bei der Neuanlage von mehreren Startpunkten ist darauf zu achten, dass ein Ereignis nur ein Mal verwendet werden darf. Das Ereignis "Immer ausführen" sollte nicht mehr verwendet werden.
Öffnet Bild im Vollbildmodus

Das Modell wurde noch präziser, da jedem Ereignis ein eigener Nachverarbeitungsschritt zugeordnet werden kann.
Alle initial verfügbaren Parameter stehen nur am Anfang des Prozesses zur Verfügung und werden bei der ersten Transaktionsunterbrechung gelöscht. Jedes Warte-Ereignis oder jede Benutzeraktion führt zur Transaktionstrennung. Ein Workspace ist immer an eine Session gebunden. Eine Transaktionsunterbrechung hat meist eine neue Session zur Folge, bei Bedarf muss der Workspace hier durch Suche neu geladen werden.
Neuanlegen (vorher)
✅ Entitätsauswahl nötig
Dieses Ereignis wird beispielsweise dann ausgelöst, wenn ein Anwender im System die Daten eines neuen Datensatzes in die Maske eingegeben hat und auf Speichern geklickt hat.
Der Datensatz ist jetzt noch unterwegs in die Datenbank, andere Systemteile können ihn noch nicht sehen.
Auch hat er noch keinen Primärschlüssel. Man kann daher beispielsweise keine anderen Datensätze mit ihm verknüpfen.
Die Neuanlage ist somit noch nicht ganz abgeschlossen.
Nutzen: der BPM-Prozess kann hier alle Felder des Datensatzes weiter verändern.
Beispielsweise kann er aus zwei Feldern ein drittes berechnen.
Der Datensatz wird am Ende des Prozesses automatisch gespeichert. Man muss also nicht saveEntry dazu aufrufen.
Andere Folgeaktionen sollten erst im Ereignis Neuanlegen (nachher) erfolgen.
Parameter
eventName:
BusinessEntityBeforeCreateEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container: Der aktuelle Datensatz (Datentyp:
IContainer)container_New: identisch zu Variable container
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
Neuanlegen (nachher)
✅ Entitätsauswahl nötig
Nach der Neuanlage können weitere abhängige Daten erstellt oder verknüpft werden. Der Satz steht nun mit Primärschlüssel zur Verfügung und wurde persistiert.
Parameter
eventName:
BusinessEntityCreateEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container: Der aktuelle Datensatz (Datentyp:
IContainer)container_New: identisch zu Variable container
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
Speichern (vorher)
✅ Entitätsauswahl nötig
Der Datensatz ist noch unterwegs in die Datenbank.
Nutzen: der BPM-Prozess kann hier alle Felder des Datensatzes (container_New) weiter verändern.
Beispielsweise kann er aus zwei Feldern ein drittes berechnen.
Änderungen von Feldwerten erkennt man dabei durch Vergleich container_New/container_Old.
Andere Folgeaktionen sollten erst im Ereignis Speichern (nachher) erfolgen.
container_New wird am Ende des Prozesses automatisch gespeichert. Man muss also nicht saveEntry dazu aufrufen.
Dieses Ereignis wird NICHT durchlaufen, wenn der Datensatz über den Zuordnungsbrowser zugeordnet oder weggeordnet wurde, selbst wenn durch diesen Vorgang ein Nachschlagefeld verändert wurde. Man muss daher zusätzlich auf die Verknüpfungs-Ereignisse reagieren.
Parameter
eventName:
BusinessEntityBeforeChangeEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container_Old: Der aktuelle Datensatz mit den Werten vor der Änderung (Datentyp:
IContainer)container_New: Der aktuelle Datensatz mit den geänderten Werten (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
positionInWorkSpace: Die Position des Satzes im Datenbereich
Speichern (nachher)
✅ Entitätsauswahl nötig
Der Datensatz ist nun gespeichert.
Nutzen: der Datensatz selbst sollte an dieser Stelle nicht mehr verändert werden (dafür ist Speichern (vorher) geeignet). Man kann Folgeaktionen durchführen, etwa abhängige Daten erstellen oder bearbeiten, oder eine E-Mail senden. Änderungen von Feldwerten erkennt man dabei durch Vergleich container_New/container_Old.
Dieses Ereignis wird NICHT durchlaufen, wenn der Datensatz über den Zuordnungsbrowser zugeordnet oder weggeordnet wurde, selbst wenn durch diesen Vorgang ein Nachschlagefeld verändert wurde. Man muss daher zusätzlich auf die Verknüpfungs-Ereignisse reagieren.
Permanente Parameter
eventName:
BusinessEntityChangeEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container_Old: Der aktuelle Datensatz mit den Werten vor der Änderung (Datentyp:
IContainer)container_New: Der aktuelle Datensatz mit den geänderten Werten (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
positionInWorkSpace: Die Position des Satzes im Datenbereich
Löschen
✅ Entitätsauswahl nötig
Der Datensatz wird inaktiv gesetzt. Zum Zeitpunkt des Ereignisses ist der Datensatz noch aktiv.
Permanente Parameter
eventName:
BusinessEntityRemoveEvententityName: Der Entitätsname
relationName
:Der interne Relationsname oder leermasterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container: Der zu löschende Datensatz (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
positionInWorkSpace: Die Position des Satzes im Datenbereich
Kopieren (vorher)
✅ Entitätsauswahl nötig
Datensatz wird kopiert, zum Zeitpunkt des Events ist der kopierte Datensatz noch nicht gespeichert und kann vor dem Kopieren manipuliert werden.
Permanente Parameter
eventName:
BusinessEntityBeforeCopyEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container_Old: Der Ursprungsdatensatz (Datentyp:
IContainer)container_New: Die Kopie zum Ändern von Daten (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
positionInWorkSpace: Die Position des Satzes im Datenbereich
Kopieren (nachher)
✅ Entitätsauswahl nötig
Nach dem Kopieren können weitere abhängige Daten erstellt oder verknüpft werden. Der Satz steht nun mit Primärschlüssel zur Verfügung und wurde persistiert.
Permanente Parameter
eventName:
BusinessEntityCopyEvententityName: Der Entitätsname
relationName: Der interne Relationsname oder leer
masterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
container_Old: Der Ursprungsdatensatz (Datentyp:
IContainer)container_New: Die Kopie zum Ändern von Daten (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
positionInWorkSpace: Die Position des Satzes im Datenbereich
Speichern von Positionen (nachher)
✅ Entitätsauswahl nötig
Der Prozess wird beim Speichern von Angebots- oder Vertragspositionen gestartet.
Permanente Parameter
eventName:
BusinessItemWorkSpaceUpdateEvententityName: Die Positions-Entität
relationName
:Der interne Relationsname oder leermasterTable: Der interne Name der übergeordneten Entität oder leer
masterPk: Der Primärschlüssel der übergeordneten Entität oder leer
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)
Zuordnen (vorher)
❌ keine Entitätsauswahl nötig
Alle Daten die im Zuordnungsbrowser für das Zuordnen und das Entfernen der Zuordnung ausgewählt wurden, bevor die Operation ausgeführt wird.
Permanente Parameter
eventName:
BusinessBeforeAddRemoveLinkEventrelationName: Der interne Relationsname
masterTable: Der interne Name der Hauptentität.
masterPk: Der Primärschlüssel der Hauptentität.
slaveTable: Der interne Name der abhängigen Entität.
containers_Add: Hinzugefügte abhängige Datensätze (Datentyp:
IContainer[]).containers_Remove: Datensätze die nicht mehr mit dem Hauptdatensatz verknüpft sein sollen (Datentyp:
IContainer[]).
Initial verfügbare Parameter
workSpace: Der abhängige Datensatz-Container (Datentyp:
IScriptWorkSpace)
Zuordnen (nachher)
❌ keine Entitätsauswahl nötig
Alle Daten die im Zuordnungsbrowser für das Zuordnen und das Entfernen der Zuordnung ausgewählt wurden. Die Änderungen wurden in der Datenbank persistiert.
Permanente Parameter
eventName:
BusinessAddRemoveLinkEventrelationName: Der interne Relationsname
masterTable: Der interne Name der Hauptentität.
masterPk: Der Primärschlüssel der Hauptentität.
slaveTable: Der interne Name der abhängigen Entität.
containers_Add: Hinzugefügte abhängige Datensätze (Datentyp:
IContainer[]).containers_Remove: Datensätze die nicht mehr mit dem Hauptdatensatz verknüpft sind (Datentyp:
IContainer[]).
Initial verfügbare Parameter
workSpace: Der abhängige Datensatz-Container (Datentyp:
IScriptWorkSpace)
Link erzeugen
❌ keine Entitätsauswahl nötig
Eine Verknüpfung zwischen zwei Datensätzen wird erzeugt. Im Gegensatz zu Zuordnen wird dieses Ereignis für jeden Link einzeln ausgelöst, Zuordnen für die gesamte Operation.
Permanente Parameter
eventName:
BusinessInsertLinkEventrelationName: Der interne Relationsname.
masterTable: Der interne Name der Hauptentität.
masterPk: Der Primärschlüssel der Hauptentität.
slaveTable: Der interne Name der abhängigen Entität.
slavePk: Der Primärschlüssel der abhängigen Entität.
Initial verfügbare Parameter
relationAttributesMap: Feldwerte der Attributierten-Beziehung. Zugriff über den voll qualifizierten Feldnamen.
workSpaceConfig: Spezielle Einstellungen zum Workspace (nur intern)
Link löschen
❌ keine Entitätsauswahl nötig
Das Entfernen einer Verknüpfung zwischen zwei Datensätzen. Im Gegensatz zu Zuordnen wird dieses Ereignis wird für jeden Link einzeln gefeuert, Zuordnen für die gesamte Operation.
Permanente Parameter
eventName:
BusinessDeleteLinkEventrelationName: Der interne Relationsname
masterTable: Der interne Name der Hauptentität.
masterPk: Der Primärschlüssel der Hauptentität.
slaveTable: Der interne Name der abhängigen Entität.
slavePk: Der Primärschlüssel der abhängigen Entität.
Initial verfügbare Parameter
relationAttributesMap: Feldwerte der Attributierten-Beziehung. Zugriff über den voll qualifizierten Feldnamen.
E-Mail-Import
✅ Entitätsauswahl nötig
Eine Aktivität wird durch den Mail-Import/Abgleich angelegt oder aktualisiert.
Permanente Parameter
eventName:
ActivityImportEventcontainer: Der aus dem Mailimport generierte Aktivität -Datensatz (Datentyp:
IContainer)NewMail:
truefür einen neuen Datensatz,falsefür die Aktualisierung.Sender: Die E-Mail-Adresse des Senders.
Recipients: Eine Liste von E-Mail-Adressen der Empfänger.
CCRecipients: Eine Liste von E-Mail-Adressen der CC-Empfänger.
MailConfigId: Der Matchcode der E-Mail-Konfiguration.
Datensatz-Rechteänderung
✅ Entitätsauswahl nötig
Die Rechte eines Datensatzes wurden geändert.
Permanente Parameter
eventName:
BusinessEntityRightChangeEventcontainer: Der geänderte Datensatz (Datentyp:
IContainer)rightIdentifier: Die ID der neuen Rechtevorlage
Datensatz-Mandantenänderung
✅ Entitätsauswahl nötig
Die Mandantenzuordnung eines Datensatzes wurden geändert.
Permanente Parameter
eventName:
BusinessEntityUnitChangeEventcontainer: Der geänderte Datensatz (Datentyp:
IContainer). Zugriff mitUnitUtils.getUnits(container).
Maskenskript
Entitätsauswahl optional
Prozess wird per Maskenskript in einer Entitätsmaske (z.B. via Schalter) zum aktuell geöffneten Datensatz gestartet.
Permanente Parameter
eventName:
CLIENT_EVENTProcessID: Id des gestarten Prozesses
container: Der geöffnete Datensatz (Datentyp:
IContainer)
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)positionInWorkSpace: Die Position des Satzes im Datenbereich
Weitere Parameter können als optionale Übergabeparameter in einer HashMap<String, Object> dem Prozess übergeben werden und sollten in der Startbedingung auf deren Existenz (ProcessUtils.isVariablesSet(key)) geprüft werden. Der Zugriff erfolgt über ProcessUtils.getVariable(key).
Wenn im Start-Ereignis auf eine Entität eingeschränkt wurde, so startet der Prozess nur aus dem Maskenskript der betroffenen Entität. Ist die Auswahl leer, so kann der Prozess aus jeder beliebigen Entität gestartet werden. Der Administrator hat dafür Sorge zu tragen, dass er im Prozess auf verschiedenen Entitäten reagiert.
Rückgabe
Im Start-Ereignis können Rückgabe-Variablen definiert werden, die im Maskenskript bei synchronem Aufruf, weiterverarbeitet werden können. Die Variablen sind mit den Daten gefüllt, die im Prozess bis zum ersten Wartezustand eingefügt wurden.
Aktionsbox
Entitätsauswahl optional
Prozess wird aus der Aktionsbox gestartet und enthält alle selektierten Datensätze aus der Listenansicht
Permanente Parameter
eventName:
ACTION_BOXProcessID: Id des gestarten Prozesses
entityName: Der Name der Entität
containers: Die Liste der selektierten Datensätze vom Typ
IContainer
Initial verfügbare Parameter
workSpace: Der aktuelle Datenbereich (Datentyp:
IScriptWorkSpace)
Wenn im Start-Ereignis auf eine Entität eingeschränkt wurde, so kann der Prozess nur in der Aktionsbox zur jeweiligen Entität ausgewählt werden. Ist die Auswahl leer, so kann der Prozess aus jeder beliebigen Entität gestartet werden. Der Administrator hat dafür Sorge zu tragen, dass er im Prozess auf verschiedenen Entitäten reagiert.
Anwender-Start (myCRM)
❌ Entitätsauswahl nicht möglich
Der Prozess wird aus myCRM heraus gestartet. Alle verfügbaren Prozesse werden in der Systemlasche Prozesse angezeigt und können als Favoriten in myCRM abgelegt werden. Neue Prozesse stehen erst nach der Client-Neuanmeldung zur Verfügung.
Permanente Parameter
eventName:
MYCRMProcessID: Id des gestarteten Prozesses
System-Start (Web Service, Timer)
❌ Entitätsauswahl nicht möglich
Der Prozess wird durch einen Web Service oder zeitgesteuert gestartet.
Permanente Parameter
eventName:
MANUALProcessID: Id des gestarteten Prozesses
Details sind unter Web Service in CURSOR-BPM bzw. Zeitgesteuerte Aktion zu finden.
Rückgabe
Im Webservice Start-Ereignis können Rückgabe-Variablen definiert werden, die dem Aufrufer zur Weiterverarbeitung zurück geliefert werden. Die Variablen sind mit den Daten gefüllt, die im Prozess bis zum ersten Wartezustand eingefügt wurden.
Eingehender Anruf
❌ Entitätsauswahl nicht möglich
Der Prozess wird durch einen neuen eingehenden Anruf über die serverseitige CTI-Schnittstelle gestartet.
Permanente Parameter
eventName:
CTI_INBOUNDentityName: CtiCall
container: Der Datensatz in der Tabelle CTI-Anruf
callNumber: Die anrufende Nummer
CTI-Server Statusänderung
❌ Entitätsauswahl nicht möglich
Der Prozess wird durch die Änderung des Status am CTI Server oder CTI Telefon gestartet.
Permanente Parameter
eventName:
CTI_STATE_CHANGEctiStateEvent: Die Statusinformation des CTI Servers als
CstaServerEvent-Objekt. Dieses kann über die KlasseCstaScriptUtilsverarbeitet werden.
Dokumentvorlage
❌ Entitätsauswahl nicht möglich
Der Prozess wird mit der Auswahl einer speziellen Dokumentvorlage gestartet, der die Aufgabe des Einzelbriefassistenten in Kombination einer externen Dokumentenverwaltung übernimmt.
Die spezielle Dokumentvorlage muss zu einer dokumentenfähigen Enität erstellt worden sein (diese nutzen den Einzelbriefassistenten) und referenziert den Prozess zur Steuerung der Dokumentengenerierung.
Permanente Parameter
eventName:
DOCUMENT_TEMPLATEdocumentTemplate: Der Name der Dokumentvorlage
entityName: Der Entitätsname des aktiven Datensatzes
container: Der aktive Datensatz
Immer ausführen
seit 2025.2 entfernt