PGM PARM(&CMDNAME &STRING) /*------------------------------------------------------------------------*/ /* URIINZ : コマンド一時変更プログラム */ /* -- このプログラムはコマンドの初期値を設定します。 */ /* &STRING に長さとパラメータの初期値を戻します。 */ /* */ /* 2020/04/12 作成 */ /*------------------------------------------------------------------------*/ DCL VAR(&CMDNAME) TYPE(*CHAR) LEN(20) DCL VAR(&STRING) TYPE(*CHAR) LEN(5700) DCL VAR(&STRINGLEN) TYPE(*DEC) LEN(8 0) VALUE(1024) DCL VAR(&BIN2) TYPE(*CHAR) LEN(2) VALUE(X'0400') + /* 長さ 1024 バイト */ DCL VAR(&BIN4) TYPE(*CHAR) LEN(4) 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(&APIERR) TYPE(*CHAR) LEN(116) + VALUE(X'000074') /* 2 進数 */ DCL VAR(&NULL4) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /*--------------------------------------------------*/ /* 以下は装置の初期値パラメータ */ /*--------------------------------------------------*/ DCL VAR(&DEV_) TYPE(*CHAR) LEN(10) /*--------------------------------------------------*/ /* 以下は返信パラメータ */ /*--------------------------------------------------*/ DCL VAR(&URFROM) TYPE(*CHAR) LEN(40) + VALUE(' ??URFROM(') DCL VAR(&URTO) TYPE(*CHAR) LEN(40) + VALUE(' ??URTO(') /*--------------------------------------------------*/ /* 以下は作業用の変数 */ /*--------------------------------------------------*/ DCL VAR(&DATE) TYPE(*CHAR) LEN(6) DCL VAR(&YY) TYPE(*CHAR) LEN(2) DCL VAR(&MM) TYPE(*CHAR) LEN(2) DCL VAR(&DD) TYPE(*CHAR) LEN(2) DCL VAR(&CYY) TYPE(*CHAR) LEN(4) DCL VAR(&FROMYMD) TYPE(*CHAR) LEN(8) DCL VAR(&TOYMD) TYPE(*CHAR) LEN(8) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) /*( 環境の取得 )*/ RTVJOBA TYPE(&TYPE) DATE(&DATE) IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ CHGVAR VAR(&TOPGMQ) VALUE('*SYSOPR ') ENDDO /* バッチ */ ELSE CMD(DO) /* 対話式 */ CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ ') ENDDO /* 対話式 */ /* ************************************************ */ /* 返信パラメータの作成 */ /* ************************************************ */ CHGVAR VAR(&YY) VALUE(%SST(&DATE 01 02)) CHGVAR VAR(&MM) VALUE(%SST(&DATE 03 02)) CHGVAR VAR(&DD) VALUE(%SST(&DATE 05 02)) CHGVAR VAR(&CYY) VALUE('20' *CAT &YY) /*( 開始日 )*/ CHGVAR VAR(&FROMYMD) VALUE(&CYY *CAT &MM *CAT + '01') CHGVAR VAR(&URFROM) VALUE(&URFROM *TCAT &FROMYMD + *TCAT ') ') /*( 終了日 )*/ SELECT WHEN COND(&MM = '01') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '02') THEN(DO) CHGVAR VAR(&DD) VALUE('28') ENDDO WHEN COND(&MM = '03') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '04') THEN(DO) CHGVAR VAR(&DD) VALUE('30') ENDDO WHEN COND(&MM = '05') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '06') THEN(DO) CHGVAR VAR(&DD) VALUE('30') ENDDO WHEN COND(&MM = '07') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '08') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '09') THEN(DO) CHGVAR VAR(&DD) VALUE('30') ENDDO WHEN COND(&MM = '10') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO WHEN COND(&MM = '11') THEN(DO) CHGVAR VAR(&DD) VALUE('30') ENDDO WHEN COND(&MM = '12') THEN(DO) CHGVAR VAR(&DD) VALUE('31') ENDDO ENDSELECT CHGVAR VAR(&TOYMD) VALUE(&CYY *CAT &MM *CAT &DD) CHGVAR VAR(&URTO) VALUE(&URTO *TCAT &TOYMD *TCAT ')') /* ************************************************ */ /* 返信ストリングの作成 */ /* ************************************************ */ CHGVAR VAR(&STRING) VALUE(&BIN2) /* 長さ */ CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &URFROM) CHGVAR VAR(&STRING) VALUE(&STRING *TCAT &URTO) RETURN ERROR: /*( エラーがあったときは CPF0011 を *ESCAPE で戻す )*/ RCVMSG RMV(*NO) MSG(&MSG) SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) SNDPGMMSG MSGID(CPF0011) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) ENDPGM