This break message handler program displays incoming messages, highlighted, as 'status' messages.
PGM PARM(&MSGQ &MSGQLIB &MSGKEY)
DCL VAR(&MSGQ) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGQLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4)
DCL VAR(&MSG) TYPE(*CHAR) LEN(80)
DCL VAR(&RTNTYPE) TYPE(*CHAR) LEN(3)
DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132)
DCL VAR(&X23) TYPE(*CHAR) LEN(1) VALUE(X'23')
DCL VAR(&X20) TYPE(*CHAR) LEN(1) VALUE(X'20')
DCL VAR(&SNDJOB) TYPE(*CHAR) LEN(80)
DCL VAR(&SENDER) TYPE(*CHAR) LEN(10)
MONMSG MSGID(CPF0000 MCH0000) EXEC(GOTO CMDLBL(RETURN))
RCVMSG: +
RCVMSG MSGQ(&MSGQLIB/&MSGQ) RMV(*NO) MSG(&MSG) RTNTYPE(&RTNTYPE) +
SENDER(&SNDJOB)
IF (&RTNTYPE = '05') +
DO
DSPMSG MSGQ(&MSGQ)
GOTO RCVMSG
ENDDO
IF (&MSG ¬= ' ') +
DO
CHGVAR &SENDER %SST(&SNDJOB 11 10)
CHGVAR &MSGDTA (&SENDER *TCAT ':' *CAT &X23 *CAT &MSG *TCAT &X20)
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
TOPGMQ(*EXT) MSGTYPE(*STATUS)
GOTO RCVMSG
ENDDO
RETURN: +
ENDPGM
Comments (0)
You don't have permission to comment on this page.