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.