/*--+------------------------------------------------------------+--*/ /*--+ PROGRAM ID : $DSPMSGID +--*/ /*--+ PROGRAM NAME : CL OF DISPLAY MESSAGE ID +--*/ /*--+------------------------------------------------------------+--*/ /*--+ VERSION : 2.0 (1999/09/22) API CONTROL +--*/ /*--+ 1.2 (1998/10/16) ADDED LIBRARY CONTROL +--*/ /*--+ 1.1 (1998/10/15) ADDED STATUS MESSAGE +--*/ /*--+ 1.0 (1998/10/14) +--*/ /*--+------------------------------------------------------------+--*/ PGM PARM(&MSGID &MSGFANDLIB &NEXT) /*--+------------------------------------------------------------+--*/ /* + DECLARE + */ /*--+------------------------------------------------------------+--*/ /* COMMAND PARAMETER(S) FOR THIS PROGRAM */ DCL VAR(&MSGID ) TYPE(*CHAR) LEN( 7 ) /* MESSAGE ID */ DCL VAR(&MSGFANDLIB) TYPE(*CHAR) LEN( 20 ) /* FILE AND LIBRARY */ DCL VAR(&MSGF ) TYPE(*CHAR) LEN( 10 ) /* MESSAGE FILE */ DCL VAR(&LIB ) TYPE(*CHAR) LEN( 10 ) /* LIBRARY */ DCL VAR(&NEXT ) TYPE(*CHAR) LEN( 4 ) /* NEXT FLG */ /* SHARED PARAMETERS FOR THIS PROGRAM */ DCL VAR(&SH_USRSPC ) TYPE(*CHAR) LEN( 20 ) /* USER SPACE */ DCL VAR(&SH_MSG ) TYPE(*CHAR) LEN( 80 ) /* MESSAGE */ DCL VAR(&SH_COUNT ) TYPE(*DEC ) LEN( 5 0) /* COUNTER */ DCL VAR(&SH_STRPOS ) TYPE(*DEC ) LEN( 9 0) /* START POSITION */ DCL VAR(&SH_DTALEN ) TYPE(*DEC ) LEN( 9 0) /* LENGTH OF DATA */ DCL VAR(&SH_OFFSET ) TYPE(*DEC ) LEN( 9 0) /* OFFSET */ DCL VAR(&SH_OFFSETB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_OFFSET */ DCL VAR(&SH_LSTCNT ) TYPE(*DEC ) LEN( 9 0) /* NUMBER OF LIST DATA */ DCL VAR(&SH_LSTCNTB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_LSTCNT */ DCL VAR(&SH_LSTSIZ ) TYPE(*DEC ) LEN( 9 0) /* SIZE OF LIST DATA */ DCL VAR(&SH_LSTSIZB) TYPE(*CHAR) LEN( 4 ) /* BIN OF &SH_LSTSIZ */ DCL VAR(&SH_MSGF ) TYPE(*CHAR) LEN( 10 ) /* MESSAGE FILE */ DCL VAR(&SH_LIB ) TYPE(*CHAR) LEN( 10 ) /* LIBRARY */ DCL VAR(&SH_FOUND ) TYPE(*CHAR) LEN( 4 ) VALUE(*NO) DCL VAR(&TEMP_27 ) TYPE(*CHAR) LEN( 27 ) /* TEMPORARY FIELD1 */ DCL VAR(&TEMP_20 ) TYPE(*CHAR) LEN( 20 ) /* TEMPORARY FIELD2 */ /*--+--------------------+--*/ /* + PARAMETERS FOR API + */ /*--+--------------------+--*/ /* QUSCRTUS */ /* &SH_USRSPC */ DCL VAR(&QCR_EXTDAT) TYPE(*CHAR) LEN( 10 ) /* EXTENDED ATTRIBUTE */ DCL VAR(&QCR_INTSIZ) TYPE(*CHAR) LEN( 4 ) /* INITIAL SIZE(B) */ DCL VAR(&QCR_INTVAL) TYPE(*CHAR) LEN( 1 ) /* INITIAL VALUE */ DCL VAR(&QCR_PUBAUT) TYPE(*CHAR) LEN( 10 ) /* PUBLIC AUTHORITY */ DCL VAR(&QCR_TEXT ) TYPE(*CHAR) LEN( 50 ) /* TEXT DESCRIPTION */ /* QUSLOBJ */ /* &SH_USRSPC */ DCL VAR(&QLO_FORMAT) TYPE(*CHAR) LEN( 8 ) /* FORMAT NAME */ DCL VAR(&QLO_OBJECT) TYPE(*CHAR) LEN( 20 ) /* OBJ AND LIB */ DCL VAR(&QLO_OBJTYP) TYPE(*CHAR) LEN( 10 ) /* OBJECT TYPE */ DCL VAR(&QLO_ERRCD ) TYPE(*CHAR) LEN( ) /* ERRCODE */ /* QUSRTVUS */ /* &SH_USRSPC */ DCL VAR(&QRT_STRPOS) TYPE(*CHAR) LEN( 4 ) /* START POSITION(B) */ DCL VAR(&QRT_DTALEN) TYPE(*CHAR) LEN( 4 ) /* LENGTH OF DATA(B) */ DCL VAR(&QRT_RCVDTA) TYPE(*CHAR) LEN( 288 ) /* RECEIVER VARIABLE */ /*--+------------------------------------------------------------+--*/ /* + START OF PROGRAM + */ /*--+------------------------------------------------------------+--*/ /*--+------------------------------------------------------------+--*/ /* + INITIALIZE + */ /*--+------------------------------------------------------------+--*/ /*--+-------------------+--*/ /* + SET INITIAL VALUE + */ /*--+-------------------+--*/ /* SHARED PARAMETERS */ CHGVAR VAR(&SH_USRSPC ) VALUE('DSPMSGID QTEMP ') /* QUSCRTUS PARAMETERS */ CHGVAR VAR(&QCR_EXTDAT) VALUE(' ') CHGVAR VAR(%BIN(&QCR_INTSIZ)) VALUE(1024) CHGVAR VAR(&QCR_INTVAL) VALUE(' ') CHGVAR VAR(&QCR_PUBAUT) VALUE('*ALL') CHGVAR VAR(&QCR_TEXT ) VALUE('CREATED BY DSPMSGID') /* QUSLOBJ PARAMETERS */ CHGVAR VAR(&QLO_FORMAT) VALUE('OBJL0100') CHGVAR VAR(%SST(&QLO_OBJECT 1 10)) VALUE(%SST(&MSGFANDLIB 1 10)) CHGVAR VAR(%SST(&QLO_OBJECT 11 10)) VALUE(%SST(&MSGFANDLIB 11 10)) CHGVAR VAR(&QLO_OBJTYP) VALUE('*MSGF') /*--+-------------------+--*/ /* + CREATE USER SPACE +--*/ /*--+-------------------+--*/ CHKOBJ OBJ(%SST(&SH_USRSPC 11 10)/%SST(&SH_USRSPC 1 10)) + OBJTYPE(*USRSPC) MONMSG MSGID(CPF9801) EXEC(DO) CALL PGM(QUSCRTUS) PARM(&SH_USRSPC + &QCR_EXTDAT + &QCR_INTSIZ + &QCR_INTVAL + &QCR_PUBAUT + &QCR_TEXT ) ENDDO /*--+-------------------------------------+--*/ /* + SET OBJECT LIST INTO THE USER SPACE + */ /*--+-------------------------------------+--*/ CALL PGM(QUSLOBJ) PARM(&SH_USRSPC + &QLO_FORMAT + &QLO_OBJECT + &QLO_OBJTYP + &QLO_ERRCD ) /*--+--------------------------------------------------+--*/ /* + RETRIEVE HEADER INFO OF OBJ LIST FROM USER SPACE + */ /*--+--------------------------------------------------+--*/ CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(125) CHGVAR VAR(%BIN(&QRT_DTALEN)) VALUE( 16) CALL PGM(QUSRTVUS) PARM(&SH_USRSPC + &QRT_STRPOS + &QRT_DTALEN + &QRT_RCVDTA ) CHGVAR VAR(&SH_LSTCNTB) VALUE(%SST(&QRT_RCVDTA 9 4)) CHGVAR VAR(&SH_LSTCNT ) VALUE(%BIN(&SH_LSTCNTB)) IF (&SH_LSTCNT = 0) DO /* NO DATA */ SNDPGMMSG MSGID(CPF9801) MSGF(QCPFMSG) + MSGDTA(&MSGFANDLIB) + MSGTYPE(*ESCAPE) ENDDO CHGVAR VAR(&SH_OFFSETB) VALUE(%SST(&QRT_RCVDTA 1 4)) CHGVAR VAR(&SH_OFFSET ) VALUE(%BIN(&SH_OFFSETB)) CHGVAR VAR(&SH_LSTSIZB) VALUE(%SST(&QRT_RCVDTA 13 4)) CHGVAR VAR(&SH_LSTSIZ ) VALUE(%BIN(&SH_LSTSIZB)) CHGVAR VAR(&SH_STRPOS ) VALUE(&SH_OFFSET + 1) CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(&SH_STRPOS) CHGVAR VAR(%BIN(&QRT_DTALEN)) VALUE(&SH_LSTSIZ) /*--+------------------------------------------------------------+--*/ /* + M A I N + */ /*--+------------------------------------------------------------+--*/ #_READ_: /*--+------------------------------------+--*/ /* + RETRIEVE LIST DATA FROM USER SPACE + */ /*--+------------------------------------+--*/ CHGVAR VAR(&SH_COUNT) VALUE(&SH_COUNT + 1) /* COUNT UP */ CALL PGM(QUSRTVUS) PARM(&SH_USRSPC + &QRT_STRPOS + &QRT_DTALEN + &QRT_RCVDTA ) CHGVAR VAR(&SH_MSGF ) VALUE(%SST(&QRT_RCVDTA 1 10)) CHGVAR VAR(&SH_LIB ) VALUE(%SST(&QRT_RCVDTA 11 10)) /* SET NEXT POSITION */ CHGVAR VAR(&SH_STRPOS) VALUE(&SH_STRPOS + &SH_LSTSIZ) CHGVAR VAR(%BIN(&QRT_STRPOS)) VALUE(&SH_STRPOS) /* DSPMSGD */ DSPMSGD RANGE(&MSGID) MSGF(&SH_LIB/&SH_MSGF) MONMSG MSGID(CPF2519) EXEC(DO) /* MSGID NOT FOUND */ RMVMSG MSGQ(*PGMQ) CLEAR(*NEW) CHGVAR VAR(&TEMP_20) VALUE(&SH_MSGF *CAT &SH_LIB) CHGVAR VAR(&TEMP_27) VALUE(&MSGID *CAT &TEMP_20) SNDPGMMSG MSGID(CPF2419) MSGF(QCPFMSG) + MSGDTA(&TEMP_27) + TOPGMQ(*EXT) + MSGTYPE(*STATUS) IF (&SH_LSTCNT = &SH_COUNT) GOTO #_EXIT_ GOTO #_READ_ ENDDO IF (&SH_LSTCNT = &SH_COUNT) GOTO #_EXIT_ /* AT END */ CHGVAR VAR(&SH_MSG ) VALUE('MESSAGE ID ' *BCAT + &MSGID *BCAT + 'FOUND IN MESSAGE FILE ' *BCAT + &SH_MSGF *BCAT + 'IN LIBRARY ' *BCAT + &SH_LIB ) SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) + MSGDTA(&SH_MSG) + MSGTYPE(*INFO) CHGVAR VAR(&SH_FOUND) VALUE('*YES') IF (&NEXT *EQ '*YES') GOTO #_READ_ /*--+------------------------------------------------------------+--*/ /* + END OF PROGRAM + */ /*--+------------------------------------------------------------+--*/ #_EXIT_: IF (&SH_FOUND *EQ '*NO') DO CHGVAR VAR(&TEMP_27) VALUE(&MSGID *CAT &MSGFANDLIB) SNDPGMMSG MSGID(CPF2419) MSGF(QCPFMSG) MSGDTA(&TEMP_27) + MSGTYPE(*ESCAPE) ENDDO ENDPGM