We would like to delete all reports for a specific report ID. We are doing this with SARBCH /DELETE, but need to specify the generation number for every one. There are over a thousand occurrences of this report in View.
Is there an easier way to delete ALL occurrences of a report in View without having to specify the individual occurrences GEN or SEQ number?
Release : 14.0, Component : View, SARBCH, SEQ, GEN, delete, tape, all, occurrences, report, sysoutid
There is no "readily available" batch utility that could be run to delete the thousand occurrences of a particular report from tape.
However, what you could do is create a SARGRW utility job that would generate the thousand necessary /DELETE ID=sysoutid statements for you and write them into a flat file. You would then be able to feed that flat file in as INPUT to a SARBCH job that could deleted ALL tape occurrences of that sysout, as the file would have the specific GEN and SEQ numbers for each occurrence.
*** See below for Sample SARGRW & SARBCH JCL to perform the above utility functions ***
1. Sample SARGRW JCL to create a dataset with /DELETE ID= control statements for all TAPE occurrences of a specific SYSOUTID:
********************************* Top of Data *********************
//JOBCARD...
/*
//* SARGRW - GENERAL PURPOSE REPORT UTILITY
//*
//$$$$$$@ EXEC PGM=SARGRW
//STEPLIB DD DISP=SHR,DSN=your.hlq.CVDELOAD <<<===== YOUR LOADLIB
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//OUTFILE DD DISP=(,CATLG,DELETE),
// DSN=your.dsn.DELETE.CARDS, <<<===== YOUR DSN
// DCB=(RECFM=FB,LRECL=132,BLKSIZE=0),
// SPACE=(TRK,(5,1),RLSE),
// STORCLAS=???????? <<<===== YOUR STORCLS
//PRTFILE DD SYSOUT=*
//*
//* SAMPLE SARGRW CONTROL STATEMENTS TO GENERATE A FILE CONTAINING
//* "/DELETE ID=SYSOUTID" CONTROL STATEMENTS FOR NAMED SYSOUT
//*
//SYSIN DD *
/CONTROL SEQ=RID DATABASE=your.view.db <<<=== YOUR DB PREFIX
/SELECT SUBSTR(ID,1,8)='nnnnnnnn' <<<=== YOUR SYSOUT ID
/ OUTPUT '/DELETE ID=' COL(1)
/ OUTPUT ID COL(12)
/ OUTPUT 'GEN=' COL(50)
/ OUTPUT EDIT(GEN,'99999')
/ OUTPUT 'SEQ=' COL(60)
/ OUTPUT EDIT(SEQ,'99999')
/ END
/END
******************************** BOTTOM OF DATA **********************
* NOTE * REMOVE ALL <<<==== COMMENTS FROM SUBMITTED JCL OR GET RC=16 *
**********************************************************************
2. Sample SARBCH JCL to read in the control file created above and execute the /DELETE ID= DISK functions against the SYSOUTID's:
********************************* Top of Data *********************
//JOBCARD...
//*
//* S A R B C H
//*
//**************************************************
//$$$$$$@ EXEC PGM=SARBCH,PARM='your.view.db' <<<===== YOUR D/B
//STEPLIB DD DISP=SHR,DSN=your.hlq.CVDELOAD <<<===== YOUR LOADLIB
//SYSPRINT DD SYSOUT=*
//REPORT DD SYSOUT=*
//SYSIN DD DISP=SHR,DSN=your.dsn.DELETE.CARDS <<<===== YOUR DSN
/* FROM GRW
//
******************************** Bottom of Data *******************
For more information on using the SARGRW utility, please refer to the topic General Report Writer in the CA View documentation.......
https://techdocs.broadcom.com/us/en/ca-mainframe-software/traditional-management/ca-view/14-0/reference/database-utilities/general-report-writer.html