PGM /*-------------------------------------------------------------------*/ /* TESTPRT3 : 印刷スプールをデータ・ベースへコピーする */ /* */ /* 2017/08/19 作成 */ /*-------------------------------------------------------------------*/ DCL VAR(&JOB) TYPE(*CHAR) LEN(10) DCL VAR(&USER) TYPE(*CHAR) LEN(10) DCL VAR(&JOBNBR) TYPE(*CHAR) LEN(6) DCL VAR(&TYPE) TYPE(*CHAR) LEN(1) DCL VAR(&RCVDTA) TYPE(*CHAR) LEN(128) DCL VAR(&RCVLEN) TYPE(*CHAR) LEN(4) DCL VAR(&APIERR) TYPE(*CHAR) LEN(116) + VALUE(X'000074') /* 2 進数 */ /*( 環境の取得 )*/ RTVJOBA JOB(&JOB) USER(&USER) NBR(&JOBNBR) TYPE(&TYPE) /*( データ・ベースの作成 )*/ CRTPF FILE(QTEMP/QPRINT) RCDLEN(132) IGCDTA(*YES) + LVLCHK(*NO) AUT(*ALL) MONMSG CPF7300 /*( スプールを *HOLD にオーバーライド )*/ OVRPRTF FILE(QPRTOBJD) HOLD(*YES) LVLCHK(*NO) + SECURE(*YES) OVRSCOPE(*JOB) OPNSCOPE(*JOB) /*( 印刷ジョブの実行 )*/ DSPOBJD OBJ(SPOOLWTR) OBJTYPE(*LIB) OUTPUT(*PRINT) DLTOVR FILE(QPRTOBJD) LVL(*JOB) /*( QPRTJOB の JOB 番号を検索 )*/ IF COND(&TYPE *EQ '0') THEN(DO) /* バッチ */ CHGVAR VAR(%BIN(&RCVLEN)) VALUE(128) CALL PGM(QSPRILSP) PARM(&RCVDTA &RCVLEN + 'SPRL0100' &APIERR) 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 /* バッチ */ /*( 印刷スプールをデータ・ベースにコピー )*/ CPYSPLF FILE(QPRTOBJD) TOFILE(QTEMP/QPRINT) + JOB(&JOBNBR/&USER/&JOB) SPLNBR(*LAST) /*( 不要になったスプールを削除する )*/ DLTSPLF FILE(QPRTOBJD) JOB(*) SPLNBR(*LAST) ENDPGM