********************************************************************************************** * DBG194R4: Move output queue * Copyright (C) 2001 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 CHGSPLFA 120 INZ('CHGSPLFA FILE(1234567890) - D JOB(123456/1234567890/1234567890) - D SPLNBR(12345) - D OUTQ(1234567890/1234567890)') D CHGFile 10 OVERLAY(CHGSPLFA:15) D CHGJob 28 OVERLAY(CHGSPLFA:31) D CHGSplNbr 5 0 OVERLAY(CHGSPLFA:68) D CHGOutQ 21 OVERLAY(CHGSPLFA:80) ********************************************************************************************** * WORK FIELDS: ********************************************************************************************** D P#CmdString S 256 D P#CmdLength S 15 5 D P#QualOutq S 20 D P#File S 10 D P#UsrDta S 10 D P#User S 10 D P#StartNbr S 5 0 D P#EndNbr S 5 0 D P#Status S 6 ********************************************************************************************** * CONSTANTS: ********************************************************************************************** ********************************************************************************************** * FIELD RENAMES: ********************************************************************************************** ********************************************************************************************** * ENTRY PARAMETERS: ********************************************************************************************** C *ENTRY PLIST C PARM P#QualOutq C PARM P#File C PARM P#UsrDta C PARM P#User C PARM P#StartNbr C PARM P#EndNbr C PARM P#Status ********************************************************************************************** * KEY LISTS: ********************************************************************************************** ********************************************************************************************** * MAINLINE: ********************************************************************************************** C EVAL CHGOutQ = C %TRIM(%SUBST(P#QualOutq : 11 : 10)) + '/' + C %TRIM(%SUBST(P#QualOutq : 1 : 10)) * Strip trailing generic '*' from file so correct match is made B001 C IF P#File > *blanks B002 C IF %SUBST(P#File : %LEN(%TRIM(P#File)) : 1) = C '*' C EVAL %SUBST(P#File : %LEN(%TRIM(P#File)) : 1) = C ' ' E002 C ENDIF E001 C ENDIF * Loop through *OUTFILE for requested *OUTQ C 1 SETLL DBG1860W C READ DBG1860W * B001 C DOW NOT %EOF(DBG1860W) * If the restriction criteria are empty or match the starting characters of the target field * File name & user data can be generic - user is an exact match B002 C IF (P#File = ' ' OR %TRIM(P#File) = C %SUBST(SPLNAME : 1 : %LEN(%TRIM(P#File)))) C AND (P#User = ' ' OR P#User = SPLUSERPRF) C AND (P#UsrDta = ' ' OR %TRIM(P#UsrDta) = C %SUBST(SPLUSRDTA : 1 : C %LEN(%TRIM(P#UsrDta)))) C AND (P#StartNbr = 0 OR P#StartNbr <= SPLNBR) C AND (P#EndNbr = 99999 OR P#EndNbr >= SPLNBR) C AND (P#Status = '*ALL' OR C P#Status = SPLSTATUS) C EVAL CHGFile = SPLNAME C EVAL CHGJob = SPLJOBNBR + '/' + C %TRIM(SPLUSERPRF) + '/' + C %TRIM(SPLJOBNAME) C EVAL CHGSplNbr = SPLNBR * Move the spoolfile to the chosen output queue C CALL (E) 'QCMDEXC' C PARM CHGSPLFA P#CmdString C PARM 120 P#CmdLength E002 C ENDIF C READ DBG1860W E001 C ENDDO * C EVAL *INLR = *on C RETURN **********************************************************************************************