Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > Groovy ActionHandler in Datengruppe - process After, Speichern

Groovy ActionHandler in Datengruppe - process After, Speichern

Hallo zusammen,

hat jemand schon mal einen (Groovy) ActionHandler in eine Datengruppe eingebaut.
Genau das versuche ich gerade, aber es scheint ja kaum Dokumentation zu geben.

Ich will nach dem Speichern des Datensatzes auf die ID des gerade gespeicherten zugreifen.

Müsste doch eigentlich so gehen, oder?

def iLid = g_record["26AAC9144012EFE2152244D191DA14A0C78ED4C9"].value


Beim Speichern kommt die Meldung:
"Cannot get property 'value' on null object"

Muss ich mir den Datensatz in diesem Fall irgendwie anders beschaffen?


Angehängte Datei:
Bildschirmfoto 2016-10-27 um 10.07.09.png
Bildschirmfoto 2016-10-27 um 10.07.09.png


Viele Grüße
Jan
27.10.2016 08:16 von surreal
Hallo Jan,
probiers mal mit:

def iLid = g_request.get("rq_recId") * optional: .toInteger()


Grüße aus Österreich!
27.10.2016 08:34 von nmayer
Hi,

danke für den Tip, aber das klappt scheinbar nicht.
iLid ist dann NULL.

Grüße
Jan
27.10.2016 08:53 von surreal
Wenn ich g_record in den Logs ausgebe ist das nicht NULL:
de.uplanet.lucy.server.businesslogic.scripting.groovy.ReadOnlyGroovyRecord(at)4a40b4f8

Wenn ich jedoch
g_record["GUID_DES_PK"]

ausgebe, ist das schon NULL.
Komisch
27.10.2016 09:09 von surreal
Würde ich definitiv als Bug bei UP einmelden.
Wenn eine rasche Lösung benötigt wird, würde ich das ganze mit einem Prozess lösen. Sprich mit einem Datengruppen-Ereignisbehandler und einer Groovy-Aktion.
27.10.2016 12:25 von nmayer
und der normal LID Zugriff geht nicht?

g_record.getRecId()
28.10.2016 05:48 von falkh
Hallo Falk,

vielen Dank. Über diesen Weg funktioniert es.
Auf die anderen Datenfelder dieses Datensatzes kann ich dann vermutlich nur via SQL Statement zugreifen, oder?
Der weg über g_record["GUID_DES_FELDES"].value
funktioniert ja scheinbar nicht.

Viele Grüße
Jan
28.10.2016 07:40 von surreal
Hallo,

ich benutze dieses Script und es funktioniert.

import de.uplanet.scripting.groovy.util.Safely

def conn = g_dbConnections.systemConnection
def stmt = null

try {
stmt = g_dbQuery.prepare(conn, "UPDATE xxx WHERE LID = ?")

stmt.setInt(1, g_record.getRecId())

stmt.executeUpdate()

stmt = Safely.close(stmt)

} finally {
stmt = Safely.close(stmt)
}


Es muss auf der Eingabeseite eingebunden werden und nicht bei der Datengruppe.

Gruß Günter
28.10.2016 09:57 von guentkrau
Hi Günter,

vielen Dank so hätte ich das auch gemacht.
Aber was meinst du mit "auf der Eingabeseite eingebunden werden"?

Ich benutze ja (intrexx attention einen Actionhandler in der Datengruppe bei der Aktion speichern.
Müsste doch gehen oder?
Oder meinst du damit, dass ich einen Renderinghandler verwenden muss?

viele Grüße
Jan
28.10.2016 10:26 von surreal
Hallo,

anhand deines Bildes habe ich gesehen, dass du den Actionhandler auf der Datengruppe eingebunden hast.
Wenn du genau diesen Actionhandler auf der Eingabeseite einbindest, dann wird es wahrscheinlich schon funktionieren.
28.10.2016 10:36 von guentkrau
Greift man im Actionhandler über g_record und guid auf felder zu, muss das jeweilige Feld als Ansichtsfeld/Eingabefeld auf der Seite vorhanden sein, sonst kennt g_record das nicht.
28.10.2016 10:46 von MartinW
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg