Prism-CS Sample JOB Stream (In-Line JCL) | [Home] [Compiles] [DataTransfer] [Inventory] [JCLTRANS] [LCPs] [Methodology] [RunTime] [Updates] | © 1988-2003 Gilbert Saint-Flour |
By default, the Prism-CS JCL Translator generates in-line JCL, i.e. self-contained JCL which does not invoke procedures, Include members, or off-line control cards stored in PDS members. By customising the JCL exit routine, the MVS JCL can be structured differently, for example by separating the JCL in three parts (run-JCL, procedure, control-cards) as shown in the off-line JCL example below.
//INLINE1 JOB (ACCT#),'IN-LINE JCL',
// CLASS=A,
// MSGCLASS=X,
// MSGLEVEL=(1,1),
// REGION=6M
//*
//JOBLIB DD DSNAME=PROD.BATCH.LOAD,
// DISP=SHR
//*
//* STEP010 PGM=SORT
//*
//STEP010 EXEC PGM=SORT
//SORTIN DD DSN='DR LICENSE',
// DISP=SHR,
// RECFM=FB,LRECL=225,BLKSIZE=2250,
// UNIT=TAPE,
// VOL=SER=KEYPCH
// DD DSN=PROD.PDP.SPEC.WSR.NOT.SORTED,
// DISP=SHR
//SORTOUT DD DSN=PROD.PDP.SPEC.WSR.SORTED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,(45,11),RLSE)
//SYSOUT DD SYSOUT=*
//SYSIN DD *
MERGE FIELDS=COPY
RECORD TYPE=F,LENGTH=225
END
/*
//*
//* STEP020 PGM=CMLD045
//*
//STEP020 EXEC PGM=CMLD045,PARM='/UPSI(10000000)'
//ABSIN DD DSN=SFB8.HOAB.SD.SORTED.VOUCHER.CHECK.INTRFACE,
// DISP=SHR
//CMLCHIS DD DSN=PROD.CAB.VC.REFUND.HISTORY,
// DISP=SHR
//CMLCHIS2 DD DSN=PATH.PROD.CAB.VC.RH.CHECK.ALT,
// DISP=SHR
//CMLCHIS1 DD DSN=PROD.PDP.SPEC.WSR.SORTED,
// DISP=SHR
//CHECKNO DD DSN=PROD.HOLD.VOUCHER.CHECK.NUMBER.FILE,
// DISP=SHR
//CLEDGER DD DSN=PROD.CHECK.LEDGER.FILE,
// DISP=SHR
//PRT2 DD SYSOUT=(X,,CK07),DEST=(N1,DUM2)
//PRT3 DD SYSOUT=(G,,LPO1)
//PRT1 DD SYSOUT=(X,,CK07),DEST=(N1,DUM1)
//SYSOUT DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
981231
/*
//*
//* STEP030 PGM=EZTPA00
//*
//STEP030 EXEC PGM=EZTPA00
//SORTIN DD DSN='DR LICENSE',
// DISP=SHR,
// RECFM=FB,LRECL=225,BLKSIZE=2250,
// UNIT=TAPE,
// VOL=SER=KEYPCH
//PCPAUL DD DSN=MVS.PCPAUL,
// DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
LIST OFF
PARM DEVICE (FBA) +
DEBUG(NOCLIST, NODMAP) +
LIST(NOFILE NOPARM) +
SORT(MSG (NO))
FILE SYS000 FB(225 0)
FILE PCPAUL VS (ES)
JOB INPUT SYS000
PUT PCPAUL FROM SYS000
PRINT REP-001
REPORT REP-001 LINESIZE 132 SUMMARY
CONTROL
TITLE 01 'ESCHEATS RECORDS COPIED'
TITLE 02 'EZT PLUS PROGRAM ESZ001'
LINE 01 TALLY
/*
//*
//* STEP040 PGM=ADRDSSU IDCAMS
//*
//STEP040 EXEC PGM=ADRDSSU
//SYSPRINT DD SYSOUT=*
//TAPE DD DSN=PROD.BACKUP.FILE1,
// DISP=(NEW,CATLG,DELETE),
// UNIT=TAPE
//SYSIN DD *
DUMP -
DATASET( -
INCLUDE( -
PROD.PDP.SPEC.WSR.NOT.SORTED -
PROD.PDP.SPEC.WSR.SORTED -
MVS.PCPAUL -
)) -
SHARE -
SPHERE -
OUTDD(TAPE)
/*
//
The job stream below is functionally equivalent to the "flat" JCL above. Instead of being all in-line, the various elements are structured in the manner that was common throughout the 1970s and 1980s, before the MVS JCL enhancements introduced in MVS/ESA 4.1.
//OFFLINE1 JOB (ACCT#),'OFF-LINE JCL', // CLASS=A, // MSGCLASS=X, // MSGLEVEL=(1,1), // REGION=6M //* //JOBLIB DD DSNAME=PROD.BATCH.LOAD, // DISP=SHR //* // EXEC PROC=OFFPROC1 //
//OFFPROC1 PROC //* //* STEP010 PGM=SORT //* //STEP010 EXEC PGM=SORT //SORTIN DD DSN='DR LICENSE', // DISP=SHR, // RECFM=FB,LRECL=225,BLKSIZE=2250, // UNIT=TAPE, // VOL=SER=KEYPCH // DD DSN=PROD.PDP.SPEC.WSR.NOT.SORTED, // DISP=SHR //SORTOUT DD DSN=PROD.PDP.SPEC.WSR.SORTED, // DISP=(NEW,CATLG,DELETE), // UNIT=SYSDA, // SPACE=(TRK,(45,11),RLSE) //SYSOUT DD SYSOUT=* //SYSIN DD DSN=PROD.PARMLIB(OFF010), // DISP=SHR //* //* STEP020 PGM=CMLD045 //* //STEP020 EXEC PGM=CMLD045,PARM='/UPSI(10000000)' //ABSIN DD DSN=SFB8.HOAB.SD.SORTED.VOUCHER.CHECK.INTRFACE, // DISP=SHR //CMLCHIS DD DSN=PROD.CAB.VC.REFUND.HISTORY, // DISP=SHR //CMLCHIS2 DD DSN=PATH.PROD.CAB.VC.RH.CHECK.ALT, // DISP=SHR //CMLCHIS1 DD DSN=PROD.PDP.SPEC.WSR.SORTED, // DISP=SHR //CHECKNO DD DSN=PROD.HOLD.VOUCHER.CHECK.NUMBER.FILE, // DISP=SHR //CLEDGER DD DSN=PROD.CHECK.LEDGER.FILE, // DISP=SHR //PRT2 DD SYSOUT=(X,,CK07),DEST=(N1,DUM2) //PRT3 DD SYSOUT=(G,,LPO1) //PRT1 DD SYSOUT=(X,,CK07),DEST=(N1,DUM1) //SYSOUT DD SYSOUT=* //CEEDUMP DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSIN DD DSN=PROD.PARMLIB(OFF020), // DISP=SHR //* //* STEP030 PGM=EZTPA00 //* //STEP030 EXEC PGM=EZTPA00 //SORTIN DD DSN='DR LICENSE', // DISP=SHR, // RECFM=FB,LRECL=225,BLKSIZE=2250, // UNIT=TAPE, // VOL=SER=KEYPCH //PCPAUL DD DSN=MVS.PCPAUL, // DISP=SHR //SYSPRINT DD SYSOUT=* //SYSIN DD DSN=PROD.PARMLIB(OFF030), // DISP=SHR //* //* STEP040 PGM=ADRDSSU IDCAMS //* //STEP040 EXEC PGM=ADRDSSU //SYSPRINT DD SYSOUT=* //TAPE DD DSN=PROD.BACKUP.FILE1, // DISP=(NEW,CATLG,DELETE), // UNIT=TAPE //SYSIN DD DSN=PROD.PARMLIB(OFF040), // DISP=SHR //
These are the PDS members which are referred to by the OFFPROC1 procedure shown above. Each PDS member contains a set of control statements used by a utility or application program.
MERGE FIELDS=COPY RECORD TYPE=F,LENGTH=225 END
981231
LIST OFF PARM DEVICE (FBA) + DEBUG(NOCLIST, NODMAP) + LIST(NOFILE NOPARM) + SORT(MSG (NO)) FILE SYS000 FB(225 0) FILE PCPAUL VS (ES) JOB INPUT SYS000 PUT PCPAUL FROM SYS000 PRINT REP-001 REPORT REP-001 LINESIZE 132 SUMMARY CONTROL TITLE 01 'ESCHEATS RECORDS COPIED' TITLE 02 'EZT PLUS PROGRAM ESZ001' LINE 01 TALLY
DUMP -
DATASET( -
INCLUDE( -
PROD.PDP.SPEC.WSR.NOT.SORTED -
PROD.PDP.SPEC.WSR.SORTED -
MVS.PCPAUL -
)) -
SHARE -
SPHERE -
OUTDD(TAPE)