PGM PARM(&OPNDFNLIB &OPTION) /*---------------------------------------------------------*/ /* CRTOPNCHK: CRTOPNCMD 妥当性検査 */ /*---------------------------------------------------------*/ DCL VAR(&OPNDFNLIB) TYPE(*CHAR) LEN(20) DCL VAR(&OPNDFN) TYPE(*CHAR) LEN(10) DCL VAR(&OPTION) TYPE(*CHAR) LEN(4) DCL VAR(&OBJLIB) TYPE(*CHAR) LEN(10) DCL VAR(&USRDFN) TYPE(*CHAR) LEN(10) DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&MSGKEY) TYPE(*CHAR) LEN(4) DCL VAR(&USER) TYPE(*CHAR) LEN(10) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) CHGVAR VAR(&OPNDFN) VALUE(%SST(&OPNDFNLIB 01 10)) CHGVAR VAR(&OBJLIB) VALUE(%SST(&OPNDFNLIB 11 10)) /* ************************************************ */ /* *PRV ライブラリーの変更 */ /* ************************************************ */ RTVJOBA USER(&USER) CHGDTAARA DTAARA(QGPL/&USER (11 10)) VALUE(&OBJLIB) IF COND(&OPNDFN *EQ ' ') THEN(DO) SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA('0000 + OPNDTA 定義を指定してください。 + ') MSGTYPE(*DIAG) GOTO CMDERR ENDDO /*( OPNDTA 定義のチエック )*/ IF COND(&OPNDFN *NE '*NONE ') THEN(DO) CHGVAR VAR(&OPNDFN) VALUE(&OPNDFN *TCAT '_OPN') RTVOBJD OBJ(&OBJLIB/&OPNDFN) OBJTYPE(*FILE) + RTNLIB(&OBJLIB) USRDFNATR(&USRDFN) MONMSG MSGID(CPF9800 CPF2100) EXEC(DO) RCVMSG MSGTYPE(*LAST) RMV(*NO) KEYVAR(&MSGKEY) + MSG(&MSG) SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) + MSGDTA('0000' *CAT &MSG) MSGTYPE(*DIAG) GOTO CMDERR ENDDO IF COND(&USRDFN *NE 'OPNDFN ') THEN(DO) SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) + MSGDTA('0000' *CAT ' ライブラリー ' *TCAT + &OBJLIB *TCAT ' の ' *TCAT + &OPNDFN *TCAT ' は OPNDTA 定義ではありません。 ') + MSGTYPE(*DIAG) GOTO CMDERR ENDDO ENDDO RETURN CMDERR: SNDPGMMSG MSGID(CPF0002) MSGF(QSYS/QCPFMSG) + MSGTYPE(*ESCAPE) RETURN ERROR: RCVMSG RMV(*NO) MSG(&MSG) SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) ENDPGM: ENDPGM