Moin,

kurze Beschreibung des Vorhabens:
Über RCVJRNE wollen wir ein Exit-PGM an das Journal hängen.
Wir wollen dadurch Änderungen an Datensätzen mitbekommen und eine Art Protokoll erstellen, sprich "Wann wurde der Datensatz angelegt", "Wann hat wer welche Veränderungen vorgenommen", "Wann wurde der Datensatz gelöscht".
Das ganze für den "normalen" Benutzer über die Standard Journal-Funktion hinaus.
Außerdem soll das für mehrere Dateien gelten und idealerweise wollen wir nicht für jede Datei ein eigenes Programm erstellen.

Was ich bislang hinbekommen habe:
(Besser wusste ich es nicht. Vorschläge wie man es besser macht höre ich gerne.)

  • Exit-PGM, welches die Journaldaten erhält.
  • Exit-PGM ruft Programm auf, welches über SQL eine Tabelle erstellt wie die Datei aus den Journaldaten, um die Dateifelder zu erhalten. (Die Datei erhält lvlchk *no wegen der nachfolgenden Programme)
  • Exit-PGM ruft Programm auf und übergibt Journaldaten. Daten werden über das aufgerufene Programm in die per SQL erstellte Tabelle geschrieben.
  • Exit-PGM ruft bei Update Programm auf, welche die Datensätze 1 (UB) und 2 (UP) aus der per SQL erstellten Tabelle ausliest, in Datenstrukturen (likerec der Tabelle) packt und die Datenstrukturen vergleicht. So weiß ich, ob überhaupt eine Veränderung stattgefunden hat.


Jetzt zum Problem:
Per SQL komme ich zwar, über syscolumns, an die Spaltennamen und die Anzahl der Spalten, aber mir fällt nichts ein wie ich diese Spaltennamen dann einzeln abfragen kann auf Veränderung.
Eine Datenstruktur (likerec der Tabelle) wird zwar korrekt gefüllt, aber ich kann die einzelnen Felder der Datenstruktur nicht abfragen, da ich den Namen nicht weiß. Oder kann man die Felder auch über Nummern abfragen? Quasi anstatt Datenstruktur.Feldname1 Datenstruktur.Feldnummer1?
Oder sonst Ideen wie ich weitermachen könnte?

Gruß