PGM PARM(&SPLF &FILE &FILLIB) /*---------------------------------------------------------*/ /* CVTBCHSPLF : スプール・ファイルのファイル変換 */ /*---------------------------------------------------------*/ DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&SNDMSG) TYPE(*CHAR) LEN(132) DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) DCL VAR(&JOB) TYPE(*CHAR) LEN(10) + VALUE('QPRTJOB ') DCL VAR(&USER) TYPE(*CHAR) LEN(10) + VALUE('PGMR ') DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) DCL VAR(&FILE) TYPE(*CHAR) LEN(10) DCL VAR(&FILLIB) TYPE(*CHAR) LEN(10) DCL VAR(&SPLF) TYPE(*CHAR) LEN(10) DCL VAR(&OS400) TYPE(*CHAR) LEN(6) DCL VAR(&APIERR) TYPE(*CHAR) LEN(4) + VALUE(X'00000000') /* 2 進数 */ DCL VAR(&RCVDTA) TYPE(*CHAR) LEN(128) DCL VAR(&RCVLEN) TYPE(*CHAR) LEN(4) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) RTVJOBA TYPE(&TYPE) RTVDTAARA DTAARA(QGPL/QSS1MRI (1 6)) RTNVAR(&OS400) CHKOBJ OBJ(&FILLIB/&FILE) OBJTYPE(*FILE) MONMSG MSGID(CPF9800) EXEC(DO) CRTPF FILE(&FILLIB/&FILE) RCDLEN(132) IGCDTA(*YES) + LVLCHK(*NO) AUT(*ALL) ENDDO IF COND(&OS400 *GE 'V5R2M0') THEN(DO) /* + V5R2M0 以上 */ CHGVAR VAR(%BIN(&RCVLEN)) VALUE(128) CALL PGM(QSPRILSP) PARM(&RCVDTA &RCVLEN + 'SPRL0100' &APIERR) CHGVAR VAR(&SPLF) VALUE(%SST(&RCVDTA 9 10)) CHGVAR VAR(&JOB) VALUE(%SST(&RCVDTA 19 10)) CHGVAR VAR(&USER) VALUE(%SST(&RCVDTA 29 10)) CHGVAR VAR(&JOBNBR) VALUE(%SST(&RCVDTA 39 6)) ENDDO /* V5R2M0 以上 */ ELSE CMD(DO) /* V5R1M0 以下 */ CALL PGM(ASNET.COM/PRTJOBNO) PARM(&USER &JOBNBR) ENDDO /* V5R1M0 以下 */ CPYSPLF FILE(&SPLF) TOFILE(&FILLIB/&FILE) + JOB(&JOBNBR/&USER/&JOB) SPLNBR(*LAST) + MBROPT(*REPLACE) CTLCHAR(*NONE) /*( スプールの削除 )*/ DLTSPLF FILE(&SPLF) JOB(&JOBNBR/&USER/&JOB) + SPLNBR(*LAST) MONMSG CPF0000 RETURN ERROR: RCVMSG MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) SNDMSG: IF COND(&TYPE *EQ '0') THEN(DO) CHGVAR VAR(&SNDMSG) VALUE('(CVTBCHSPLF)-' *CAT + &MSG) SNDPGMMSG MSG(&SNDMSG) TOMSGQ(*SYSOPR) MSGTYPE(*COMP) DMPCLPGM ENDDO ELSE CMD(DO) SNDPGMMSG MSG(&MSG) TOMSGQ(*TOPGMQ) MSGTYPE(*DIAG) ENDDO ENDPGM