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 eventName, entityName 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.

Abbildung: Mehrere Startpunkte in einem Prozess

Das Modell wurde noch präziser, da jedem Ereignis ein eigener Nachverarbeitungsschritt zugeordnet  werden kann.

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

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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)

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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

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)

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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

Parameter

  • eventName: BusinessEntityRemoveEvent

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

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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.

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)

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

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.

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)

  • workSpace: Der aktuelle Datenbereich (Datentyp: IScriptWorkSpace)

Speichern von Positionen (nachher)

Entitätsauswahl nötig

Der Prozess wird beim Speichern von Angebots- oder Vertragspositionen gestartet.

Parameter

  • eventName: BusinessItemWorkSpaceUpdateEvent

  • entityName: Die Positions-Entität

  • 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

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

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.

  • workSpace: Der abhängige Datensatz-Container (Datentyp: IScriptWorkSpace)

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

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.

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.

  • workSpace: Der abhängige Datensatz-Container (Datentyp: IScriptWorkSpace)

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

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.

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.

  • relationAttributesMap: Feldwerte der Attributierten-Beziehung. Zugriff über den voll qualifizierten Feldnamen.

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.

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.

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

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.

Parameter

  • eventName: BusinessEntityUnitChangeEvent

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

Maskenskript

Entitätsauswahl optional

Prozess wird per Maskenskript in einer Entitätsmaske (z.B. via Schalter) zum aktuell geöffneten Datensatz gestartet.

Parameter

  • eventName: CLIENT_EVENT

  • ProcessID: Id des gestarten Prozesses

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

  • 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

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

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

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.

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.

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.

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.

Parameter

  • eventName: DOCUMENT_TEMPLATE

  • documentTemplate: Der Name der Dokumentvorlage

  • entityName: Der Entitätsname des aktiven Datensatzes

  • container: Der aktive Datensatz

Immer ausführen

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.

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 sollte mit Bedacht erfolgen.



JavaScript errors detected

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

If this problem persists, please contact our support.