**********************************************************************************************
* DBG197R4: Action output queue spool files (Delete/Hold/Release/Save)
* Copyright (C) 2003 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 XXXSPLF 80 Inz('XXXSPLF FILE(1234567890) -
D JOB(123456/1234567890/1234567890) -
D SPLNBR(12345)')
D XXXAction 3 Overlay(XXXSPLF:1)
D XXXFile 10 Overlay(XXXSPLF:14)
D XXXJob 28 Overlay(XXXSPLF:30)
D XXXSplNbr 5 0 Overlay(XXXSPLF:67)
*
D Command2 DS
D CHGSPLFA 100 Inz('CHGSPLFA FILE(1234567890) -
D JOB(123456/1234567890/1234567890) -
D SPLNBR(12345) SAVE(*YES)')
D CHGFile 10 Overlay(CHGSPLFA:15)
D CHGJob 28 Overlay(CHGSPLFA:31)
D CHGSplNbr 5 0 Overlay(CHGSPLFA:68)
**********************************************************************************************
* WORK FIELDS:
**********************************************************************************************
D PeCmdString S 256
D PeCmdLength S 15 5
??? D PeQualOutq S 20
D PeFile S 10
D PeUsrDta S 10
D PeUser S 10
D PeStartNbr S 5 0
D PeEndNbr S 5 0
D PeStatus S 6
D PeAction S 3
**********************************************************************************************
* CONSTANTS:
**********************************************************************************************
**********************************************************************************************
* FIELD RENAMES:
**********************************************************************************************
**********************************************************************************************
* ENTRY PARAMETERS:
**********************************************************************************************
C *ENTRY PList
C Parm PeFile
C Parm PeUsrDta
C Parm PeUser
C Parm PeStartNbr
C Parm PeEndNbr
C Parm PeStatus
C Parm PeAction
**********************************************************************************************
* KEY LISTS:
**********************************************************************************************
**********************************************************************************************
* MAINLINE:
**********************************************************************************************
* Strip trailing generic '*' from file so correct match is made
B001 C If PeFile > *blanks
B002 C If %SubSt(PeFile : %Len(%Trim(PeFile)) : 1) =
C '*'
C Eval %SubSt(PeFile : %Len(%Trim(PeFile)) : 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 (PeFile = ' ' Or %Trim(PeFile) =
C %SubSt(SPLNAME : 1 : %Len(%Trim(PeFile))))
C And (PeUser = ' ' Or PeUser = SPLUSERPRF)
C And (PeUsrDta = ' ' Or %Trim(PeUsrDta) =
C %SubSt(SPLUSRDTA : 1 :
C %Len(%Trim(PeUsrDta))))
C And (PeStartNbr = 0 Or PeStartNbr <= SPLNBR)
C And (PeEndNbr = 99999 Or PeEndNbr >= SPLNBR)
C And (PeStatus = '*ALL' Or
C PeStatus = SPLSTATUS)
* CHGSPLFA SAVE(*YES)
B003 C If PeAction = 'SAV'
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 Command2 PeCmdString
C Parm 100 PeCmdLength
* DLTSPLF//HLDSPLF/RLSSPLF
X003 C Else
C Eval XXXFile = SPLNAME
C Eval XXXJob = SPLJOBNBR + '/' +
C %Trim(SPLUSERPRF) + '/' +
C %Trim(SPLJOBNAME)
C Eval XXXSplNbr = SPLNBR
C Eval XXXAction = PeAction
* Move the spoolfile to the chosen output queue
C Call (E) 'QCMDEXC'
C Parm Command1 PeCmdString
C Parm 80 PeCmdLength
E003 C EndIf
E002 C EndIf
C Read DBG1860W
E001 C EndDo
*
C Eval *INLR = *On
C Return
**********************************************************************************************