Connaître le programme appelant

DCL &MSG     *CHAR  132
DCL &SENDER  *CHAR   80

/* Envoi d’un message bidon au programme précédent en récupérant l’identifiant */
SNDPGMMSG MSG(COUCOU)
RCVMSG PGMQ(*PRV) MSGTYPE(*LAST) MSG(&MSG) SENDER(&SENDER)

/* &SENDER me donne à  la position 56 sur 10 de long le programme qui a reçu le
message */
/* et en continuant ainsi on peut connaître aussi le programme précédant */
SNDPGMMSG MSG(COUCOU) TOPGMQ(*PRV (%SST(&SENDER 56 10)))
RCVMSG PGMQ(*PRV (%SST(&SENDER 56 10))) +
  MSGTYPE(*LAST) MSG(&MSG) SENDER(&SENDER)

Il y a un risque de bouclage dans le cas d’appel de programme récursif (problème
inexistant dans le programme MI, qui donne la liste d’appel des programmes (DSPJOB Option
11).

Print Friendly, PDF & Email