Mit Intrexx 5.0 kann ein Prozess auch ohne eine Transaktion ausgelöst werden. Dies kann beispielsweise zum Einsatz kommen, wenn Aktualisierungen über gesamte Datensätze erfolgen sollen. Benötigt werden hierfür ein JavaScript sowie ein Groovy-Prozess.

In diesem Beispiel werden Umsätze zu den einzelnen Kunden gelistet. Da die Werte sich ständig ändern, soll der Status in der Tabelle per Klick auf den Button Aktualisieren aktualisiert werden. Der Status ist in der Applikation als Referenzfeld hinterlegt.

Prozesserstellung

Wird der Prozess ausgelöst, wird über die Groovy-Aktion ein SQL-Statement für die Aktualisierung der Daten gestartet.

Generischer Ereignisbehandler
1.1 Klicken Sie im Portalmanager auf Prozesse und erstellen Sie einen neuen Prozess. Anschließend klicken Sie mit der rechten Maustaste auf den Reiter Neuer Prozess und vergeben den Namen Prozess per Button.

1.2 Aktivieren Sie jetzt unterhalb der Werkzeuge die Option Entwicklungswerkzeuge anzeigen.

1.3 Ziehen Sie den Ereignisbehandler Generischer Ereignisbehandler auf Ihre Arbeitsfläche, nennen Sie diesen Button aktualisieren und klicken Sie auf weiter. Im zweiten Dialog wählen Sie die Klasse „de.uplanet.lucy.server.workflow.eventhandler.UserWorkflowEventHandler“ aus und bestätigen Sie mit OK.

1.4 Markieren Sie nun das Prozesselement und drücken Sie die F4 Taste. Kopieren Sie bitte die GUID. Beachten Sie, dass der Expert Modus aktiviert sein muss.

1.5 Öffnen Sie wieder das Prozesselement und klicken Sie auf weiter. Klicken Sie jetzt auf das grüne + Symbol und wählen Sie bei Name eventGuid aus. In das Feld Wert fügen Sie die kopierte GUID ein.

Groovy Aktion erstellen
2.1 Ziehen Sie eine Groovy-Aktion aus der Aktionenleiste über den erstellten generischen Ereignisbehandler. Die Groovy-Aktion wird sofort mit dem Ereignisbehandler verbunden.

2.2 Benennen Sie die Groovy-Aktion Status aktualisieren und hinterlegen Sie bitte folgendes Groovy-Script:

l_conn = g_dbConnections.systemConnection
def l_stmt = g_dbQuery.prepare(l_conn, "SELECT LID, FLT_UMSATZ_444061FB FROM XDATAGROUP8AEFA89D")
def l_rs   = l_stmt.executeQuery()

l_rs.each
{
def l_recId = it.value(1)
def l_umsatz = it.value(2)
	
	if(l_umsatz >= 15000)
	{
		l_typ = 1
	}
	else if(l_umsatz >= 5000 && l_umsatz < 15000)
	{
		l_typ = 2
	}
	else
		l_typ = 3

	def l_Update = g_dbQuery.prepare(l_conn,"UPDATE XDATAGROUP8AEFA89D SET REF_329B933E = ? WHERE LID = ?")
	l_Update.setInt(1, l_typ)
	l_Update.setInt(2, l_recId) 
	l_Update.executeUpdate()
	l_Update.close()
}
l_rs.close()
l_stmt.close()


2.3 Bestätigen Sie danach alle Dialoge mit OK und speichern Sie Ihren Prozess.

JavaScript erstellen

Auf der Ansichtsseite Alle Einträge wird die Schalfläche Aktualisieren erstellt. Diese Schaltfläche wird über ein JavaScript den soeben erstellten Prozess starten. Öffnen Sie auf der Ansichtsseite Alle Einträge den JavaScript-Editor und hinterlegen Sie dieses JavaScript. Beide Funktionen kommen aus der JavaScript Bibliothek.
function prozess_start(){
	triggerUserWorkflowEvent("C90C388F3129EDA61114955258B660EB76543604");
	makeAppRequest("6F1B4237844E1AB893200B103A42FADDCFF94384", 
	"AC61FF48657D8448D425D933F4BE1A1FFFA417D4", false, false, false);
}
Die Funktion triggerUserWorkflowEvent("") startet den Prozess. Dieser Funktion muss die GUID des generischen Ereignisbehandler übergeben werden. Die Guid kann per F4 Taste auf dem generischen Ereignisbehandler ermittelt werden, siehe oben.

Die Funktion makeAppRequest(strApplicationGuid, strPageGuid, false, false, true)aktualisiert nach der Prozessauslösung die Seite. Folgende Parameter müssen übergeben werden: 1. Guid: GUID der Applikation
2. Guid: Guid der Ansichtsseite
3. Der letzte Boolsche Wert muss von true auf false gesetzt werden. Damit wird das zu aktualisierende Fenster in der Stage (Applikationsbereich) geöffnet. Belässt man den Parameter auf true, wird die Seite in einem neuen Fenster geöffnet.

Nachdem das Script gespeichert ist, muss es dem Onclick-Event der Schaltfläche Aktualisieren zugewiesen werden.

Das Ziel ist erreicht. Der Prozess kann per JavaScript gestartet werden.

United Planet
Intrexx Application Store Presse Downloads
Deutsch