JCLCh04
-
Upload
subham-gupta -
Category
Documents
-
view
7 -
download
2
description
Transcript of JCLCh04
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 1© 2002, Mike Murach & Associates, Inc.
Chapter 4
The basics ofJob Control Language
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 2
Objectives
Applied objectives Code a valid JOB statement using the format required by your installation. Code an EXEC statement to invoke a program and pass a parameter value to it. Code a DD statement for the following DASD data sets:
a. an existing cataloged data set
b. an existing uncataloged data set
c. a new non-VSAM data set Code the JCL and data for an instream data set. The data may or may not
include JCL statements. Code a DD statement for a SYSOUT data set. Given complete specifications for a job, code its JCL using the statements
presented in this chapter.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 3
Objectives (continued)
Knowledge objectives Describe the basic format of a JCL statement. Describe the rules you must follow when coding a name in the name field. Distinguish between positional and keyword parameters. Describe how to code subparameters. Describe how to continue JCL statements onto additional lines. Describe how to code comments in a job stream. Describe the purpose of the DISP parameter in a DD statement. Describe the purposes of the UNIT, VOLUME, and SPACE parameters in
a DD statement. Describe the purpose of the DCB parameter in a DD statement.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 4Figure 4-01a
Common job control language statementsJOB Identifies a job and supplies accounting information.
EXEC Identifies a job step by indicating the name of theprogram to be executed.
DD Identifies a data set to be allocated for the job step.
delimiter (/*) Marks the end of an instream data set.
null (//) Marks the end of a job.
comment (//*) Provides comments.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 5Figure 4-01b
Additional JCL statementsOUTPUT Supplies options for SYSOUT processing.
PROC Marks the beginning of a procedure.
PEND Marks the end of a procedure.
JCLLIB Identifies a private procedure library.
INCLUDE Copies statements from another library member intothe job.
SET Sets default values for symbolic variables.
IF/THEN/ELSE/ENDIFProvides conditional execution of a job step.
COMMAND Identifies an MVS or JES command that is to be issuedwhen the job runs.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 6Figure 4-01c
A multi-step job//MM01A JOB 36512//STEP1 EXEC PGM=PROGA//FILEA DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR//FILEB DD DSNAME=MM01.CUSTOMER.LIST,DISP=(NEW,KEEP)//STEP2 EXEC PGM=PROGB//FILEB DD DSNAME=MM01.CUSTOMER.LIST,DISP=(OLD,DELETE)//FILEC DD DSNAME=MM01.CUSTOMER.INVOICE,DISP=SHR//REPORTA DD SYSOUT=*//
JobstepsJob steps
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 7Figure 4-02a
The basic format for JCL statementsidentifier [name] [operation] [parameters] [comments]
//MM01A JOB 36512,'R. MENENDEZ',NOTIFY=MM01//POST EXEC PGM=CM3000//CUSTTRAN DD DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR//CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR//TRANJRNL DD SYSOUT=*//ERRLIST DD SYSOUT=*//
Identifierfield
Namefield
Operationfield
Parametersfield
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 8Figure 4-02b
JCL statement formatting notes JCL statements are coded in 80-byte records although only 72 bytes
are available for JCL code. Each statement can be logically divided into five fields. The identifier field starts in column 1 and for all standard JCL
statements is two slashes (//). Immediately following the identifier field is the name field. The operation, parameters, and comment fields can be coded in a
freeform style as long as there’s at least one blank space betweenthese fields.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 9Figure 4-03a
Positional parameters//MM01A JOB 36512,'R MENENDEZ'
//MM01A JOB ,'R MENENDEZ'
Keyword parameters//CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
Keyword and positional parameter combinations//CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=(,CATLG,DELETE),// UNIT=SYSDA,VOL=SER=MPS800,// SPACE=(CYL,(10,5,2)),// DCB=DSORG=PO
//DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP),// UNIT=SYSDA,VOL=SER=MPS800,// SPACE=(CYL,(1,1)),// DCB=(DSORG=PS,RECFM=FB,LRECL=400)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 10Figure 4-03b
Parameter coding rules The parameters field begins at least one position after the end of
the operation field and can extend into column 71. There are two types of parameters: positional and keyword. Positional parameters are interpreted based on their position on
the parameters field. Omitted parameters are marked by a comma. Keyword parameters are interpreted based on a keyword followed
by an equals sign and a value. They can be coded in any order. Code positional parameters first in the parameters field, before
any keyword parameters. All parameters must be separated by commas, not blanks. The end of a parameters field is marked by a blank. Parameters containing blanks or special characters must be
enclosed in apostrophes.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 11Figure 4-03c
Subparameter coding rules Subparameters are coded the same way as parameters and can also
be positional or keyword. If you code more than one subparameter for a parameter, enclose
the list in parentheses.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 12Figure 4-04a
Two ways to continue a JCL statement on more than oneline
Code as many parameters on one line as possible//DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP),UNIT=SYSDA,// VOL=SER=MPS800,SPACE=(CYL,(1,1)),DCB=(DSORG=PS,RECFM=FB,LRECL=400)
Code only one or two parameters per line//DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP),// UNIT=SYSDA,VOL=SER=MPS800,// SPACE=(CYL,(1,1)),// DCB=(DSORG=PS,RECFM=FB,LRECL=400)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 13Figure 4-04b
Two ways to code comments in a jobThe comments field of a JCL statement//MM01A JOB 36512,MENENDEZ,NOTIFY=MM01//POST EXEC PGM=CM3000 **Post cust transactions**//CUSTTRAN DD DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR//CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR//TRANJRNL DD SYSOUT=*
The JCL comment statement//MM01RP JOB 36512,'A PRINCE',MSGCLASS=X,MSGLEVEL=(1,1)//*********************************************************//* Prepare past-due reports from DUNNING file *//*********************************************************//AR7200 EXEC PGM=AR7200//DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=OLD,// UNIT=SYSDA,VOL=SER=MPS800//ATB DD SYSOUT=*//OVERDUE DD SYSOUT=*
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 14Figure 4-05a
The syntax of the JOB statement//jobname JOB [ accounting-information ] [,programmer-name ] [ ,MSGCLASS=class ] [ ,MSGLEVEL=(stmt,msg) ] [ ,NOTIFY=user-id ]
Explanationaccounting-information Specifies an account number or other accounting information.programmer-name Identifies the owner of the job.MSGCLASS Specifies a single-character output class to be used for the job’s
message output.MSGLEVEL Controls which JCL statements and system messages are produced
by the job.NOTIFY Specifies the TSO/E user to be notified when the job completes.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 15Figure 4-05b
JOB statement examples//PAY40B1 JOB MMA2AB14
//PAY40B2 JOB (MMA-001,'06/11/02',206),MENENDEZ,MSGCLASS=A
//PAY40B3 JOB ,MENENDEZ,MSGCLASS=A
//PAY40B4 JOB MSGCLASS=A,MSGLEVEL=(0,0),NOTIFY=MM01
A member named JOBCARD that contains a genericJOB statement//MM01XXXX JOB 36512,'R MENENDEZ',// MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=MM01
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 16Figure 4-06
Rules for coding the name field of a JCL statement A name must start in column 3 of a JCL statement and must be followed by at
least one blank. It can be from one to eight characters long, consisting of alphanumeric (A-Z
and 0-9) and national (@,$,#) characters. The first character must be alphabetic or national.
Valid job names//MM01A
//CS0166PR
//$PSP06B
Invalid job names// MM01C Doesn’t start in column 3
//(ABCDE) Starts with an invalid character
//PR_001 Contains an invalid character
//PAYMENT805 Contains more than 8 characters
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 17Figure 4-07
Five JOB statements that use the programmer nameparameter
//MM01A JOB 36512,RMENENDEZ
//MM01B JOB ,R.MENENDEZ
//MM01C JOB ,'R MENENDEZ'
//MM01D JOB 36512,'O''Brien'
//MM01E JOB ,DEPT-10
Two ways to code the NOTIFY parameter//MM01A JOB 36512,LOWE,NOTIFY=MM01
//MM01B JOB 36512,LOWE,NOTIFY=&SYSUID
The message returned to your TSO/E terminal when the jobcompletes17.35.12 JOB02169 $HASP165 MM01B ENDED AT DDC1NJE MAXCC=0 CN(INTERNAL)
***
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 18Figure 4-08a
The syntax of the MSGCLASS parameterMSGCLASS=class
Explanationclass Identifies the output class for the job log. The class can only be one
character long (A-Z or 0-9) and must be a valid output class specified atJES initialization.
The syntax of the MSGLEVEL parameterMSGLEVEL=(stmt,msg)
Explanationstmt A single digit that specifies which JCL statements should be printed.
0 Print only the JOB statement.1 Print only JCL statements.2 Print only JCL statements submitted through the input stream.
msg A single digit that specifies which system messages should be printed.0 Print step completion messages only.1 Print all messages (the default).
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 19Figure 4-08b
A JOB statement with both the MSGCLASS andMSGLEVEL parameters
//MM01A JOB 36512,'R MENENDEZ',MSGCLASS=X,MSGLEVEL=(0,0)
MSGCLASS and MSGLEVEL are typically coded together on aJOB statement.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 20Figure 4-09a
The syntax of the EXEC statement//stepname EXEC PGM=program-name [ ,PARM=information ]
ExplanationPGM Specifies the name of the program to be executed for this job step.PARM Optional; specifies information that’s passed to the program.
EXEC statement facts The EXEC statement executes a program or invokes a procedure
for each step. The program specified in the PGM parameter must be a link-
edited load module member of a partitioned data set. The PARM parameter lets you pass information to the program
specified in the PGM parameter. Any information coded into the PARM field is program-
dependent.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 21Figure 4-09b
Examples of the EXEC statement
An EXEC statement that executes program PAY5B10 in stepPAYLIST//PAYLIST EXEC PGM=PAY5B10
An EXEC statement that passes a parameter value ofLINECT=0050 to program IEBDG//DATAGEN EXEC PGM=IEBDG,PARM='LINECT=0050'
An EXEC statement that passes three parameters to programHEWL//LINKED EXEC PGM=HEWL,PARM='LET,MAP,XREF'
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 22Figure 4-10a
The syntax of the DD statement for DASD data sets//ddname DD DSNAME=data-set-name ,DISP=(status,normal-disp,abnormal-disp) [ ,UNIT=unit ] [ ,VOL=SER=serial-number ] [ ,SPACE=unit,(primary-qty,secondary-qty,dir) ] [ ,DCB=(option,option...) ]
ExplanationDSNAME Specifies the file’s data set name.DISP Specifies the file’s status and normal and abnormal disposition.UNIT Specifies a group name, device type, or device number that identifies the
device where the file resides.VOL=SER Specifies the six-character volume serial number of the volume that contains
the file.SPACE Specifies the DASD space to be allocated for the file.DCB Specifies options to be used for the file’s data control block.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 23Figure 4-10b
Examples of the DD statementA DD statement that allocates an existing data set//INVMAST DD DSNAME=MM01.INVNTORY.MASTER,DISP=SHR
A DD statement that allocates a new data set//INVMAST DD DSNAME=MM01.ACCOUNT.MASTER,DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,// SPACE=(CYL,(10,2)),// DCB=(DSORG=PS,RECFM=FB,LRECL=100)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 24Figure 4-11a
The syntax of the DSNAME parameter{DSNAME} = {data-set-name}
{DSN} {data-set-name(member)}
Different ways to code the DSNAME parameterA DD statement that accesses a sequential data set//INVMAST DD DSNAME=MM01.INVMAST.DATA,DISP=SHR
A DD statement that accesses a PDS member//INVTRAN DD DSN=MM01.INV.DATA(TRANS),DISP=SHR
DSNAME facts The DSNAME parameter is required on a DD statement for a
permanent data set. The DSNAME parameter is optional for temporary data sets.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 25Figure 4-11b
Reserved ddnames used by the operating systemJCBIN BCBLOCK JCBTAB JESInnnn JESJCL JESJCLIN
JESMSGLG JESYSMSG JOBCAT JOBLIB JOURNAL JST
JS3CATLG J3JBINFO J3SCINFO J3STINFO STCINRDR STEPCAT
STEPLIB SYSABEND SYSCHK SYSCKEOV SYSIN SYSMDUMP
SYSUDUMP TSOINRDR
Ddname facts The ddname is a symbolic name that the program specified in the
EXEC statement uses to refer to a data set. Each ddname should be unique within the job step. Some ddnames have special meaning to the system and therefore
cannot be used to identify data sets in a processing program.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 26Figure 4-12a
The syntax of the DISP parameterDISP=(status,normal-disp,abnormal-disp)
StatusNEW The data set does not exist and should be created.OLD The data set exists and should be allocated for exclusive use.SHR The data set exists and should be allocated for shared use.MOD The data set is allocated for exclusive use and is positioned at the end of the
data, so additional records may be added after the last record.
Normal and abnormal dispositionDELETE The data set is deleted. If it was retrieved from the catalog, it is also
uncataloged.KEEP The data set is retained.CATLG The data set is retained and a catalog entry is made.UNCATLG The data set is retained, but its catalog entry is removed.PASS Normal disposition only. The data set is retained for use by a later job
step.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 27Figure 4-12b
DISP parameter default valuesstatus If omitted, NEW is assumed.normal disposition Depends on the value specified or assumed for status: if NEW,
normal disposition is DELETE; if OLD, SHR, or MOD, normaldisposition is KEEP.
abnormal disposition Takes on the value specified or assumed for normal disposition.
Examples of the DISP parameterThe data set is allocated for shared access, and the normaland abnormal dispositions default to KEEPDISP=SHR
The new data set is cataloged if the job step ends normally;otherwise, it’s deletedDISP=(,CATLG,DELETE)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 28Figure 4-13a
The syntax of the UNIT parameter {group-name}UNIT= {device-type} {device-number}
Explanationgroup-name Specifies a group name that identifies devices that belong to
categories set up by the installation. SYSDA and TAPE arecommonly used group names. SYSDA typically refers to any DASDunit that’s available for public use, and TAPE refers to any availabletape drive.
device-type Specifies a device by its machine type or model. For example, if youspecify UNIT=3390, a 3390 device is used.
device-number Specifies a device by a three- or four-digit hexadecimal address. Afour-digit number must be preceded by a slash (/), as in UNIT=/2301.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 29Figure 4-13b
The syntax of the VOLUME parameter{VOLUME=}SER=serial-number
{VOL=}
Explanationserial-number Specifies which volume you want to allocate for your data set. If
omitted, MVS scans for eligible volumes based on the UNIT parameter.
A DD statement that uses the UNIT and VOLUMEparameters//INVMAST DD DSNAME=MM01.INVNTORY.MASTER,DISP=(NEW,CATLG),// UNIT=SYSDA,VOL=SER=MPS8BV,...
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 30Figure 4-14a
The syntax of the SPACE parameterSPACE= (unit,(primary-qty,secondary-qty[,dir]))
Explanationunit Specifies the unit used to allocate space to the data set, as follows:
TRK Allocates space in tracks.CYL Allocates space in cylinders.blklgth Allocates space in blocks, with the block size given in bytes.reclgth Allocates space based on the average record length in bytes.
primary-qty Specifies the number of units to be initially allocated to the file.secondary-qty Specifies the number of units to be allocated to each secondary extent.dir Specifies the number of directory blocks to allocate for a partitioned data
set.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 31Figure 4-14b
Examples of the SPACE parameterExample 1SPACE=(CYL,(4,1,5))
Primary: 4 cylinders
Secondary: 1 cylinder
Directory: 5 blocksExample 2SPACE=(TRK,(5,2))
Primary: 5 tracks
Secondary: 2 tracksExample 3SPACE=(800,(500,100))
Primary: 500 800 byte blocks
Secondary: 100 800 byte blocks
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 32Figure 4-15a
The syntax of the DCB parameterDCB=(option,option...)
Commonly used DCB optionsDSORG=x Specifies the data set’s organization, as follows:
PS Physical sequentialPO PartitionedDA DirectIS Indexed sequential
RECFM=x Specifies the format of the file’s records, as follows:F Fixed length, unblockedFB Fixed length, blockedV Variable length, unblockedVB Variable length, blockedVBS Variable length, blocked, spannedU Undefined
LRECL=n Specifies the length of the file’s records.BLKSIZE=n Specifies the length of the file’s blocks; for FB, BLKSIZE is normally a
multiple of LRECL.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 33Figure 4-15b
Examples of the DCB parameterA DCB parameter for a sequential file with fixed-lengthrecords of 133 bytesDCB=(DSORG=PS,RECFM=F,LRECL=133)
DD parameters for a file with variable-length records upto 500 bytes longRECFM=VB,LRECL=500
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 34Figure 4-16a
The syntax of the DD statement for instream datasets
//ddname DD {*} [ ,DLM=xx ] {DATA}
Explanation* or DATA Indicates that instream data follows. If you code an asterisk, the next JCL
statement ends the data. If you code DATA, you must include a delimiterstatement to end the data.
DLM Specifies the characters that identify a delimiter statement. If omitted, slash-asterisk (/*) is the default.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 35Figure 4-16b
Two examples of coding instream dataExample 1//INVTRAN DD *A00101005995CH445A00103010030CH445A00272001950CJ550/*
Example 2//SYSIN DD DATA,DLM=##//INVTRAN DD *A00101005995CH445A00103010030CH445A00272001950CJ550/*##
Note: The shading indicates the records that are processed as data for the instreamdata set.
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 36Figure 4-17
The syntax of the DD statement for SYSOUT data//ddname DD SYSOUT=x
ExplanationSYSOUT Specifies a one-character output class to be associated with the
SYSOUT data set. If you code an asterisk, the output class specified inthe MSGCLASS parameter of the JOB statement is used.
Two ways to code the SYSOUT parameterA JES SYSOUT file with an output class of A//SYSPRINT DD SYSOUT=A
A JES SYSOUT file with an output class that defaults tothe output class specified by MSGCLASS in the JOBstatement//INVRPT DD SYSOUT=*
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 37Figure 4-18a
System flowchart for the transaction-postingapplication
Customertransactions
Customermaster file
Errortransactions
Transactionjournal
Error listing
Postcustomer
transactions(CM3000)
Transactionsummary
report
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 38Figure 4-18b
Data set requirements for the transaction-postingapplicationddname Data set name
CUSTTRAN MM01.CUSTOMER.TRANS
CUSTMAST MM01.CUSTOMER.MASTER
ERRTRAN MM01.CUSTOMER.TRANS.ERRS
TRANJRNL (SYSOUT data set)
TRANSUM (SYSOUT data set)
ERRLIST (SYSOUT data set)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 39Figure 4-18c
The JCL for the transaction-posting application//MM01PT JOB 36512,'M MURACH',MSGCLASS=A,MSGLEVEL=(1,1),// NOTIFY=MM02//POST EXEC PGM=CM3000//CUSTTRAN DD DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR//CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR//ERRTRAN DD DSNAME=MM01.CUSTOMER.TRANS.ERRS,DISP=SHR//TRANJRNL DD SYSOUT=*//TRANSUM DD SYSOUT=*//ERRLIST DD SYSOUT=*
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 40Figure 4-19a
The job control requirements for a report-preparationapplication
Sort by invoicewithin customer
(SORT)
Extractdunning data
(AR7100)
Prepare ATBand overdueinvoice report
(AR7200)
Sort by invoice,customer,
state(SORT)
Prepare XREFreport andstatements(AR7300)
AR master fileCustomermaster file
Dunning fileSorted
dunning file
SortedAR master file
Aged trial balancereport
Overdue invoicedreport
StatementsCross reference
report
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 41Figure 4-19b
Data set requirements for the programs invoked bythe report-preparation applicationStep name Program ddname Data set nameSORT1 SORT SYSOUT (SYSOUT data set)
SORTIN MM01.ACCOUNT.MASTER
SORTOUT MM01.ACCOUNT.MASTER.SORT
SORTWK01 (temporary work file)
SYSIN (instream data set)
AR7100 AR7100 ARSORT MM01.ACCOUNT.MASTER.SORT
CUSTMAST MM01.CUSTOMER.MASTER
DUNNING MM01.DUNNING.FILE
AR7200 AR7200 DUNNING MM01.DUNNING.FILE
ATB (SYSOUT data set)
OVERDUE (SYSOUT data set)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 42Figure 4-19c
Data set requirements for the programs invoked bythe report-preparation application (continued)Step name Program ddname Data set nameSORT2 SORT SYSOUT (SYSOUT data set)
SORTIN MM01.DUNNING.FILE
SORTOUT MM01.DUNNING.FILE.SORT
SORTWK01 (temporary work file)
SYSIN (instream data set)
AR7300 AR7300 DUNSORT MM01.DUNNING.FILE.SORT
XREF (SYSOUT data set)
STMTS (SYSOUT data set)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 43Figure 4-20a
The JCL for the report-preparation application1 //MM01RP JOB 36512,'A PRINCE',MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=MM032 //SORT1 EXEC PGM=SORT3 //SYSOUT DD SYSOUT=*4 //SORTIN DD DSNAME=MM01.ACCOUNT.MASTER,DISP=SHR5 //SORTOUT DD DSNAME=MM01.ACCOUNT.MASTER.SORT,DISP=(NEW,KEEP), // UNIT=SYSDA,VOL=SER=MPS800, // SPACE=(CYL,(1,1)), // DCB=(DSORG=PS,RECFM=FB,LRECL=400)6 //SORTWK01 DD UNIT=SYSDA,VOL=SER=MPS800,
// SPACE=(CYL,(1,1))7 //SYSIN DD * SORT FIELDS=(16,5,CH,A,1,5,CH,A) /*8 //AR7100 EXEC PGM=AR71009 //ARSORT DD DSNAME=MM01.ACCOUNT.MASTER.SORT,DISP=(OLD,DELETE), // UNIT=SYSDA,VOL=SER=MPS80010 //CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR11 //DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP), // UNIT=SYSDA,VOL=SER=MPS800, // SPACE=(CYL,(1,1)), // DCB=(DSORG=PS,RECFM=FB,LRECL=400)
Murach’s OS/390 and z/OS JCL Chapter 4, Slide 44Figure 4-20b
The report-preparation application (continued)12 //AR7200 EXEC PGM=AR720013 //DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=OLD, // UNIT=SYSDA,VOL=SER=MPS80014 //ATB DD SYSOUT=* //OVERDUE DD SYSOUT=* //SORT2 EXEC PGM=SORT //SYSOUT DD SYSOUT=* //SORTIN DD DSNAME=MM01.DUNNING.FILE,DISP=(OLD,DELETE), // UNIT=SYSDA,VOL=SER=MPS800, //SORTOUT DD DSNAME=MM01.DUNNING.FILE.SORT,DISP=(NEW,KEEP), // UNIT=SYSDA.VOL=SER=MPS800, // SPACE=(CYL,(1,1)) // DCB=(DSORG=PS,RECFM=FB,LRECL=400) //SORTWK01 DD UNIT=SYSDA,VOL=SER=MPS800, // SPACE=(CYL,(1,1)) //SYSIN DD * SORT FIELDS=(43,2,CH,A,1,5,CH,A,50,5,CH,A) /* //AR7300 EXEC PGM=AR7300 //DUNSORT DD DSNAME=MM01.DUNNING.FILE.SORT,DISP=(OLD,DELETE), // UNIT=SYSDA,VOL=SER=MPS800 //XREF DD SYSOUT=* //STMTS DD SYSOUT=*