GA Data Provider Instructions Appendix G: DataPrep JCL for Z/OS LE

November 29, 2012 Version 4.5

G–i

Appendix G: DataPrep JCL for OS/390Z/OS LE

Introduction...........................................................................................................................G–1

Step 1: JCL for Installation...................................................................................................G–1

Step 2: JCL for the Unload Tape ..........................................................................................G–2

Step 3: JCL for DataPrep Extract Validation........................................................................G–7

Step 4: JCL for DataPrep Delta Processing ........................................................................G–15

Step 5: JCL for Current File Backup ..................................................................................G–20

Step 6: JCL for Previous File Backup.................................................................................G–22

Step 7: JCL for NSLDS DataPrep Reporting .....................................................................G–25

Step 8: JCL for Renaming the Submittal File.....................................................................G–31
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–1

Introduction

The DataPrep JCL for Z/OS LE installation process creates dataset names on your system. The 

Unload JCL provided contains a specific naming convention. In particular, the second and last 

node in the dataset names contain identifying information (Version Release Date) to assist in 

tracking and identifying software in use. We strongly recommend that you retain this naming 

convention.

Step 1: JCL for Installation

The following JCL will be used once to unload additional JCL. JCL for the Unload Tape, step 2, 

will then unload the rest of the tape. Your site will probably have a JCL file similar to this that 

executes IEBCOPY. You should modify the file to have the file names indicated below.

The Install JCL

// CLASS=A,MSGCLASS=A,REGION=4M,NOTIFY=&SYSUID

//*

//* -------------------- DSY20012 --------------------

//* JOB DESCRIPTION

//*

//* SYSTEM SOFTWARE - GA DATA PROVIDER TAPE UNLOAD - PART1

//*

//* PSTEP010 - IEBCOPY

//*

//* --------------------------------------------------

//*

// SET ENV=P

// SET LVLSET=LS990923

// SET SPACE01=TRK

// SET UNITPERM=SYSDA

// SET UNITTAPE=CART

// SET VR=PROD

//*

//*

//* JOBLIB DD DISP=SHR,DSN=??????????????????????

//*

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP010 EXEC PGM=IEBCOPY

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..CUTTAPE.&LVLSET,

// DISP=SHR,

// UNIT=&UNITTAPE,

// LABEL=(2,SL)

//*** VOLSER=??????
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–2

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..CUTTAPE.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(2,1,2)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

Step 2: JCL for the Unload Tape

The following JCL was unloaded to your system in step 1. This JCL sets up the actual libraries 

and software to allow you to execute the DataPrep software. This Unload Tape JCL will 

normally run only once. However, if you need to run this JCL again to reinstall DataPrep, be 

aware that step PSTEP005 will delete all datasets previously created.

This JCL may be referenced from the library created with CUTTAPE as part of the name 

(created in step 1). The library member name is UNLOAD.

The Unload JCL

//PSY20013 JOB (P75333AA-5100AAAA,066),'GA TAPE UNLD2',

// CLASS=A,MSGCLASS=A,REGION=4M,NOTIFY=&SYSUID

//*

//* -------------------- DSY20013 --------------------

//* JOB DESCRIPTION

//*

//* SYSTEM SOFTWARE - GA DATA PROVIDER TAPE UNLOAD - PART2

//*

//* PSTEP010 - IEBGENER

//* PSTEP020 - IEBGENER

//* PSTEP030 - IEBCOPY

//* PSTEP040 - IEBCOPY

//* PSTEP050 - IEBCOPY

//* PSTEP060 - IEBCOPY

//* PSTEP070 - IEBCOPY

//* PSTEP080 - IEBGENER

//*

//* --------------------------------------------------

//*

// SET ENV=P

// SET LVLSET=LS990923

// SET SPACE01=TRK

// SET UNITPERM=SYSDA

// SET UNITTAPE=CART

// SET VR=PROD

// SET SC=GA

//*

//* JOBLIB DD DISP=SHR,DSN=??????????????????????????????

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–3

//*

//PSTEP005 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&VR..&SC..DOC.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD2 DD DSN=NSLDS&ENV..&VR..&SC..DBEXT.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD3 DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD4 DD DSN=NSLDS&ENV..&VR..&SC..JCLLIB.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD5 DD DSN=NSLDS&ENV..&VR..&SC..LOAD.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD6 DD DSN=NSLDS&ENV..&VR..&SC..DBEXTERR.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD7 DD DSN=NSLDS&ENV..&VR..&SC..LOADERR.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//TD8 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM,,DEFER)

//*

//*

//*

//PSTEP010 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..DOC.&LVLSET,

// DISP=SHR,

// LABEL=(3,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN)

//*** VOL=(,RETAIN,,SER=&VOLSER)
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–4

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..DOC.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(2,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP020 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..DBEXT.&LVLSET,

// DISP=SHR,

// LABEL=(4,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP010.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..DBEXT.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(1,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP020.RC NE 0 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP030 EXEC PGM=IEBCOPY

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..CNTL.&LVLSET,

// DISP=SHR,

// LABEL=(5,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP020.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(2,1,2)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP030.RC NE 0 THEN

//PSTEP031 EXEC CKRCODE
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–5

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP040 EXEC PGM=IEBCOPY

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..JCLLIB.&LVLSET,

// DISP=SHR,

// LABEL=(6,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP030.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..JCLLIB.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(10,2,2)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP040.RC NE 0 THEN

//PSTEP041 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP050 EXEC PGM=IEBCOPY

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..LOAD.&LVLSET,

// DISP=SHR,

// LABEL=(7,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP040.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..LOAD.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(10,1,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP050.RC NE 0 THEN

//PSTEP051 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP060 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–6

//*

//SYSUT1 DD DSN=NSLDS.&VR..DBEXTERR.&LVLSET,

// DISP=SHR,

// LABEL=(8,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP050.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..DBEXTERR.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(1,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP060.RC NE 0 THEN

//PSTEP061 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP070 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..LOADERR.&LVLSET,

// DISP=SHR,

// LABEL=(9,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP060.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..LOADERR.&LVLSET,

// DISP=(NEW,CATLG,DELETE),

// SPACE=(&SPACE01,(1,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP070.RC NE 0 THEN

//PSTEP071 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBCOPY --------------------

//*

//PSTEP080 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS.&VR..PREVEXT.&LVLSET,

// DISP=SHR,

// LABEL=(10,SL),

// UNIT=&UNITTAPE,

// VOL=(,RETAIN,,REF=*.PSTEP070.SYSUT1)

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// DISP=(NEW,CATLG,DELETE),
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–7

// SPACE=(&SPACE01,(1,1)),

// UNIT=&UNITPERM

//*

//*

// IF PSTEP080.RC NE 0 THEN

//PSTEP081 EXEC CKRCODE

// ENDIF

//*

//*

Step 3: JCL for DataPrep Extract Validation

The following JCL executes the DataPrep programs that perform Extract Validation and error 

reporting, and creates the Validated Extract file that will be the input to the Delta process. It can 

be referenced from the library created with JCLLIB as part of the name. The library member 

name is PRBD1000.

The summary error report can be sorted three different ways (by Error Count, Field Code, or 

Error Code) by changing the SET statement. See the SET statements in the in-stream JCL

documentation below. The detail error report is only sorted by SSN.

The JCL includes a sample Database Extract file containing 50 student/loan records of which 2 

are in error. This should be reported in the Extract Validation Log File Report, the Detail Extract 

Error Report, and the Summary Extract Error Report, which are outputs from the Extract 

Validation process.

A second sample extract is included for your use that contains 50 student/loan records and which 

error thresholds are exceeded. If you use this sample, an empty Validated Extract file will be 

created. You can use this second sample to test that you have installed DataPrep correctly. To 

use the second sample, you must change the JCL to reference the sample Database Extract 

containing DBEXTERR as part of the name. Be sure to comment out or delete the sample files 

once you have completed testing.

Previous Datasets

The first step in the JCL will delete any datasets previously created. If you want to save your 

previous Validated Extract file, you must copy it to another file name or run the backup JCL.

Extract Validation JCL

//PRBD1000 JOB (P75333AA-5100AAAA,066),'GA 1ST LEV VER',

// CLASS=A,MSGCLASS=A,REGION=6M

//*

//* -------------------- RBD100PB --------------------

//* JOB DESCRIPTION

//*

//* REPOSITORY BUILD - GA EXTRACT VALIDATION AND ERROR REPORTING

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–8

//* PSTEP010 - IEFBR14 DELETE FILES FROM PREVIOUS RUN

//* PSTEP020 - TIRIOVFI SPECIAL FOR COOL:GEN

//* PSTEP030 - RBD100PB VALIDATION

//* PSTEP040 - SORT SORT OF EXTRACT ERROR FILE

//* FOR DETAIL ERROR REPORT

//* PSTEP050 - TIRIOVFI SPECIAL FOR COOL:GEN

//* PSTEP060 - RBD200DB DETAIL ERROR REPORTING

//* PSTEP070 - IEBGENER PRINT DETAIL ERROR REPORT

//* PSTEP080 - UTD300PB SUMMARY ERROR REPORT COUNTER

//* PSTEP090 - SORT SORT SUMMARY ERROR REPORT FILE

//* PSTEP100 - UTD400PB SUMMARY ERROR REPORT PROGRAM

//* PSTEP110 - IEBGENER PRINT SUMMARY ERROR REPORT

//*

//* --------------------------------------------------

//* THIS IS SAMPLE JCL THAT WILL GO TO THE DATA PROVIDER'S SITE.

//* IT IS NOT TO BE RUN IN PRODUCTION AT NSLDS AND DOES NOT

//* REFLECT NSLDS PROGRAMMING STANDARDS. THIS JCL IS SENT TO THE

//* DATA PROVIDER AS A SUGGESTED SAMPLE AND ITS USE IS OPTIONAL.

//*

// SET ENV=P

// SET JOBNME=PRBD1000

// SET LVLSET=LS990923

// SET SPACE01=CYL

// SET SRCNME01=PRBD1000

// SET UNITPERM=SYSDA

// SET UNITTEMP=SYSDA

// SET VR=PROD

// SET SC=GA

//* ERROR COUNT ORDER

//* SET SORTPARM=PUTD4001

//* FIELD CODE ORDER

//* SET SORTPARM=PUTD4002

//* ERROR CODE ORDER

// SET SORTPARM=PUTD4003

//*

//*

//*

//*JOBLIB DD DSN=NSLDS&ENV..&VR..&SC..LOAD.&LVLSET,DISP=SHR

//*

//* -------------------- IEFBR14 --------------------

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.VALEXT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD2 DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD3 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTERR,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–9

//*

//TD4 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.LOGFILE,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD5 DD DSN=NSLDS&ENV..&JOBNME..PSTEP060.ERRORRPT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD6 DD DSN=NSLDS&ENV..&JOBNME..PSTEP050.IOVFILE,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD7 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.ERRSORT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD8 DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORCNT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD9 DD DSN=NSLDS&ENV..&JOBNME..PSTEP090.ERRORCNT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD10 DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORSUM,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//PSTEP020 EXEC PGM=TIRIOVFI

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=4096,

// RECFM=FB,

// SPACE=(TRK,(1,1),RLSE),

// UNIT=&UNITTEMP

//*

//TIRMSGF DD SYSOUT=*

//*

// IF PSTEP020.RC NE 110 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–10

//*

//* -------------------- RBD100PB --------------------

//*

//PSTEP030 EXEC PGM=RBD100PB

//*

//*

//GA001 DD DSN=NSLDS&ENV..&VR..&SC..DBEXT.&LVLSET,

// DISP=SHR

//*

//TEFFILE DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PUTD3000),

// DISP=SHR

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.VALEXT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(50,50),RLSE),

// UNIT=(&UNITPERM)

//*

//ER001 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTERR,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(50,50),RLSE),

// UNIT=(&UNITPERM)

//*

//LG001 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.LOGFILE,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=80,

// RECFM=FB,

// SPACE=(&SPACE01,(100,50),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// DISP=(OLD,DELETE,KEEP)

//*

//TIRMSGF DD SYSOUT=*

//*

//*

// IF PSTEP030.RC NE 1000 THEN

//PSTEP031 EXEC CKRCODE

// ENDIF

//*

//*------------------SORT-----------------------

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–11

//PSTEP040 EXEC PGM=SORT

//*

//SORTIN DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTERR,

// DISP=SHR

//*

//SORTOUT DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.ERRSORT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(5,5),RLSE),

// UNIT=(&UNITPERM)

//*

//SORTWK01 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK02 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK03 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SYSIN DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PRBD4000),

// DISP=SHR

//*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//*

//*

// IF PSTEP040.RC NE 0 THEN

//PSTEP041 EXEC CKRCODE

// ENDIF

//*

//*-------------------TIRIOVFI----------------------

//*

//PSTEP050 EXEC PGM=TIRIOVFI

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP050.IOVFILE,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=4096,

// RECFM=FB,

// SPACE=(CYL,(1,1),RLSE),

// UNIT=&UNITTEMP

//*

//TIRMSGF DD SYSOUT=*

//*

//*

// IF PSTEP050.RC NE 110 THEN

//PSTEP051 EXEC PGM=CMPABEND

// ENDIF

//*

//*--------------------RBD200PB-------------------------

//*

//PSTEP060 EXEC PGM=RBD200PB
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–12

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.ERRSORT,

// DISP=SHR

//*

//TEFFILE DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PUTD3000),

// DISP=SHR

//*

//GA006 DD DSN=NSLDS&ENV..&JOBNME..PSTEP060.ERRORRPT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=133,

// RECFM=FBA,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=&UNITTEMP

//*

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP050.IOVFILE,

// DISP=(OLD,DELETE,KEEP)

//*

//TIRMSGF DD SYSOUT=*

//*

//*

// IF PSTEP060.RC NE 1000 THEN

//PSTEP061 EXEC CKRCODE

// ENDIF

//*

//*-----------------------IEBGENER--------------------------

//*

//PSTEP070 EXEC PGM=IEBGENER

//*

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP060.ERRORRPT,

// DISP=SHR

//*

//SYSUT2 DD SYSOUT=*

//*

//* FOLLOWING WILL SEND REPORT DIRECTLY TO HP828 PRINTER

//*

//* SYSUT2 DD SYSOUT=(Q,,3E01),

//* DCB=(*.SYSUT1)

//*

//*

// IF PSTEP070.RC NE 0 THEN

//PSTEP071 EXEC PGM=CMPABEND
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–13

// ENDIF

//*

//*------------------UTD300PB------------------------

//*

//PSTEP080 EXEC PGM=UTD300PB

//*

//GA001 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTERR,

// DISP=SHR

//*

//TEFFILE DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PUTD3000),

// DISP=SHR

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORCNT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=117,

// RECFM=FB,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=&UNITTEMP

//*

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

// IF PSTEP080.RC NE 0 THEN

//PSTEP081 EXEC CKRCODE

// ENDIF

//*

//*

//*------------------SORT----------------

//*

//PSTEP090 EXEC PGM=SORT

//*

//SORTIN DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORCNT,

// DISP=SHR

//*

//SORTOUT DD DSN=NSLDS&ENV..&JOBNME..PSTEP090.ERRORCNT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=117,

// RECFM=FB,

// SPACE=(&SPACE01,(5,5),RLSE),

// UNIT=(&UNITPERM)

//*

//SORTWK01 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK02 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK03 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SYSIN DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(&SORTPARM),
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–14

// DISP=SHR

//*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//*

//*

// IF PSTEP090.RC NE 0 THEN

//PSTEP091 EXEC CKRCODE

// ENDIF

//*

//*--------------------UTD400PB------------------------

//*

//PSTEP100 EXEC PGM=UTD400PB

//*

//GA001 DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(&SORTPARM),

// DISP=SHR

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP090.ERRORCNT,

// DISP=SHR

//*

//GA003 DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORSUM,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=133,

// RECFM=FBA,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

// IF PSTEP090.RC NE 0 THEN

//PSTEP101 EXEC CKRCODE

// ENDIF

//*

//*

//*----------------------IEBGENER------------------------

//*

//PSTEP110 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORSUM,

// DISP=SHR

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP110.RC NE 0 THEN

//PSTEP111 EXEC CKRCODE

// ENDIF

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–15

Step 4: JCL for DataPrep Delta Processing

The following JCL executes Delta Processing. The output from this job will be the Delta 

Processing Log file and the final Submittal file. It can be referenced from the library created with 

JCLLIB as part of the name. The library member name is PRBD6000.

The Validated Extract file from PRBD1000 is the input to this job. It is sorted by the 61-byte 

identifier. The sorted Validated Extract file is the input to Delta Processing. The JCL references 

a sample prior Validated Extract file containing ‘PREVEXT’ as part of the name. The current 

Validated Extract file should come from the Extract Validation (PRBD1000) procedure. When 

using the sample prior Validated Extract file provided, the current Validated Extract file should 

be the output from PRBD1000 with the sample input file with ‘DBEXT’ as part of the file name. 

Using a different file could produce unexpected results. The output Submittal file will be sent to 

NSLDS. The sample Validated Extract file contains 50 records. Twenty records should be 

written to the final Submittal file.

Once the Delta process runs, steps 50 to 70 will create a backup of the previous Validated 

Extract file. Step 60 will delete the previous Validated Extract file, and step 70 will replace it 

with the sorted Validated Extract file.

Previous Datasets

The first step in the JCL will delete any datasets previously created. If you want to save your 

previous Submittal file, you must copy it to another file name or run the backup JCL.

Delta Processing JCL

//PRBD6000 JOB (P75333AA-5100AAAA,066),'GA DELTA PROCE',

// CLASS=A,MSGCLASS=A,REGION=6M

//*

//* -------------------- RBD600PB --------------------

//* JOB DESCRIPTION

//*

//* REPOSITORY BUILD - GA DELTA PROCEDURE

//*

//* PSTEP010 - IEFBR14 DELETE FILES FROM PREVIOUS RUN

//* PSTEP020 - TIRIOVFI SPECIAL FOR COOL:GEN

//* PSTEP030 - SORT SORT VALIDATED EXTRACT FILE

//* BY IDENTIFIER

//* PSTEP040 - RBD600PB DELTA PROCESSING

//* PSTEP050 - IEBGENER COPY PREVIOUS EXT FILE TO BKUP

//* PSTEP060 - IEFBR14 DELETE PREVIOUS EXT FILE

//* PSTEP070 - IEBGENER COPY CURRENT VALIDATED EXT FILE

//* TO THE PREVIOUS EXTRACT FILE

//* FOR NEXT PERIOD PROCESSING

//*

//* --------------------------------------------------

//* THIS IS SAMPLE JCL THAT WILL GO TO THE DATA PROVIDER'S SITE.

//* IT IS NOT TO BE RUN IN PRODUCTION AT NSLDS AND DOES NOT

//* REFLECT NSLDS PROGRAMMING STANDARDS. THIS JCL IS SENT TO THE

//* DATA PROVIDER AS A SUGGESTED SAMPLE AND ITS USE IS OPTIONAL.
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–16

//*

// SET JOBNME=PRBD6000

// SET LVLSET=LS990923

// SET SPACE01=CYL

// SET SRCNME01=PRBD1000

// SET UNITPERM=SYSDA

// SET UNITTEMP=SYSDA

// SET VR=PROD

// SET SC=GA

// SET ENV=P

// SET SORTPARM=PRB01000

//*

//*

//*

//JOBLIB DD DSN=NSLDS&ENV..&VR..&SC..LOAD.&LVLSET,DISP=SHR

//*

//* -------------------- IEFBR14 --------------------

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.LOG,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD2 DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD3 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.SUBMITTL,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD4 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTSORT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD5 DD DSN=NSLDS&ENV..&VR..&SC..PREVBKUP.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//PSTEP020 EXEC PGM=TIRIOVFI

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=4096,
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–17

// RECFM=FB,

// SPACE=(TRK,(1,1),RLSE),

// UNIT=&UNITTEMP

//*

//TIRMSGF DD SYSOUT=*

//*

// IF PSTEP020.RC NE 110 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF

//*

//*------------------SORT-----------------------------------

//*

//PSTEP030 EXEC PGM=SORT

//*

//SORTIN DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.VALEXT,

// DISP=SHR

//*

//SORTOUT DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTSORT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(5,5),RLSE),

// UNIT=(&UNITPERM)

//*

//SORTWK01 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK02 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK03 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SYSIN DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(&SORTPARM),

// DISP=SHR

//*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//*

//*

// IF PSTEP030.RC NE 0 THEN

//PSTEP031 EXEC CKRCODE

// ENDIF

//*

//*

//* -------------------- RBD600PB --------------------

//*

//PSTEP040 EXEC PGM=RBD600PB

//*

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTSORT,

// DISP=SHR

//*

//GA004 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// DISP=SHR

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–18

//GA003 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.SUBMITTL,

// BLKSIZE=0,

// DISP=(NEW,CATLG,KEEP),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(50,50),RLSE),

// UNIT=(&UNITPERM)

//*

//LG001 DD DSN=NSLDS&ENV..&JOBNME..PSTEP040.LOG,

// BLKSIZE=0,

// DISP=(NEW,CATLG,KEEP),

// LRECL=80,

// RECFM=FB,

// SPACE=(&SPACE01,(100,50),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.IOVFILE,

// DISP=(OLD,DELETE,KEEP)

//*

//TIRMSGF DD SYSOUT=*

//*

//*

// IF PSTEP040.RC NE 1000 THEN

//PSTEP041 EXEC CKRCODE

// ENDIF

//*

//*

//*-----------------IEBGENER--------------------------------

//* MAKE A BACKUP COPY OF THE PREVIOUS EXTRACT FILE

//*

//PSTEP050 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..PREVBKUP.&LVLSET,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–19

//*

//*

// IF PSTEP050.RC NE 0 THEN

//PSTEP051 EXEC CKRCODE

// ENDIF

//*

//*-----------------IEFBR14---------------------------------

//* DELETE THE CURRENT PREVIOUS EXTRACT FILE

//*

//PSTEP060 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

// IF PSTEP060.RC NE 0 THEN

//PSTEP061 EXEC CKRCODE

// ENDIF

//*

//*-----------------IEBGENER--------------------------------

//* MOVE THE CURRENT SORTED VALIDATED EXTRACT FILE TO

//* THE PREVIOUS EXTRACT FILE FOR NEXT PERIOD PROCESSING

//*

//PSTEP070 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP030.EXTSORT,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LVLSET,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP070.RC NE 0 THEN

//PSTEP071 EXEC CKRCODE

// ENDIF

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–20

Step 5: JCL for Current File Backup

The following JCL is the software to perform current file backup. This JCL copies the Validated 

Extract file, Submittal file, and Prior Validated Extract file to files with ‘BKUP01’ appended to 

the name. This JCL can be run after the Delta processing step or independently. This step is 

optional. We do not require you use this JCL if you have a preferred method to back up files.

This JCL may be referenced from the library created with JCLLIB as part of the name. The 

library member name is PRD01004.

DataPrep Current Backup JCL

//PRD01004 JOB (P75333AA-5100AAAA,066),'GA DELTA BKUP',

// CLASS=N,MSGCLASS=A,REGION=4M

//*

//* -------------------- PRB01004 --------------------

//* JOB DESCRIPTION

//*

//* REPOSITORY BUILD - GA DELTA PROCESSING

//* CURRENT FILE BACKUP

//*

//* PSTEP010 - IEFBR14

//* PSTEP020 - IEBGENER

//* PSTEP030 - IEBGENER

//* PSTEP040 - IEBGENER

//*

//* --------------------------------------------------

//*

// SET DB2=NSLP

// SET ENV=P

// SET LEVSET=LS990923

// SET SPACE01=CYL

// SET SRCNME00=PRBD1000

// SET SRCNME01=PRBD6000

// SET UNITPERM=SYSDA

// SET UNITTEMP=SYSDA

// SET VR=PROD

// SET SC=GA

//*

//* -------------------- IEFBR14 --------------------

//*

//*

//JOBLIB DD DSN=DB2.&DB2..DSNLOAD,DISP=SHR

// DD DSN=DB2.&DB2..DSNEXIT,DISP=SHR

// DD DSN=DB2.BMCUTIL.&DB2..LOAD,DISP=SHR

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP020.VALEXT.BKUP01,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.SUBMITTL.BKUP01,
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–21

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD3 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP040.PREVEXT.BKUP01,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP020 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP030.VALEXT,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP020.VALEXT.BKUP01,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP020.RC NE 0 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP030 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP040.SUBMITTL,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.SUBMITTL.BKUP01,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–22

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP030.RC NE 0 THEN

//PSTEP031 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP040 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LEVSET,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP040.PREVEXT.BKUP01,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP040.RC NE 0 THEN

//PSTEP041 EXEC CKRCODE

// ENDIF

Step 6: JCL for Previous File Backup

The following JCL is the software to perform previous file backup. This JCL copies the current 

backup copies of the Validated Extract file, Submittal file, and Prior Validated Extract file to 

files with ‘BKUP02’ appended to the name. This JCL can be run after the current backup job. 

This step is optional. We do not require you use this JCL if you have a preferred method to back 

up files.

This JCL may be referenced from the library created with JCLLIB as part of the name. The 

library member name is PRD01003.

DataPrep Previous Backup JCL

//PRD01003 JOB (P75333AA-5100AAAA,066),'GA DELTA BKUP',

// CLASS=N,MSGCLASS=A,REGION=4M

//*

//* -------------------- DRD01003 --------------------
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–23

//* JOB DESCRIPTION

//*

//* REPOSITORY BUILD - GA DELTA PROCESSING

//* PREVIOUS FILE BACKUP

//*

//* PSTEP010 - IEFBR14

//* PSTEP020 - IEBGENER

//* PSTEP030 - IEBGENER

//* PSTEP040 - IEBGENER

//*

//* --------------------------------------------------

//*

// SET DB2=NSLP

// SET ENV=P

// SET LEVSET=LS990923

// SET SPACE01=CYL

// SET SRCNME00=PRBD1000

// SET SRCNME01=PRBD6000

// SET UNITPERM=SYSDA

// SET UNITTEMP=SYSDA

// SET VR=PROD

// SET SC=GA

//*

//* -------------------- IEFBR14 --------------------

//*

//*

//JOBLIB DD DSN=DB2.&DB2..DSNLOAD,DISP=SHR

// DD DSN=DB2.&DB2..DSNEXIT,DISP=SHR

// DD DSN=DB2.BMCUTIL.&DB2..LOAD,DISP=SHR

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP020.VALEXT.BKUP02,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.SUBMITTL.BKUP02,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD3 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP040.PREVEXT.BKUP02,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP020 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–24

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP020.VALEXT.BKUP01,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME00..PSTEP020.VALEXT.BKUP02,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP020.RC NE 0 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP030 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.SUBMITTL.BKUP01,

// DISP=SHR

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP030.SUBMITTL.BKUP02,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP030.RC NE 0 THEN

//PSTEP031 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP040 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&VR..&SC..PREVEXT.&LEVSET,

// DISP=SHR
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–25

//*

//SYSUT2 DD DSN=NSLDS&ENV..&SRCNME01..PSTEP040.PREVEXT.BKUP02,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP040.RC NE 0 THEN

//PSTEP041 EXEC CKRCODE

// ENDIF

Step 7: JCL for NSLDS DataPrep Reporting

The following JCL executes the software to perform error reporting. This JCL will be used 

primarily to report any errors you receive from the Load Process Error file that you will receive 

from NSLDS after each submittal. It can also be used to report errors from the Extract Validation 

process.

This JCL may be referenced from the library created with JCLLIB as part of the name. The 

library member name is PRBD2000.

As with the Validation and Error Reporting JCL above, the option to sort the summary error 

report three different ways (by Error Count, Field Code, or Error Code) is available by changing 

the SET statement. See the SET statements in the in-stream JCL documentation below. The 

Detail Error Report is only sorted by SSN.

Remember that the first step in the JCL will delete any datasets previously created. If you want to 

save your previous error files, you may want to copy them to another file name or run the backup 

JCL.

The JCL includes a sample Load Process Error file containing 11 student/loan records. This 

should be reported in the Detail Error Report and the Summary Error Report, which are outputs 

from this process.

DataPrep Reporting JCL

//PRBD2000 JOB (P75333AA-5100AAAA,066),'GA ERROR RPT',

// CLASS=A,MSGCLASS=A,REGION=6M,NOTIFY=L#B

//*

//* -------------------- RBD221DB --------------------

//PRBD2000 JOB (P75333AA-5100AAAA,066),'GA ERROR RPT',

// CLASS=A,MSGCLASS=A,REGION=6M

//*

//* -------------------- RBD200PB --------------------

//* JOB DESCRIPTION
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–26

//*

//* REPOSITORY BUILD - GA EXTRACT OR LOAD ERROR REPORTING

//*

//* PSTEP010 - IEFBR14 DELETE FILES FROM PREVIOUS RUN

//* PSTEP020 - SORT SORT EXTRACT/LOAD FILE BY SSN

//* PSTEP070 - TIRIOVFI SPECIAL FOR COOL:GEN

//* PSTEP080 - RBD200PB DETAIL ERROR REPORT

//* PSTEP090 - IEBGENER PRINT DETAIL ERROR REPORT

//* PSTEP100 - UTD300PB SUMMARY ERROR REPORT COUNTER

//* PSTEP110 - SORT SORT SUMMARY ERROR REPORT FILE

//* PSTEP120 - UTD400PB SUMMARY ERROR REPORT PROGRAM

//* PSTEP130 - IEBGENER PRINT SUMMARY ERROR REPORT

//*

//* --------------------------------------------------

//* THIS IS SAMPLE JCL THAT WILL GO TO THE DATA PROVIDER'S SITE.

//* IT IS NOT TO BE RUN IN PRODUCTION AT NSLDS AND DOES NOT

//* REFLECT NSLDS PROGRAMMING STANDARDS. THIS JCL IS SENT TO THE

//* DATA PROVIDER AS A SUGGESTED SAMPLE AND ITS USE IS OPTIONAL.

//*

// SET JOBNME=PRBD2000

// SET LVLSET=LS990923

// SET SPACE01=CYL

// SET SRCNME01=PRBD1000

// SET UNITPERM=SYSDA

// SET UNITTEMP=SYSDA

// SET VR=PROD

// SET ENV=P

// SET SC=GA

//*

//* ERROR COUNT ORDER

// SET SORTPARM=PUTD4001

//*

//* FIELD CODE ORDER

//* SET SORTPARM=PUTD4002

//*

//* ERROR CODE ORDER

//* SET SORTPARM=PUTD4003

//*

//*

//JOBLIB DD DISP=SHR,DSN=NSLDS&ENV..&VR..&SC..LOAD.&LVLSET

//*

//* -------------------- IEFBR14 --------------------

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD5 DD DSN=NSLDS&ENV..&JOBNME..PSTEP070.IOVFILE,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD6 DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORRPT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD7 DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORCNT,

// DISP=(MOD,DELETE,DELETE),
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–27

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD8 DD DSN=NSLDS&ENV..&JOBNME..PSTEP110.ERRORCNT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD9 DD DSN=NSLDS&ENV..&JOBNME..PSTEP120.ERRORSUM,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//TD10 DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.EXTSORT,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//* -------------------- SORT --------------------

//*

//PSTEP020 EXEC PGM=SORT

//*

//*

//SORTIN DD DSN=NSLDS&ENV..&VR..&SC..LOADERR.&LVLSET,

// DISP=SHR

//*

//SORTOUT DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.EXTSORT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(1,1),RLSE),

// UNIT=(&UNITPERM)

//*

//SORTWK01 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK02 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK03 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SYSIN DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PRBD4000),

// DISP=SHR

//*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//*

//*

// IF PSTEP020.RC NE 0 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–28

//*

//PSTEP070 EXEC PGM=TIRIOVFI

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP070.IOVFILE,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=4096,

// RECFM=FB,

// SPACE=(CYL,(1,1),RLSE),

// UNIT=&UNITTEMP

//*

//TIRMSGF DD SYSOUT=*

//*

// IF PSTEP070.RC NE 110 THEN

//PSTEP071 EXEC CKRCODE

// ENDIF

//*

//* -------------------- RBD200PB --------------------

//*

//PSTEP080 EXEC PGM=RBD200PB

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP020.EXTSORT,

// DISP=SHR

//*

//TEFFILE DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PUTD3000),

// DISP=SHR

//*

//GA006 DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORRPT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=133,

// RECFM=FBA,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=&UNITTEMP

//*

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

//*

//TIRERRF DD SYSOUT=*

//*

//TIRIOVF DD DSN=NSLDS&ENV..&JOBNME..PSTEP070.IOVFILE,

// DISP=(OLD,DELETE,KEEP)

//*

//TIRMSGF DD SYSOUT=*

//*

//*

// IF PSTEP080.RC NE 1000 THEN

//PSTEP081 EXEC CKRCODE

// ENDIF

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–29

//* -------------------- IEBGENER --------------------

//*

//PSTEP090 EXEC PGM=IEBGENER

//*

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP080.ERRORRPT,

// DISP=SHR

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP090.RC NE 0 THEN

//PSTEP091 EXEC CKRCODE

// ENDIF

//*

//* -------------------- UTD300PB --------------------

//*

//PSTEP100 EXEC PGM=UTD300PB

//*

//GA001 DD DSN=NSLDS&ENV..&VR..&SC..LOADERR.&LVLSET,

// DISP=SHR

//*

//TEFFILE DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(PUTD3000),

// DISP=SHR

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORCNT,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=117,

// RECFM=FB,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=&UNITTEMP

//*

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

// IF PSTEP100.RC NE 0 THEN

//PSTEP100 EXEC CKRCODE

// ENDIF

//*

//*

//* -------------------- SORT --------------------

//*

//PSTEP110 EXEC PGM=SORT

//*

//SORTIN DD DSN=NSLDS&ENV..&JOBNME..PSTEP100.ERRORCNT,

// DISP=SHR

//*

//SORTOUT DD DSN=NSLDS&ENV..&JOBNME..PSTEP110.ERRORCNT,
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–30

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=117,

// RECFM=FB,

// SPACE=(&SPACE01,(5,5),RLSE),

// UNIT=(&UNITPERM)

//*

//SORTWK01 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK02 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SORTWK03 DD SPACE=(&SPACE01,(100,100)),

// UNIT=&UNITTEMP

//*

//SYSIN DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(&SORTPARM),

// DISP=SHR

//*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//*

//*

// IF PSTEP110.RC NE 0 THEN

//PSTEP111 EXEC CKRCODE

// ENDIF

//*

//* -------------------- UTD400PB --------------------

//*

//PSTEP120 EXEC PGM=UTD400PB

//*

//GA001 DD DSN=NSLDS&ENV..&VR..&SC..CNTL.&LVLSET(&SORTPARM),

// DISP=SHR

//*

//GA002 DD DSN=NSLDS&ENV..&JOBNME..PSTEP110.ERRORCNT,

// DISP=SHR

//*

//GA003 DD DSN=NSLDS&ENV..&JOBNME..PSTEP120.ERRORSUM,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=133,

// RECFM=FBA,

// SPACE=(&SPACE01,(10,10),RLSE),

// UNIT=(&UNITPERM)

//*

//SYSABOUT DD SYSOUT=*

//SYSDBOUT DD SYSOUT=*

//SYSOUT DD SYSOUT=*

//SYSPRINT DD SYSOUT=*

//SYSUDUMP DD SYSOUT=*

//*

// IF PSTEP120.RC NE 0 THEN

//PSTEP121 EXEC CKRCODE

// ENDIF

//*

//*

//* -------------------- IEBGENER --------------------
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–31

//*

//PSTEP130 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=NSLDS&ENV..&JOBNME..PSTEP120.ERRORSUM,

// DISP=SHR

//*

//SYSUT2 DD SYSOUT=*

//*

//*

// IF PSTEP120.RC NE 0 THEN

//PSTEP121 EXEC CKRCODE

// ENDIF

//*

Step 8: JCL for Renaming the Submittal File

The following JCL will be used to rename the final Submittal file for transmission to NSLDS. 

The Data Provider Instructions specify naming standards for final Submittal file by tape. Modify

the set statements as directed in the JCL.

//PRBD1001 JOB (P75333AA-5100AAAA,066),'RB01 RNME SUB FILE',

// CLASS=N,MSGCLASS=A,REGION=4M

//*

//* -------------------- PRBD1001 --------------------

//* JOB DESCRIPTION

//*

//* REPOSITORY BUILD - GA RENAME SUBMITTAL FILE

//*

//* PSTEP010 - IEFBR14

//* PSTEP020 - IEBGENER

//*

//* --------------------------------------------------

//*

// SET DB2=NSLP

// SET HLQDSN=NSLDSP

// SET HLQTGT=NSLINPTP

// SET LEVSET=LS990923

// SET SPACE01=CYL

// SET SRCNME01=PRBD6000

// SET UNITPERM=SYSDA

//*

//* -------------------- NOTE --------------------

//* REPLACE XXX WITH GA CODE

//* REPLACE 9999 WITH SUBMITTAL MONTH (MM) AND DAY (DD)

//*

// SET GACODE=XXX

// SET DATEMMDD=9999

//*

//* -------------------- NOTE --------------------

//*
GA Data Provider Instructions Appendix G: DataPrep JCL for OS/390 LE

November 29, 2012 Version 4.5

G–32

//* -------------------- IEFBR14 --------------------

//*

//*

//JOBLIB DD DSN=DB2.&DB2..DSNLOAD,DISP=SHR

// DD DSN=DB2.&DB2..DSNEXIT,DISP=SHR

// DD DSN=DB2.BMCUTIL.&DB2..LOAD,DISP=SHR

//*

//PSTEP010 EXEC PGM=IEFBR14

//*

//TD1 DD DSN=&HLQTGT..GA&GACODE..D&DATEMMDD,

// DISP=(MOD,DELETE,DELETE),

// SPACE=(TRK,(1,1)),

// UNIT=(&UNITPERM)

//*

//*

// IF PSTEP010.RC NE 0 THEN

//PSTEP011 EXEC CKRCODE

// ENDIF

//*

//* -------------------- IEBGENER --------------------

//*

//PSTEP020 EXEC PGM=IEBGENER

//*

//SYSIN DD DUMMY

//*

//SYSPRINT DD SYSOUT=*

//*

//SYSUT1 DD DSN=&HLQDSN..&SRCNME01..PSTEP040.SUBMITTL,

// DISP=SHR

//*

//SYSUT2 DD DSN=&HLQTGT..GA&GACODE..D&DATEMMDD,

// BLKSIZE=0,

// DISP=(NEW,CATLG,DELETE),

// LRECL=640,

// RECFM=FB,

// SPACE=(&SPACE01,(100,10),RLSE),

// UNIT=(&UNITPERM)

//*

//*

// IF PSTEP020.RC NE 0 THEN

//PSTEP021 EXEC CKRCODE

// ENDIF