Prism-CS Prism-CS Sample JOB Stream (In-Line JCL)

[Home] [Compiles] [DataTransfer] [Inventory] [JCLTRANS] [LCPs] [Methodology] [RunTime] [Updates]

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.

In-Line JCL

//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)
/*
// 

Off-Line JCL

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.

Run JCL

//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
// 

Procedure (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
// 

PARMLIB Members

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.

PARMLIB Member OFF010
 MERGE FIELDS=COPY
 RECORD TYPE=F,LENGTH=225
 END 
PARMLIB Member OFF020
981231 
PARMLIB Member OFF030
   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 
PARMLIB Member OFF040
 DUMP -
   DATASET( -
     INCLUDE( -
	PROD.PDP.SPEC.WSR.NOT.SORTED -
	PROD.PDP.SPEC.WSR.SORTED -
	MVS.PCPAUL -
	  )) -
   SHARE -
   SPHERE -
   OUTDD(TAPE)