Tipps & Tricks - Groovy-Bedingungen im Prozess

Im Modul Prozesse können Bedingungen in Groovy formuliert werden, mit denen unter anderem auf Requestwerte reagiert werden kann. In der Beispiel-Applikation, die Sie hier herunterladen und wie gewohnt mit dem ebenfalls enthaltenen Prozess importieren können, soll die Freigabe mit Klick auf eine Schaltfläche ausgelöst werden. Die Schaltfläche speichert gleichzeitig den aktuellen Datensatz. Um nur den aktuellen Stand zu sichern, kann die Schaltfläche Speichern benutzt werden. Die Schaltfläche Freigabe übergibt bei Klick auch den Request-Parameter rq_customMyParam mit dem Wert release.



Im Prozess soll mit einer Groovy-Bedingung auf diesen Parameter reagiert werden.



Der Datengruppen-Ereignisbehandler reagiert auf das Einfügen oder Ändern des Datensatzes.



Mit Groovy-Skript wird in der Bedingung der in der Schaltfläche Freigabe definierte Request-Parameter ausgelesen. Hier das Code-Beispiel:
def strReleased = g_request.get('rq_customMyParam')

if("release" == strReleased)
	return releasePressed

return releaseNotPressed
Enthält der Requestparameter den Wert release, so wird mit der Return-Anweisung die Verbindungs-ID releasePressed erzeugt. Andernfalls wird die Verbindungs-ID releaseNotPressed erzeugt.



Die Verbindungs-ID ist im Eigenschaftendialog des jeweiligen Zweiges eingetragen. Dem Zweig releasePressed wird gefolgt, wenn die Freigabe erteilt wurde. Der Zweig releaseNotPressed entspricht dem klassischen ELSE-Zweig wird ausgeführt, wenn die Schaltfläche Speichern geklickt wurde, mit der kein Requestparameter- Wert übergeben wird. Die Bezeichnung für eine Verbindungs-ID ist beliebig, muss aber immer mit einem kleinen Buchstaben beginnen, wie hier z.B. die Bezeichnung releasePressed.



Im folgenden Prozessschritt wird mit einer Datengruppenaktion der Freigabe-Status gesetzt.

Alle in der Groovy-Bedingung definierten Verbindungs-IDs müssen auch im Prozess als Ausgänge der Bedingung aufgenommen sein, sonst kann es zu einem Fehler in der Prozessausführung kommen.