ebschubert
16-10-08, 08:04
Hallo,
es ist zwar schon eine Weile her, dass ich mich mit MSGSFLs auseinandergesetzt habe, da ich die Nachrichten immer direkt an die externe Message Queue schicke und mir damit keine Gedanken um einen Aufrufstapel machen muss.
Wenn ich micht recht erinnere ist es bei ILE 1 Stufe mehr als bei OPM, da die Funktion gewrappt wird.
Langer Rede kurzer Sinn versuch's doch einfach mal mit:
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFL/&MSGF) +
MSGDTA(&PARM) TOPGMQ(* (2)) +
MSGTYPE(*NOTIFY) KEYVAR(&MSGNBR)
Birgitta
Vielen Dank
.... aber es geht noch einfacher !!!!!
aus dem Link
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzakc/rzakcmstdfsfpmq.htm
Special value
The SFLPGMQ field can contain a special value, * (asterisk), instead of a program message queue name. If the program moves an asterisk to the SFLPGMQ field, the i5/OS operating system uses the message queue of the program issuing the output operation. You cannot use an asterisk if your program is a CL program.
Habe den SDS *PROC-Bereich wie folgt definiert
D PGMDS SDS
d ZZPGM 1 276
d ZZPG1 1 256
d ZZPG2 257 266
d ZZPG3 267 276
** ZZPGM *proc
und dann einfach folgendes gemacht
c movel(p) '*' zzpg1
c move *blanks zzpg2
c move *blanks zzpg3
... und es funxt!!!!!!!!!!
;)
Trotzdem vielen Dank...
Grüsse
Andreas
es ist zwar schon eine Weile her, dass ich mich mit MSGSFLs auseinandergesetzt habe, da ich die Nachrichten immer direkt an die externe Message Queue schicke und mir damit keine Gedanken um einen Aufrufstapel machen muss.
Wenn ich micht recht erinnere ist es bei ILE 1 Stufe mehr als bei OPM, da die Funktion gewrappt wird.
Langer Rede kurzer Sinn versuch's doch einfach mal mit:
SNDPGMMSG MSGID(&MSGID) MSGF(&MSGFL/&MSGF) +
MSGDTA(&PARM) TOPGMQ(* (2)) +
MSGTYPE(*NOTIFY) KEYVAR(&MSGNBR)
Birgitta
Vielen Dank
.... aber es geht noch einfacher !!!!!
aus dem Link
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzakc/rzakcmstdfsfpmq.htm
Special value
The SFLPGMQ field can contain a special value, * (asterisk), instead of a program message queue name. If the program moves an asterisk to the SFLPGMQ field, the i5/OS operating system uses the message queue of the program issuing the output operation. You cannot use an asterisk if your program is a CL program.
Habe den SDS *PROC-Bereich wie folgt definiert
D PGMDS SDS
d ZZPGM 1 276
d ZZPG1 1 256
d ZZPG2 257 266
d ZZPG3 267 276
** ZZPGM *proc
und dann einfach folgendes gemacht
c movel(p) '*' zzpg1
c move *blanks zzpg2
c move *blanks zzpg3
... und es funxt!!!!!!!!!!
;)
Trotzdem vielen Dank...
Grüsse
Andreas