Example: Use of REPRO to copy PS file to GDG dataset.
//PSTOGDG JOB (1234),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,REGION=6M
//******************************************************
//*SAMPLE JCL REPRO/COPY DATA FROM PS TO GDG USING REPRO
//******************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//PSFILE DD DSN=XXXXXXX.YYYYYYYY.CUSTOMER.INPUT,
// DISP=SHR
//GDGFILE DD DSN=XXXXXXX.YYYYYYYY.CUSTOMER.BKUP(+1),
// DISP=(NEW,CATLG,DELETE),
// UNIT=TEST,SPACE=(CYL,(10,10),RLSE),
// DCB=(MODEL.GDG,RECFM=FB,LRECL=80)
//SYSIN DD *
REPRO INFILE(PSFILE) OUTFILE(GDGFILE)
/*
Example: Use of REPRO to copy KSDS VSAM to GDG dataset.
//KSTOGDG JOB (1234),'INDUS',CLASS=A,MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,REGION=6M
//*********************************************************
//*SAMPLE JCL REPRO/COPY DATA FROM KSDS TO GDG USING REPRO
//*********************************************************
//KSDSGDG EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//KSDSFILE DD DSN=XXXXXXX.YYYYYYYY.CUSTOMER.KEYFILE,
// DISP=SHR
//GDGFILE DD DSN=XXXXXXX.YYYYYYYY.CUSTOMER.KEYFILE.BKUP(+1),
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,SPACE=(CYL,(10,10),RLSE),
// DCB=(MODEL.GDG,RECFM=FB,LRECL=80)
//SYSIN DD *
REPRO INFILE(KSDSFILE) OUTFILE(GDGFILE)
/*
Example: Use of REPRO to copy KSDS file records at row positions 6 to 15 to the output GDG dataset.
//KSDSGDG EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//KSDSFILE DD DSN=PAYT.PAYROLL.PROCESS.KEYFILE,
// DISP=SHR
//GDGFILE DD DSN=PAYT.PAYROLL.PROCESS.KEYFILE.BKUP(+1),
// DISP=(NEW,CATLG),
// UNIT=SYSDA,SPACE=(CYL,(10,10),RLSE),
// DCB=(MODEL.GDG,RECFM=FB,LRECL=325)
//SYSIN DD *
REPRO INFILE(KSDSFILE) OUTFILE(GDGFILE) -
SKIP(5) COUNT(10)
/*
Example: Use of REPRO to copy PS file to VSAM dataset.
//PSTOVSAM JOB (1234),'INDUS',CLASS=A,
// 'MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,REGION=6M
//****************************************************
//*SAMPLE JCL REPRO/COPY DATA FROM PS TO VSAM KSDS
//****************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
REPRO -
INDATASET(XXXXXXX.YYYYYYYY.CUSTOMER.INPUT) -
OUTDATASET(XXXXXXX.YYYYYYYY.CUSTOMER.KSDS.CLUSTER) -
SKIP(3) -
COUNT(3)
/*
Example: Use of REPRO to copy VSAM to PS file.
//KSDSTOPS JOB(1234),'INDUS',CLASS=A,
// MSGCLASS=A,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID,REGION=6M
//***************************************************
//* SAMPLE JCL REPRO/COPY DATA FROM VSAM KSDS TO PS.
//***************************************************
//STEPOZA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//DD1 DD DSN=XXXXXXX.CUSTOMER.KSDS.CLUSTER,DISP=SHR
//DD2 DD DSN=XXXXXXX.CUSTOMER.OUTPUT,
// DISP=(NEW,CATLG,DELETE),
// SPACE=(TRK(1,1),RLSE),
// UNIT=SYSDA,
// DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN DD *
REPRO -
INFILE(DD1) -
OUTFILE(DD2) -
FROMKEY(4444) -
TOKEY(5555)
/*
Best Practices for VSAM REPRO
Good habits improve reliability and performance:
- Always ensure the target VSAM cluster is defined and empty when performing an initial load.
- Use FROMKEY/TOKEY or SKIP/COUNT for partial copies to reduce I/O.
- Back up critical VSAM files regularly via REPRO to sequential or GDG datasets.
- Include SYSPRINT DD so you can review REPRO statistics and message diagnostics.
VSAM Tutorials