× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



I have written a program that does almost that almost 20 years ago (I am not getting any younger). It returns the name of the program that is *n level (entered as parameter) up the call stack.
You could use it as a base for what you need.

Here it is (sorry if all the comments are in French)

PGM PARM(&NIVRECA &PGMID)

DCL VAR(&NIVRECA) TYPE(*CHAR) LEN(2)
DCL VAR(&NIVREC) TYPE(*DEC) LEN(2 0)
DCL VAR(&NIVTST) TYPE(*DEC) LEN(2 0)
DCL VAR(&NIVTRV) TYPE(*DEC) LEN(2 0)
DCL VAR(&NIVBIN) TYPE(*CHAR) LEN(4)
DCL VAR(&RCVVAR) TYPE(*CHAR) LEN(512)
DCL VAR(&APIERRCDE) TYPE(*CHAR) LEN(8) +
VALUE(X'0000000000000000')
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4)
DCL VAR(&PGMID) TYPE(*CHAR) LEN(10)
DCL VAR(&PGMIDPR) TYPE(*CHAR) LEN(10)

/* initialisation */
CHGVAR VAR(&NIVREC) VALUE(&NIVRECA)
CHGVAR VAR(&NIVTST) VALUE(2)
CHGVAR VAR(&NIVTRV) VALUE(0)
DOUNTIL:
IF COND(&NIVREC *EQ &NIVTRV) THEN(GOTO +
CMDLBL(FINDO))

CHGVAR VAR(%BIN(&NIVBIN)) VALUE(&NIVTST)
CALL PGM(QMHSNDPM) PARM(' ' ' ' 'Dummy' +
X'00000005' '*INFO' '*' &NIVBIN &MSGKEY +
&APIERRCDE)
MONMSG MSGID(CPF0000) EXEC(DO)
/* on a depasser le "call stack" */
CHGVAR VAR(&PGMID) VALUE(*ERR)
GOTO CMDLBL(FINDO)
ENDDO
CALL PGM(QMHRCVPM) PARM(&RCVVAR X'00000200' +
'RCVM0300' '*' &NIVBIN '*ANY' &MSGKEY +
X'00000000' '*REMOVE' &APIERRCDE)
CHGVAR VAR(&PGMID) VALUE(%SST(&RCVVAR 472 10))
/* on ignore le CLPEP qui existe en mode ILE */
IF COND(&PGMID *NE &PGMIDPR) THEN(DO)
CHGVAR VAR(&NIVTRV) VALUE(&NIVTRV + 1)
CHGVAR VAR(&PGMIDPR) VALUE(&PGMID)
ENDDO
CHGVAR VAR(&NIVTST) VALUE(&NIVTST + 1)
GOTO CMDLBL(DOUNTIL)
FINDO:

ENDPGM


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.