View Full Version : Auffinden des Aufruf-Programms
Hallo,
suche vergeblich eine Möglichkeit, den Namen des aufrufenden
PGM zu ermitteln. Also PGM A ruft PGM B auf und in PGM B soll
der Name von PGM A ermittelt werden.
Vielen Dank für die Mithilfe!
DCL &MYKEY *CHAR 4
DCL &SENDER *CHAR 80
SNDPGMMSG MSG('/* */') TOPGMQ(*PRV) KEYVAR(&MYKEY)
RCVMSG PGMQ(*PRV) MSGKEY(&MYKEY) SENDER(&SENDER)
Anstelle dder CL-Befehle, die ja nur im CLP funktionieren, können alternativ auch die MSGAPI's verwendet werden.
Hallo,
suche vergeblich eine Möglichkeit, den Namen des aufrufenden
PGM zu ermitteln. Also PGM A ruft PGM B auf und in PGM B soll
der Name von PGM A ermittelt werden.
Vielen Dank für die Mithilfe!
Schreib einen 2-Zeiler in CL oder greife mit dem API QWVRCSTK den Call-Stack ab.
CL-Programm:
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
&CALLED ist Dein Programm B und wird an dieses CL-Programm übergeben und &CALLER ist Dein Programm A und wird zurückgegeben.
Birgitta
Allrounder
28-06-05, 10:38
Hallo,
suche vergeblich eine Möglichkeit, den Namen des aufrufenden
PGM zu ermitteln. Also PGM A ruft PGM B auf und in PGM B soll
der Name von PGM A ermittelt werden.
Vielen Dank für die Mithilfe!
Wir lösen die Problematik mit einem zusätzlichen Parameter in der *entry-PLIST.
Hallo!
Vielen Dank für die Vorschläge.
Ich habe mich für die Variante von Birgitta entschieden mit
einer Schleife, damit IBM-PGM wie QCMDEXC ausgefiltert werden können.