PDA

View Full Version : RPGLE Trigger before insert übernimmt neue Werte nicht



msost
06-10-14, 15:34
Hallo,

habe einen Trigger in RPGLE erstellt. In dem Program sollen bei *insert *before einige Felder vorbelegt werden.

Eingabe aus dem Bildschirm steht korrekt im After-Image. Die Anweisungen befüllen auch die weiteren Felder im After Image richtig.

Nach der Ausführung sieht man mit WRKDBF aber nur die eingegebenen Werte aus dem Screen. Die im Programm geänderten Felder haben keinen Inhalt.

Idea's welcome!

Grüße

Matthias

Fuerchau
06-10-14, 15:44
ADDPFTRG ... ALWREPCHG(*YES)

Der Default ist hier *NO.

msost
06-10-14, 15:58
Das war's leider nicht. ALWREPCHG ist *YES.

Irgendwie erscheint's mir so, als wenn ich mit der Datenstruktur noch was machen müsste, damit die Werte beim Schreiben genommen werden. Wüßte aber nicht was zu tun wäre.

Fuerchau
06-10-14, 16:03
a) sind die Felder mit ALWNULL definiert (bzw. per SQL)
b) wird ein SQL-Insert verwendet

Es kann sein, dass die Felder mit NULL erlaubt definiert sind. In diesem Fall müssen natürlich die NULL-Indikatoren für geänderte Felder auch auf "0" gesetzt werden, da SQL bei nicht verwendeten Feldern den NULL-Indicator mit "-1" belegt.
Die Indicatoren befinden sich hinter dem Satzpuffer als "5I 0"-Array.

msost
06-10-14, 16:32
a) und b) kann ich schon mal mit "Nein" beantworten. Ich check aber sicherheitshalber nochmal das Array im Debugger.

Fuerchau
06-10-14, 16:54
Es existieren nur NULL-Indikatoren für NULL-Allowed Felder!
Hier ist dann genaues abzählen wichtig.

msost
07-10-14, 12:56
Auch gecheckt, Array weist keine Werte auf. Bin bei Kleinem ratlos...

msost
07-10-14, 13:15
OK, hab ihn. Man ist ja auch manchmal einfach zu bl.d... Es gab ein CL welches in der Testprozedur den Trigger ab- und angehängt hat. Da hatte man seinerzeit den ALWREPCHG vergessen...

Danke für die Tips!!