Tipps & Tricks - Prozesse starten

Dieser Beitrag zeigt unterschiedliche Möglichkeiten, Prozesse zu starten - unter anderem auch per Groovy mit der gleichzeitigen Übergabe von Parametern. Damit alle erwähnten Einstellungen erreichbar sind, aktivieren Sie bitte Expertenoptionen in den entsprechenden Modulen.

Starten von Timern per Groovy und Übergabe von Parametern

Timer in Prozessen können per Groovy gestartet werden. Dabei können auch Parameter übergeben werden. Unseren Beispielprozess können Sie hier herunterladen und wie gewohnt importieren. In der Abbildung unten sehen Sie den im Modul "Prozesse" geöffneten Prozess.

Prozessaufbau

1. Generischer Ereignisbehandler mit / ohne Parameter

Im Eigenschaftendialog dieser beiden generischen Ereignisbehandler sehen Sie, dass die Klasse de.uplanet.lucy.server.workflow.eventhandler.UserWorkflowEventHandler ausgewählt ist. Die eventGuid wird bei der Auswahl dieser Klasse automatisch vergeben und als Eigenschaft eingetragen. Mit dieser Konfiguration kann der im Prozess enthaltene Timer (3) gestartet werden. Wie das geht, erfahren Sie nach der Beschreibung der Prozesselemente.

2. Groovy-Aktion mit / ohne Parametern

Die beiden Groovy-Aktionen enthalten Skript, mit dem der Timer wahlweise mit oder ohne die gleichzeitige Übergabe von Parametern gestartet wird. Diese Funktion liefert die Klasse "JobStarter". Das Skript für die Groovy-Aktion "Mit Parametern" sieht wie folgt aus:

import de.uplanet.lucy.server.scheduler.JobStarter
JobStarter.startJob("<Timer-GUID>", [testParam: true, greeting: ' Hello world!'])

Die Parameter "testParam" und "greeting" stehen im SharedState zur Verfügung, wenn der Prozess gestartet wurde.

Hier das Skript für die Groovy-Aktion "Ohne Parameter" :

import de.uplanet.lucy.server.scheduler.JobStarter
JobStarter.startJob("<Timer-GUID>")

Ersetzen Sie <Timer-GUID> im Skript jeweils mit der aktuellen GUID des Timers, den Sie starten wollen. In unserem Beispielprozess ist es die Timer-GUID "B39F3AA1C06E56FD06538F92F46C075333F97F68".

3. Timer

Dieser Timer soll gestartet werden.

4. Timer-Ereignisbehandler

Der Timer-Ereignisbehandler ist mit dem Timer verbunden und wird getriggert, wenn der Timer gestartet wird.

3. Groovy-Bedingung

Die Groovy-Bedingung prüft, ob es Parameter gibt. Sie enthält das folgende Skript:

println(g_sharedState)
return g_sharedState.testParam ? with_params : without_params

In der ersten Zeile wird der sharedState in das Prozesslogfile geschrieben.

Die zweite Zeile verzweigt abhängig vom Ergebnis in die entsprechende folgende Groovy-Aktion.

4. Mit Parametern / 5. Ohne Parameter

Die Groovy-Aktionen schreiben das jeweilig Ergebnis in das Prozess-Logfile.

println("With parameters.")
println(g_sharedState.greeting)
println("Without parameters.")
println(g_sharedState)

Prozess starten

1. Prozess aktivieren

Falls der Prozess noch deaktiviert ist, aktivieren Sie ihn mit einem Klick im Bereich links oben (1).

2. Ereignis auslösen

Über das Kontextmenü "Dieses Ereignis jetzt auslösen" des Generischen Ereignisbehandlers kann nun der Prozess gestartet werden.

Anschließend finden Sie das Ergebnis im Prozess-Logfile.

Prozess per Aufgabe starten

Um einen Prozess als Folgeauftrag auszuführen, wird ein Generischer Ereignisbehandler im Prozess benötigt. Im Eigenschaftendialog des Generischen Ereignisbehandlers muss auf dem Reiter "Generischer Ereignisbehandler" die Klasse "de.uplanet.lucy.server.workflow.eventhandler.UserWorkflowEventHandler" ausgewählt werden. Der dabei automatisch erstellte Parameter "eventGuid" hat als Wert eine GUID. Kopieren Sie diese GUID in die Zwischenablage oder speichern Sie sie für eine spätere Verwendung an einem anderen Ort ab (z.B. in einem Texteditor). Mit dem generischen Ereignisbehandler können nun wie gewohnt weitere Prozesselemente verbunden werden.

Bei der Verwendung eines generischen Ereignisbehandlers wird kein Datengruppenbezug hergestellt. Somit stehen z.B. keine dynamischen Datensätze zur Verfügung.

Über die im Generischen Ereignisbehandler festgelegte GUID kann der Prozess nun von der Aufgabenplanung aus, die Sie im Modul "Werkzeuge" finden, gestartet werden.

Wählen Sie dazu eine beliebige Aufgabe in der Liste aus. Über das Kontextmenü "Zeitplan bearbeiten" erreichen Sie den Reiter "Folgeaufträge". Dort kann die eventGuid des Generischen Ereignisbehandler im Feld "Prozessereignis-GUID" eingetragen werden. Der Prozess wird, sobald die Aufgabe ausgeführt ist, gestartet.

Prozess per Datentransfer starten

Im Modul "Integration" können Prozesse im Anschluss an einen Datentransfer gestartet werden. Öffnen Sie dazu den Eigenschaftendialog eines bestehenden Datentransfers und wechseln Sie auf den Reiter "Folgeaufträge". Dort kann die eventGuid des Generischen Ereignisbehandler im Feld "Prozessereignis-GUID" eingetragen werden. Der Prozess wird, sobald der Datentransfer und seine Folgeaufträge ausgeführt sind, gestartet.

Prozess per JavaScript starten

Ein Prozess kann wie folgt auch per JavaScript gestartet werden:

function prozess_start()
{
	triggerUserWorkflowEvent("GUID");
}

Die Funktion triggerUserWorkflowEvent() startet den Prozess. Dieser Funktion muss die eventGuid des entsprechenden generischen Ereignisbehandlers übergeben werden.

Die GUID kann mit der Taste F4 ermittelt werden, wenn der generische Ereignisbehandler im Prozess markiert ist.