IBM eSever iSeries専用。CLPのみで構成。i5/OS はV6R1M0。
仕様は、WRKSPLF SELECT(ユーザ名)の結果をもとにスプールファイルを削除する。
パラメータは、&PARM1に削除したいユーザー名、&PARM2に*ALLか個別のOUTQ名を指定する。
&PARM2があるのは、*ALLではQEZJOBLOGまでは削除したくないと思ったからで、
これで個別のOUTQ名のみ処理させることもできる。
(1)プログラム名:XDLTSPLF タイプ:CLP
PGM PARM(&PARM1 &PARM2) DCL VAR(&PARM1) TYPE(*CHAR) LEN(10) DCL VAR(&PARM2) TYPE(*CHAR) LEN(10) DCL VAR(&MSG) TYPE(*CHAR) LEN(80) DCL VAR(&SL) TYPE(*CHAR) LEN(10) DCL VAR(&RC) TYPE(*INT) LEN(4) DCL VAR(&W_SPLNO) TYPE(*DEC) LEN(6) DCLF FILE(TOOLLIB/SPLFLIST) OPNID(F1) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR)) CHGVAR VAR(&SL) VALUE('TOOLLIB ') CPYF FROMFILE(&SL/TEXTDATA) + TOFILE(QTEMP/TEXTDATA) MBROPT(*REPLACE) + CRTFILE(*YES) CLRPFM FILE(QTEMP/TEXTDATA) WRKSPLF SELECT(&PARM1) OUTPUT(*PRINT) CPYSPLF FILE(QPRTSPLF) TOFILE(QTEMP/TEXTDATA) + SPLNBR(*LAST) CPYF FROMFILE(&SL/SPLFLIST) + TOFILE(QTEMP/SPLFLIST) MBROPT(*REPLACE) + CRTFILE(*YES) CLRPFM FILE(QTEMP/SPLFLIST) CPYF FROMFILE(QTEMP/TEXTDATA) + TOFILE(QTEMP/SPLFLIST) MBROPT(*REPLACE) + FMTOPT(*NOCHK) OVRDBF FILE(SPLFLIST) TOFILE(QTEMP/SPLFLIST) READ: RCVF RCDFMT(DTFMT) OPNID(F1) MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(END)) IF COND(&PARM1 *NE &F1_USER) THEN(DO) GOTO CMDLBL(READ) ENDDO IF COND(&F1_STS *EQ 'OPN') THEN(DO) GOTO CMDLBL(READ) ENDDO IF COND(&PARM2 *NE '*ALL') THEN(DO) IF COND(&PARM2 *NE &F1_OUTQ) THEN(DO) GOTO CMDLBL(READ) ENDDO ENDDO IF COND(&PARM2 *EQ '*ALL') THEN(DO) IF COND(&F1_OUTQ *EQ 'QEZJOBLOG') THEN(DO) GOTO CMDLBL(READ) ENDDO ENDDO CALLSUBR SUBR(EXE_DLTF) RTNVAL(&RC) GOTO CMDLBL(READ) END: DLTOVR FILE(SPLFLIST) RETURN ERROR: RCVMSG RMV(*NO) MSG(&MSG) SNDMSG: SNDPGMMSG MSG(&MSG) MSGTYPE(*DIAG) RETURN TAG_DLTF: SUBR SUBR(EXE_DLTF) CHGVAR VAR(&W_SPLNO) VALUE(&F1_SPLNO) DLTSPLF FILE(&F1_SPLNM) + JOB(&F1_JOBNO/&F1_USER/&F1_JOBNM) + SPLNBR(&W_SPLNO) MONMSG MSGID(CPF0000) ENDSUBR RTNVAL(0) ENDPGM
(補足1)コマンドの出力を一時的に保存するTOOLLIB/SPLFLIST。事前に準備する。
A*** WRKSPLF SELECT(USER) BY V6R1M0 A R DTFMT A X01 2 A SPLNM 10 A X02 1 A USER 10O TEXT('KEY') A X03 1 A OUTQ 10 A X04 1 A X05 10 A X06 1 A STS 3 A X07 1 A X08 33 A DATE 8 A X09 1 A TIME 8 A X10 1 A SPLNO 6 A X11 1 A JOBNM 10 A X13 1 A JOBNO 6 A X14 73
(補足2)汎用の198桁のテキストデータTOOLLIB/TEXTDATA。事前に準備する。
A R DTREC A TEXTDATA 198O