FNDMSGDV--Validity checking pgm for FNDMSGD
/********************************************************************/
/* */
/* FNDMSGDV...Validity check program for FNDMSGD */
/* */
/* Function: */
/* --------- */
/* This program will ensure that all of the objects */
/* exist before invoking the command processing program. */
/* */
/********************************************************************/
PGM PARM(&MSGFFULL &REBUILD)
DCL VAR(&MSGFFULL) TYPE(*CHAR) LEN(20)
DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&REBUILD) TYPE(*LGL) LEN(1)
DCL VAR(&FILEATR) TYPE(*CHAR) LEN(3) /* File +
attribute */
DCL VAR(&FILETYPE) TYPE(*CHAR) LEN(5) /* File +
type */
/* Declare error handling variables. */
DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) /* Error +
message ID */
DCL VAR(&MSG) TYPE(*CHAR) LEN(132) /* Error +
message text */
/* Global monitor for errors. */
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
/* Parse out the message file name and library from the input */
/* parameter */
CHGVAR VAR(&MSGF) VALUE(%SST(&MSGFFULL 01 10))
CHGVAR VAR(&MSGFLIB) VALUE(%SST(&MSGFFULL 11 10))
/* Verify existance of file. */
CHK_FILE:
CHKOBJ OBJ(&MSGFLIB/&MSGF) OBJTYPE(*MSGF)
MONMSG MSGID(CPF9801) EXEC(DO)
RTVMSG MSGID(CPF2407) MSGF(QCPFMSG) MSGDTA(&MSGF || +
&MSGFLIB) MSG(&MSG)
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
|| &MSG) MSGTYPE(*DIAG)
GOTO CMDLBL(ESCAPE)
ENDDO
RETURN:
RETURN /* Normal end of program */
ERROR:
/* Error handling */
DIAG:
RCVMSG MSG(&MSG) MSGID(&MSGID)
IF COND(&MSGID *EQ ' ') THEN(GOTO CMDLBL(ESCAPE))
SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000' +
|| &MSG) MSGTYPE(*DIAG)
GOTO CMDLBL(DIAG)
ESCAPE:
SNDPGMMSG MSGID(CPF0002) MSGF(*LIBL/QCPFMSG) +
MSGTYPE(*ESCAPE)
ENDPGM:
ENDPGM