Skip to main content
Skip table of contents

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 true bzw. false liefern muss.

Im Folgenden finden Sie eine Übersicht über alle Start-Ereignisse und ihre jeweiligen Besonderheiten und Parameter.

Die Parameter eventNameentityName usw. sind Variablen, die im Script des Start-Ereignisses und allen Skripten des Prozesses zur Verfügung stehen.

GROOVY
// 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

image-20240913-203513.png

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: BusinessEntityBeforeCreateEvent

  • entityName: 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

(Info) 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: BusinessEntityCreateEvent

  • entityName: 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

(Info) 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: BusinessEntityBeforeChangeEvent

  • entityName: 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)

(Info) 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: BusinessEntityChangeEvent

  • entityName: 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)

(Info) 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: BusinessEntityRemoveEvent

  • entityName: Der Entitätsname

  • relationNameDer 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 zu löschende Datensatz (Datentyp: IContainer)

(Info) 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: BusinessEntityBeforeCopyEvent

  • entityName: 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)

(Info) 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: BusinessEntityCopyEvent

  • entityName: 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)

(Info) 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: BusinessItemWorkSpaceUpdateEvent

  • entityName: Die Positions-Entität

  • relationNameDer 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

(Info) 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: BusinessBeforeAddRemoveLinkEvent

  • relationName: 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[]).

(Info) 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: BusinessAddRemoveLinkEvent

  • relationName: 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[]).

(Info) 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: BusinessInsertLinkEvent

  • relationName: 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.

(Info) 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: BusinessDeleteLinkEvent

  • relationName: 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.

(Info) 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: ActivityImportEvent

  • container: Der aus dem Mailimport generierte Aktivität -Datensatz (Datentyp: IContainer)

  • NewMail: true für einen neuen Datensatz, false fü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: Die ID der E-Mail-Konfiguration.

Datensatz-Rechteänderung

✅ Entitätsauswahl nötig

Die Rechte eines Datensatzes wurden geändert.

Parameter

  • eventName: BusinessEntityRightChangeEvent

  • container: 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: BusinessEntityUnitChangeEvent

  • container: Der geänderte Datensatz (Datentyp: IContainer). Zugriff mit UnitUtils.getUnits(container).

Maskenskript

(Warnung) 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_EVENT

  • ProcessID: Id des gestarten Prozesses

  • container: Der geöffnete Datensatz (Datentyp: IContainer)

(Info) 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

(Warnung) Entitätsauswahl optional

Prozess wird aus der Aktionsbox gestartet und enthält alle selektierten Datensätze aus der Listenansicht

Permanente Parameter

  • eventName: ACTION_BOX

  • ProcessID: Id des gestarten Prozesses

  • entityName: Der Name der Entität

  • containers: Die Liste der selektierten Datensätze vom Typ IContainer

(Info) 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: MYCRM

  • ProcessID: 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: MANUAL

  • ProcessID: 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_INBOUND

  • entityName: 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_CHANGE

  • ctiStateEvent: Die Statusinformation des CTI Servers als CstaServerEvent-Objekt. Dieses kann über die Klasse CstaScriptUtils verarbeitet 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_TEMPLATE

  • documentTemplate: Der Name der Dokumentvorlage

  • entityName: Der Entitätsname des aktiven Datensatzes

  • container: Der aktive Datensatz

Immer ausführen

(Warnung) Entitätsauswahl optional

Dieser Prozess wird bei jedem Ereignis geprüft. In der Startbedingung sind der eventName und die Parameter zu prüfen.

Soll dieser Prozess in myCRM sichtbar sein, so muss der Prozess zuvor mit dem Start-Ereignis myCRM veröffentlicht werden und aus der Prozess-Lasche in einen System-Ordner (sichtbar für alle Anwender) in myCRM kopiert werden. Erst jetzt kann das Ereignis auf 'Immer ausführen' gesetzt werden.

Permanente Parameter

  • eventName: EventName des aktuellen Ereignisses (s.o.)

  • Die weiteren Parameter entsprechen dem aktuellen Ereignis (s.o.)

Achtung: Die Verwendung dieses Ereignisses führt zu Performanceeinbußen, wenn die Startprüfung inperformant formuliert ist. Die Nutzung dieses Events wird nur noch bis 25.1 unterstützt.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.