PGM PARM(&TANCOD &OPTION) /*-------------------------------------------------------------------*/ /* OUTCHK : コマンドの妥当性検査プログラム VLDCKR */ /* */ /* 2020/04/11 作成 */ /*-------------------------------------------------------------------*/ DCL VAR(&TANCOD) TYPE(*CHAR) LEN(4) DCL VAR(&OPTION) TYPE(*CHAR) LEN(10) DCL VAR(&DEV) TYPE(*CHAR) LEN(10) DCL VAR(&MSG) TYPE(*CHAR) LEN(132) DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) DCL VAR(&MSGF) TYPE(*CHAR) LEN(10) DCL VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(132) DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) DCL VAR(&TOPGMQ) TYPE(*CHAR) LEN(10) DCL VAR(&MSGTYPE) TYPE(*CHAR) LEN(10) + VALUE('*ESCAPE ') DCL VAR(&ERR) TYPE(*CHAR) LEN(1) DCL VAR(&NULL4) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) /*( 環境の取得 )*/ RTVJOBA TYPE(&TYPE) IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ CHGVAR VAR(&TOPGMQ) VALUE('*SYSOPR ') ENDDO /* バッチ */ ELSE CMD(DO) /* 対話式 */ CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ ') ENDDO /* 対話式 */ /*( 入力パラメータの検査 )*/ IF COND(&TANCOD *EQ ' ') THEN(DO) CHGVAR VAR(&MSG) + VALUE(' 担当者コードが入力されていません。 ') GOTO SNDMSG ENDDO /*( プログラムの実行 )*/ IF COND((&TANCOD *EQ '0001') *OR (&TANCOD *EQ + '0002') *OR (&TANCOD *EQ '0003')) THEN(DO) RETURN ENDDO ELSE CMD(DO) CHGVAR VAR(&MSG) VALUE(' 担当者コード ' *CAT + &TANCOD *TCAT ' の誤りです。 ') GOTO SNDMSG ENDDO ERROR: RCVMSG MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) + MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) + MSGFLIB(&MSGFLIB) SNDMSG: CHGVAR VAR(&MSGDTA) VALUE('0000' *CAT &MSG) /*( 妥当性検査のエラーは最初に CPD0006 を戻します )*/ SNDPGMMSG MSGID(CPD0006) MSGF(QCPFMSG) MSGDTA(&MSGDTA) + MSGTYPE(*DIAG) MONMSG MSGID(CPF2400) EXEC(RETURN) /*( 妥当性検査のエラーは CPF0002 を戻します )*/ SNDPGMMSG MSGID(CPF0002) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) ENDPGM