Wenn es nur um Programme geht, geht das ganz einfach auch ohne API mit einem kleinen CL-Programm:

Code:
             PGM        PARM(&ParCALLER   &ParCALLED)                
 
             DCL        VAR(&ParCALLER) TYPE(*CHAR) LEN(10)             
             DCL        VAR(&ParCALLED) TYPE(*CHAR) LEN(10)             
                                                                       
             DCL        VAR(&MSGKEY)   TYPE(*CHAR) LEN(4)              
             DCL        VAR(&SENDER)   TYPE(*CHAR) LEN(80)             
                                                                       
             SNDPGMMSG  MSG('TEST') TOPGMQ(*PRV (&ParCALLED)) +         
                        MSGTYPE(*RQS) KEYVAR(&MSGKEY)                
                                                                       
             RCVMSG     PGMQ(*PRV (&ParCALLED)) MSGKEY(&MSGKEY) +       
                        SENDER(&SENDER)                              
                                                                       
             CHGVAR     VAR(&ParCALLER) VALUE(%SST(&SENDER 56 10))
ENDE:        ENDPGM
In Parameter 2: ParCalled wird der Name des aktuellen RPG-Programms übergeben.
In Parameter 1: ParCaller wird das rufende Programm zurückgegeben.

Birgitta