Tipps & Tricks - Groovy-Bedingungen im Prozess

Im Modul "Prozesse" können Bedingungen mit Groovy gesteuert und damit unter anderem auch auf Requestwerte reagiert werden. In der Beispiel-Applikation, die Sie ab Intrexx Version 12.0.0 hier herunterladen und wie gewohnt mit dem ebenfalls enthaltenen Prozess importieren können, soll eine Freigabe mit Klick auf eine Schaltfläche ausgelöst und der Datensatz gespeichert werden. Eine weitere Schaltfläche, die Schaltfläche "Freigabe aufheben", entfernt die Freigabe und speichert den Datensatz ebenfalls.

Der enthaltene Prozess ist beim Import deaktiviert. Um die Beispielapplikation zu testen, aktivieren Sie den Prozess nach dem Import.

In der Beispiel-Applikation wird die Schaltfläche "Freigabe" mit der Aktion "Speichern" und dem Parameter "rq_action" konfiguriert. "rq_action" bekommt den statischen Wert "release".

Die Schaltfläche "Freigabe aufheben" wird ebenfalls mit der Aktion "Speichern" und dem Parameter "rq_action" konfiguriert. rq_action bekommt hier den statischen Wert "notReleased".

Im Prozess reagiert der Datengruppen-Ereignisbehandler auf das Einfügen oder Ändern des Datensatzes.

Mit Groovy-Skript, das im Eigenschaftendialog der Groovy-Bedingung im Editor eingetragen ist, wird der Request-Parameter "rq_action" ausgelesen:


if (g_request.containsKey('rq_action'))
{
	def l_strAction = g_request.get('rq_action')
	switch(l_strAction)
	{
		case "release":
		return [releasePressed]
		case "notReleased":
		return [releaseNotPressed]
	}
}

Enthält der Requestparameter den Wert "release", so wird mit der Return-Anweisung die Verbindungs-ID "releasePressed" erzeugt. Bei dem Wert "notReleased" wird die Verbindungs-ID "releaseNotPressed" erzeugt.

Die Verbindungs-ID ist im Eigenschaftendialog des jeweiligen Zweiges eingetragen. Die Bezeichnung für eine Verbindungs-ID ist beliebig, muss aber immer mit einem kleinen Buchstaben beginnen.

Im folgenden Prozessschritt wird mit einer Datengruppenaktion der Freigabe-Status gesetzt bzw. aufgehoben. Dazu wird ein benutzerdefinierter, statischer Boolean-Wert verwendet, der je nach Verzweigung den Wert "true" oder "false" hat und dem Datenfeld "Freigabe" zugewiesen wird.

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.