FDREPORT Punch Examples
This section shows examples of generating JCL and control cards using FDREPORT data fields (RPTYPE=SELPCH). All examples in this section are found in the JCL library installed with FDR. The member names are EX5445x.
Generate ABR statements example
Use FDREPORT as a front-end filter for ABR, selecting data sets to be scratched by Superscratch. All data sets whose last index level begins with “LIST” or “TEMP” are scratched, if they were created more than one day ago. FDREPORT generates ABR control statements in the default format:
and writes them to the SYSPUNCH temporary data set that is read by the following ABR step.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD DSN=&&ABRIN,UNIT=SYSALLDA,SPACE=(TRK,(2,1)),
// DISP=(NEW,PASS),DCB=BLKSIZE=0
//SYSIN DD *
XSELECT XDSN=(**.LIST*,**.TEMP*),CRDAYS>1
PRINT ENABLE=ONLINE,RPTYPE=SELPCH
/*
//SUPERSCR EXEC PGM=FDRABR,COND=(0,NE,REPORT)
//SYSPRINT DD SYSOUT=*
//SYSPRIN1 DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//TAPE1 DD DUMMY
//SYSIN DD *
DUMP TYPE=SCR,ONLVOL,DSNENQ=USE,MAXCARDS=1000
/*
// DD DSN=&&ABRIN,DISP=(OLD,DELETE)
Generate ABR restore SELECT statements example
Generate a data set containing SELECT statements specifying the data set name, volume, and ABR generation and cycle for each selected data set, using a punch mask. This might be used at a disaster recovery site to do data set restores of selected data sets from their most recent ABR backup.
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSPUNCH DD DSN=SELPCH.OUTPUT,UNIT=TAPE,DISP=(,CATLG),
// DCB=BLKSIZE=0
//SYSIN DD *
XSELECT XDSN=PAYROLL.**
PUNCH FDRLIB=MASK PRINT ENABLE=ONLINE,RPTYPE=SELPCH
//MASK DD *
SELECT DSN=<NAME>,VOL=<VOL>,
GEN=<ABRGEN>,CYCLE=<ABRCYCLE>,NVOL=PAY*
/*
The generated statements on SYSPUNCH look like:
GEN=0123,CYCLE=005,NVOL=PAY*
Generate IDCAMS delete example
Generate an IDCAMS job stream to delete selected clusters and data sets. The job is submitted directly to the JES internal reader for execution. The punch mask is read from a member of the FDRLIB library.
//SYSPRINT DD SYSOUT=*
//SYSPUNCH DD SYSOUT=(A,INTRDR)
//SYSUDUMP DD SYSOUT=*
//FDRLIB DD DSN=USER1.FDREPORT,DISP=SHR
//SYSIN DD *
XSELECT XDSN=OLDFILES.**
PUNCH MASKNAME=IDCDEL,ECHO
PRINT DATATYPE=CATALOG,RPTYPE=SELPCH
/*
Member IDCDEL of library USER1.FDREPORT contains:
//DELETE JOB (ACCT),CLASS=M,MSGCLASS=X
//* DELETE OLD FILES
//DELETE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
)ENDPREFIX
DELETE <NAME> PURGE
)SUFFIX
/*
The job submitted to the internal reader looks like:
//* DELETE OLD FILES
//DELETE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
DELETE OLDFILES.JCL.CNTL PURGE
DELETE OLDFILES.RECORDS.KSDS PURGE
/*
Generate a job per volume example
FDREPORT can be used to generate a job or job step for each selected volume. This can be used to submit FDR backups, ICKDSF jobs, or other volume-oriented utility steps. This example shows using FDREPORT to submit ICKDSF jobs to initialize newly added volumes with UCB addresses 3340-334F.
//SYSPRINT DD SYSOUT=*
//PCHSEL DD SYSOUT=(A,INTRDR) SUBMIT THE INIT JOBS TO JES
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
DEFAULT IFSELECTERR=BYPASS,IFKEYWORDERR=BYPASS
XSELECT VLUNIT>=3340,VLUNIT<=334F,UCBSTATS=OFFLINE
PUNCH FDRLIB=MASKDD,ECHO
PRINT RPTYPE=SELPCH,DATATYPE=VOLDATA,PCHDDNAME=PCHSEL
/*
//MASKDD DD DATA
//INIT<VLUNIT> JOB ...
//INIT EXEC PGM=ICKDSF,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
INIT UNITADDRESS(<VLUNIT>) +
NOVERIFY +
NOCHECK +
NOMAP +
PURGE +
VALIDATE +
VOLID(SH<VLUNIT>) +
VTOC(0000,0001,14)
/*