[Home] [Compiles] [DataTransfer] [Inventory] [JCLTRANS] [LCPs] [Methodology] [RunTime] [Updates] | © 1988-2012 GiSF Software LLC |
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)