
Zitat von
B.Hauser
Eigentlich ist das ziemlich einfach. Das eigentliche Trigger-Programm wird durch eines der beiden QDBPUT (für Input-Trigger) oder QDBUDR (für Undate/Delete/Read-Trigger) aufgerufen. Damit muss man nur das Programm, das im Callstack vor dem entsprechenden Aktivierungsprogramm liegt ermitteln.
Birgitta
Hallo Birgitta,
im Internet hast du folgendes zu QDBPUT/QDBUDR gepostet.
Code:
/*****************************************************************/
/* Object. . . . . . . . . : PRVPGM */
/* Funkcion. . . . . . . . : Retrieve Caller Programm */
/* from Call Stack */
/* Parameter . . . . . . . : CALLER 10 A */
/* CALLED 10 A */
/* Author . . . . . . . . : B.Hauser */
/*****************************************************************/
PGM PARM(&CALLER +
&CALLED)
/* ---------------------------------------------------------------*/
DCL VAR(&CALLER) TYPE(*CHAR) LEN(10)
DCL VAR(&CALLED) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4)
DCL VAR(&SENDER) TYPE(*CHAR) LEN(80)
/* ---------------------------------------------------------------*/
SNDPGMMSG MSG('TEST') +
TOPGMQ(*PRV (&CALLED)) +
MSGTYPE(*RQS) +
KEYVAR(&MSGKEY)
RCVMSG PGMQ(*PRV (&CALLED)) +
MSGKEY(&MSGKEY) +
SENDER(&SENDER)
CHGVAR VAR(&CALLER) VALUE(%SST(&SENDER 56 10))
ENDE: ENDPGM
Mein Problem ist das ich ermitteln muss woher das Update(QDBUDR) kommt.
Habe ein PF-File wo als "Triggerprogramm" ein Cl hinterlegt(JRN050CL) ist, das wiederum andere CL-aufruft.
Das dritte CL ruft ein RPG-Programm auf und schreibt im Endeffekt den geänderten Satz.
Wie ermittle ich nach deiner Methode den Aufruf?
Muss ich im RPG-Programm nach den Wert 'QDBUDR' abfragen und dann das CL-aufrufen.
Wie müsste der Aufruf des CL in einem Rpg-Pgm aussehen?
lg und Dank im Voraus
Bookmarks