********************************************************************************************** * DBG193R4: Purge output queue of old spoolfiles * Copyright (C) 2000 Martin Rowe <martin@dbg400.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ********************************************************************************************** H DATEDIT(*YMD) DEBUG(*YES) OPTION(*NODEBUGIO : *SRCSTMT) ********************************************************************************************** * FILES: ********************************************************************************************** FDBG1860W IF E DISK ********************************************************************************************** * ARRAYS: ********************************************************************************************** ********************************************************************************************** * DATA STRUCTURES: ********************************************************************************************** D SDS#DS SDS D SDS#Pgm 10 OVERLAY(SDS#DS:1) D SDS#User 10 OVERLAY(SDS#DS:254) * D Command1 DS D DLTSPLF 80 INZ('DLTSPLF FILE(1234567890) - D JOB(123456/1234567890/1234567890) - D SPLNBR(12345)') D DLTFile 10 OVERLAY(DLTSPLF:14) D DLTJob 28 OVERLAY(DLTSPLF:30) D DLTSplNbr 5 0 OVERLAY(DLTSPLF:67) ********************************************************************************************** * WORK FIELDS: ********************************************************************************************** D CutOffDate S D DATFMT(*ISO) D CutOffHeld S D DATFMT(*ISO) D CutOffSave S D DATFMT(*ISO) D DeleteRqd S 1N D P#CmdString S 256 D P#CmdLength S 15 5 D P#Retain S 5 0 D P#RtnHld S 5 0 D P#RtnSav S 5 0 D SpoolDate S D DATFMT(*ISO) ********************************************************************************************** * CONSTANTS: ********************************************************************************************** ********************************************************************************************** * FIELD RENAMES: ********************************************************************************************** ********************************************************************************************** * ENTRY PARAMETERS: ********************************************************************************************** C *ENTRY PLIST C PARM P#Retain C PARM P#RtnHld C PARM P#RtnSav ********************************************************************************************** * KEY LISTS: ********************************************************************************************** ********************************************************************************************** * MAINLINE: ********************************************************************************************** * Set cutoff date from current date minus retention days C *ISO MOVE *DATE CutOffDate C *ISO MOVE *DATE CutOffHeld C *ISO MOVE *DATE CutOffSave * Use default retention days for held spoolfiles if not specified B001 C IF P#RtnHld = -1 C EVAL P#RtnHld = P#Retain E001 C ENDIF * Use default retention days for saved spoolfiles if not specified B001 C IF P#RtnSav = -1 C EVAL P#RtnSav = P#Retain E001 C ENDIF C SUBDUR P#Retain:*D CutOffDate C SUBDUR P#RtnHld:*D CutOffHeld C SUBDUR P#RtnSav:*D CutOffSave * Loop through *OUTFILE for requested *OUTQ C 1 SETLL DBG1860W C READ DBG1860W * B001 C DOW NOT %EOF(DBG1860W) C *YMD MOVE SPLDATE SpoolDate C EVAL DeleteRqd = *off * B002 C SELECT S002 C WHEN SPLSTATUS = '*HELD' B003 C IF SpoolDate < CutOffHeld C EVAL DeleteRqd = *on E003 C ENDIF S002 C WHEN SPLSTATUS = '*SAVED' B003 C IF SpoolDate < CutOffSave C EVAL DeleteRqd = *on E003 C ENDIF S002 C OTHER B003 C IF SpoolDate < CutOffDate C EVAL DeleteRqd = *on E003 C ENDIF E002 C ENDSL * B002 C IF DeleteRqd C EVAL DLTFile = SPLNAME C EVAL DLTJob = SPLJOBNBR + '/' + C %TRIM(SPLUSERPRF) + '/' + C %TRIM(SPLJOBNAME) C EVAL DLTSplNbr = SPLNBR * Delete the spoolfile C CALL (E) 'QCMDEXC' C PARM DLTSPLF P#CmdString C PARM 80 P#CmdLength E002 C ENDIF C READ DBG1860W E001 C ENDDO * C EVAL *INLR = *on C RETURN **********************************************************************************************