Ankündigung

Einklappen
Keine Ankündigung bisher.

g_record in ActionHandler processBefore immer null / mehrfache Ausführung

Einklappen
X

g_record in ActionHandler processBefore immer null / mehrfache Ausführung

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • g_record in ActionHandler processBefore immer null / mehrfache Ausführung

    Hallo Intrexx Community,

    ich bin in meinem Unternehmen dabei eine Applikation, die von Version 18.03 auf Version 19.03 portiert wurde weiterzuentwickeln. Hier nutze ich auch ausgiebig die Möglichkeiten welche die neuen Write Container bieten, um z.B. in meinem Fall auf einer Eingabeseite einen Log in die Unterdatengruppe des Tickets zu schreiben und gleichzeitig das Ticket zu editieren ohne dafür noch eine weitere Eingabeseite aufrufen zu müssen oder ähnliches.

    So weit so gut, jetzt wollte ich mit einem Action Handler vor dem speichern in die Datenbank, also processBefore, die Änderungen am Ticket zusätzlich zum Kommentar der bei Änderungen erforderlich ist ebenfalls in die Log Datengruppe schreiben, als separaten Datensatz. Hierfür brauche ich den Wert vor und nach dem Bearbeiten des Tickets, also im Action Handler eine SQL Anfrage auf die ID des Tickets um die alten Werte zu bekommen und mit g_record die eingetragenen und zu speichernden Werte.

    Nun zu den Problemen:
    • Da der Button zum speichern beide Write Container speichert wird der Action Handler doppelt ausgeführt, also für jede Speichern Aktion, das habe ich mit g_log überprüft, es stehen immer mit Millisekunden Versatz zwei Einträge im Log (natürlich will ich aber nur dass es einmal passiert)
    • Aus mir unbekannten Gründen kann ich mit g_record["DATENFELD_GUID"].value nicht auf das Datenfeld zugreifen, weil immer eine NullPointer Exception geworfen wird, ich habe auch die GUIDS des Ansichtsfeldes versucht, nur um sicher zu gehen. Die Eingabeseite wird in einem Modal geöffnet und bekommt die LID als Parameter.
    Für das Action Handler Problem habe ich keine Einstellung gefunden die es mir ermöglicht nur auf ein Speicherereignis zu reagieren, das macht aber leider die Action Handler auf Seiten mit mehr als einem Write Container weitestgehend unbrauchbar. Das Problem mit g_record verstehe ich auch nicht, hat sich hier etwas mit der neuen Version geändert? Laut Doku müsste es so funktionieren.

    Schonmal Vielen Dank und Grüße aus Mannheim

  • #2
    Hallo snockel,

    Also mit 19.03 habe ich jetzt keine Erfahrung, aber in den Actionhandlern früher musste man immer g_record.getRecId() verwenden um an die Datensatz-ID zukommen. Die restlichen Werte musste man sich dann per SQL holen.

    Grüße Snixx

    Kommentar

    Lädt...
    X