Chapter 04 - Columbus State University

advertisement
Chapter 4
The basics of
Job Control Language
Murach’s OS/390 and z/OS JCL
© 2002, Mike Murach & Associates, Inc.
Chapter 4, Slide 1
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 2
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 3
Common job control language statements
JOB
EXEC
Identifies a job and supplies accounting information.
Identifies a job step by indicating the name of the
program 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
Figure 4-01a
Chapter 4, Slide 4
Additional JCL statements
Supplies options for SYSOUT processing.
Marks the beginning of a procedure.
Marks the end of a procedure.
Identifies a private procedure library.
Copies statements from another library member into
the job.
Sets default values for symbolic variables.
SET
IF/THEN/ELSE/ENDIF
Provides conditional execution of a job step.
COMMAND Identifies an MVS or JES command that is to be issued
when the job runs.
OUTPUT
PROC
PEND
JCLLIB
INCLUDE
Murach’s OS/390 and z/OS JCL
Figure 4-01b
Chapter 4, Slide 5
A multi-step job
Job
Job steps
steps
//MM01A
//STEP1
//FILEA
//FILEB
//STEP2
//FILEB
//FILEC
//REPORTA
//
Murach’s OS/390 and z/OS JCL
JOB 36512
EXEC PGM=PROGA
DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
DD DSNAME=MM01.CUSTOMER.LIST,DISP=(NEW,KEEP)
EXEC PGM=PROGB
DD DSNAME=MM01.CUSTOMER.LIST,DISP=(OLD,DELETE)
DD
DSNAME=MM01.CUSTOMER.INVOICE,DISP=SHR
DD
SYSOUT=*
Figure 4-01c
Chapter 4, Slide 6
The basic format for JCL statements
identifier [name] [operation] [parameters] [comments]
Identifier
field
Name
field
//MM01A
//POST
//CUSTTRAN
//CUSTMAST
//TRANJRNL
//ERRLIST
//
Murach’s OS/390 and z/OS JCL
Operation
field
JOB
EXEC
DD
DD
DD
DD
Parameters
field
36512,'R. MENENDEZ',NOTIFY=MM01
PGM=CM3000
DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR
DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
SYSOUT=*
SYSOUT=*
Figure 4-02a
Chapter 4, Slide 7
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 between
these fields.
Murach’s OS/390 and z/OS JCL
Figure 4-02b
Chapter 4, Slide 8
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
//
//
//
DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP),
UNIT=SYSDA,VOL=SER=MPS800,
SPACE=(CYL,(1,1)),
DCB=(DSORG=PS,RECFM=FB,LRECL=400)
DD
Murach’s OS/390 and z/OS JCL
Figure 4-03a
Chapter 4, Slide 9
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
Figure 4-03b
Chapter 4, Slide 10
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
Figure 4-03c
Chapter 4, Slide 11
Two ways to continue a JCL statement on more than one
line
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
Figure 4-04a
Chapter 4, Slide 12
Two ways to code comments in a job
The comments field of a JCL statement
//MM01A
//POST
//CUSTTRAN
//CUSTMAST
//TRANJRNL
JOB
EXEC
DD
DD
DD
36512,MENENDEZ,NOTIFY=MM01
PGM=CM3000
**Post cust transactions**
DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR
DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
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
Figure 4-04b
Chapter 4, Slide 13
The syntax of the JOB statement
//jobname
JOB [
[
[
[
accounting-information ] [,programmer-name ]
,MSGCLASS=class ]
,MSGLEVEL=(stmt,msg) ]
,NOTIFY=user-id ]
Explanation
accounting-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
Figure 4-05a
Chapter 4, Slide 14
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 generic
JOB statement
//MM01XXXX JOB 36512,'R MENENDEZ',
//
MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=MM01
Murach’s OS/390 and z/OS JCL
Figure 4-05b
Chapter 4, Slide 15
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
Figure 4-06
Chapter 4, Slide 16
Five JOB statements that use the programmer name
parameter
//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 job
completes
17.35.12 JOB02169 $HASP165 MM01B
ENDED AT DDC1NJE
MAXCC=0 CN(INTERNAL)
***
Murach’s OS/390 and z/OS JCL
Figure 4-07
Chapter 4, Slide 17
The syntax of the MSGCLASS parameter
MSGCLASS=class
Explanation
class
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 at
JES initialization.
The syntax of the MSGLEVEL parameter
MSGLEVEL=(stmt,msg)
Explanation
stmt
msg
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.
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
Figure 4-08a
Chapter 4, Slide 18
A JOB statement with both the MSGCLASS and
MSGLEVEL parameters
//MM01A
JOB 36512,'R MENENDEZ',MSGCLASS=X,MSGLEVEL=(0,0)
 MSGCLASS and MSGLEVEL are typically coded together on a
JOB statement.
Murach’s OS/390 and z/OS JCL
Figure 4-08b
Chapter 4, Slide 19
The syntax of the EXEC statement
//stepname
EXEC PGM=program-name [ ,PARM=information ]
Explanation
PGM
PARM
Specifies the name of the program to be executed for this job step.
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 linkedited 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 programdependent.
Murach’s OS/390 and z/OS JCL
Figure 4-09a
Chapter 4, Slide 20
Examples of the EXEC statement
An EXEC statement that executes program PAY5B10 in step
PAYLIST
//PAYLIST
EXEC PGM=PAY5B10
An EXEC statement that passes a parameter value of
LINECT=0050 to program IEBDG
//DATAGEN
EXEC PGM=IEBDG,PARM='LINECT=0050'
An EXEC statement that passes three parameters to program
HEWL
//LINKED
EXEC PGM=HEWL,PARM='LET,MAP,XREF'
Murach’s OS/390 and z/OS JCL
Figure 4-09b
Chapter 4, Slide 21
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...) ]
Explanation
DSNAME 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
Figure 4-10a
Chapter 4, Slide 22
Examples of the DD statement
A 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
//
//
//
Murach’s OS/390 and z/OS JCL
DD
DSNAME=MM01.ACCOUNT.MASTER,DISP=(NEW,CATLG),
UNIT=SYSDA,VOL=SER=MPS8BV,
SPACE=(CYL,(10,2)),
DCB=(DSORG=PS,RECFM=FB,LRECL=100)
Figure 4-10b
Chapter 4, Slide 23
The syntax of the DSNAME parameter
{DSNAME}
{DSN}
= {data-set-name}
{data-set-name(member)}
Different ways to code the DSNAME parameter
A 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
Figure 4-11a
Chapter 4, Slide 24
Reserved ddnames used by the operating system
JCBIN
BCBLOCK
JCBTAB
JESInnnn
JESJCL
JESJCLIN
JESMSGLG JESYSMSG
JOBCAT
JOBLIB
JOURNAL
JST
JS3CATLG J3JBINFO
J3SCINFO J3STINFO
STCINRDR STEPCAT
STEPLIB
SYSCHK
SYSIN
SYSABEND
SYSCKEOV
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
Figure 4-11b
Chapter 4, Slide 25
The syntax of the DISP parameter
DISP=(status,normal-disp,abnormal-disp)
Status
NEW
OLD
SHR
MOD
The data set does not exist and should be created.
The data set exists and should be allocated for exclusive use.
The data set exists and should be allocated for shared use.
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 disposition
DELETE
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
Figure 4-12a
Chapter 4, Slide 26
DISP parameter default values
status
normal disposition
abnormal disposition
If omitted, NEW is assumed.
Depends on the value specified or assumed for status: if NEW,
normal disposition is DELETE; if OLD, SHR, or MOD, normal
disposition is KEEP.
Takes on the value specified or assumed for normal disposition.
Examples of the DISP parameter
The data set is allocated for shared access, and the normal
and abnormal dispositions default to KEEP
DISP=SHR
The new data set is cataloged if the job step ends normally;
otherwise, it’s deleted
DISP=(,CATLG,DELETE)
Murach’s OS/390 and z/OS JCL
Figure 4-12b
Chapter 4, Slide 27
The syntax of the UNIT parameter
UNIT=
{group-name}
{device-type}
{device-number}
Explanation
group-name
Specifies a group name that identifies devices that belong to
categories set up by the installation. SYSDA and TAPE are
commonly used group names. SYSDA typically refers to any DASD
unit that’s available for public use, and TAPE refers to any available
tape drive.
device-type
Specifies a device by its machine type or model. For example, if you
specify UNIT=3390, a 3390 device is used.
device-number Specifies a device by a three- or four-digit hexadecimal address. A
four-digit number must be preceded by a slash (/), as in UNIT=/2301.
Murach’s OS/390 and z/OS JCL
Figure 4-13a
Chapter 4, Slide 28
The syntax of the VOLUME parameter
{VOLUME=}SER=serial-number
{VOL=}
Explanation
serial-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 VOLUME
parameters
//INVMAST
//
DD
Murach’s OS/390 and z/OS JCL
DSNAME=MM01.INVNTORY.MASTER,DISP=(NEW,CATLG),
UNIT=SYSDA,VOL=SER=MPS8BV,...
Figure 4-13b
Chapter 4, Slide 29
The syntax of the SPACE parameter
SPACE= (unit,(primary-qty,secondary-qty[,dir]))
Explanation
unit
primary-qty
secondary-qty
dir
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.
Specifies the number of units to be initially allocated to the file.
Specifies the number of units to be allocated to each secondary extent.
Specifies the number of directory blocks to allocate for a partitioned data
set.
Murach’s OS/390 and z/OS JCL
Figure 4-14a
Chapter 4, Slide 30
Examples of the SPACE parameter
Example 1
SPACE=(CYL,(4,1,5))
Primary:
Secondary:
Directory:
Example 2
4 cylinders
1 cylinder
5 blocks
SPACE=(TRK,(5,2))
Primary:
Secondary:
Example 3
5 tracks
2 tracks
SPACE=(800,(500,100))
Primary:
Secondary:
Murach’s OS/390 and z/OS JCL
500 800 byte blocks
100 800 byte blocks
Figure 4-14b
Chapter 4, Slide 31
The syntax of the DCB parameter
DCB=(option,option...)
Commonly used DCB options
DSORG=x
RECFM=x
LRECL=n
BLKSIZE=n
Specifies the data set’s organization, as follows:
PS
Physical sequential
PO
Partitioned
DA
Direct
IS
Indexed sequential
Specifies the format of the file’s records, as follows:
F
Fixed length, unblocked
FB
Fixed length, blocked
V
Variable length, unblocked
VB
Variable length, blocked
VBS Variable length, blocked, spanned
U
Undefined
Specifies the length of the file’s records.
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
Figure 4-15a
Chapter 4, Slide 32
Examples of the DCB parameter
A DCB parameter for a sequential file with fixed-length
records of 133 bytes
DCB=(DSORG=PS,RECFM=F,LRECL=133)
DD parameters for a file with variable-length records up
to 500 bytes long
RECFM=VB,LRECL=500
Murach’s OS/390 and z/OS JCL
Figure 4-15b
Chapter 4, Slide 33
The syntax of the DD statement for instream data
sets
//ddname
DD
{*}
{DATA}
[ ,DLM=xx ]
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 delimiter
statement to end the data.
DLM
Specifies the characters that identify a delimiter statement. If omitted, slashasterisk (/*) is the default.
Murach’s OS/390 and z/OS JCL
Figure 4-16a
Chapter 4, Slide 34
Two examples of coding instream data
Example 1
//INVTRAN DD
*
A00101005995CH445
A00103010030CH445
A00272001950CJ550
/*
Example 2
//SYSIN
DD
DATA,DLM=##
//INVTRAN DD
*
A00101005995CH445
A00103010030CH445
A00272001950CJ550
/*
##
Note: The shading indicates the records that are processed as data for the instream
data set.
Murach’s OS/390 and z/OS JCL
Figure 4-16b
Chapter 4, Slide 35
The syntax of the DD statement for SYSOUT data
//ddname
DD
SYSOUT=x
Explanation
SYSOUT
Specifies a one-character output class to be associated with the
SYSOUT data set. If you code an asterisk, the output class specified in
the MSGCLASS parameter of the JOB statement is used.
Two ways to code the SYSOUT parameter
A JES SYSOUT file with an output class of A
//SYSPRINT
DD
SYSOUT=A
A JES SYSOUT file with an output class that defaults to
the output class specified by MSGCLASS in the JOB
statement
//INVRPT
Murach’s OS/390 and z/OS JCL
DD
SYSOUT=*
Figure 4-17
Chapter 4, Slide 36
System flowchart for the transaction-posting
application
Transaction
journal
Customer
transactions
Customer
master file
Post
customer
transactions
(CM3000)
Error listing
Error
transactions
Murach’s OS/390 and z/OS JCL
Transaction
summary
report
Figure 4-18a
Chapter 4, Slide 37
Data set requirements for the transaction-posting
application
ddname
CUSTTRAN
CUSTMAST
ERRTRAN
TRANJRNL
TRANSUM
ERRLIST
Murach’s OS/390 and z/OS JCL
Data set name
MM01.CUSTOMER.TRANS
MM01.CUSTOMER.MASTER
MM01.CUSTOMER.TRANS.ERRS
(SYSOUT data set)
(SYSOUT data set)
(SYSOUT data set)
Figure 4-18b
Chapter 4, Slide 38
The JCL for the transaction-posting application
//MM01PT
//
//POST
//CUSTTRAN
//CUSTMAST
//ERRTRAN
//TRANJRNL
//TRANSUM
//ERRLIST
JOB
36512,'M MURACH',MSGCLASS=A,MSGLEVEL=(1,1),
NOTIFY=MM02
EXEC PGM=CM3000
DD
DSNAME=MM01.CUSTOMER.TRANS,DISP=SHR
DD
DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
DD
DSNAME=MM01.CUSTOMER.TRANS.ERRS,DISP=SHR
DD
SYSOUT=*
DD
SYSOUT=*
DD
SYSOUT=*
Murach’s OS/390 and z/OS JCL
Figure 4-18c
Chapter 4, Slide 39
The job control requirements for a report-preparation
application
AR master file
Customer
master file
Dunning file
Sorted
dunning file
Sort by invoice
within customer
(SORT)
Extract
dunning data
(AR7100)
Prepare ATB
and overdue
invoice report
(AR7200)
Sort by invoice,
customer,
state
(SORT)
Sorted
AR master file
Murach’s OS/390 and z/OS JCL
Aged trial balance
report
Overdue invoiced
report
Figure 4-19a
Prepare XREF
report and
statements
(AR7300)
Statements
Cross reference
report
Chapter 4, Slide 40
Data set requirements for the programs invoked by
the report-preparation application
Step name
Program ddname Data set name
SORT1
SORT
SYSOUT
(SYSOUT data set)
SORTIN
MM01.ACCOUNT.MASTER
SORTOUT
MM01.ACCOUNT.MASTER.SORT
SORTWK01 (temporary work file)
AR7100
AR7100
SYSIN
(instream data set)
ARSORT
MM01.ACCOUNT.MASTER.SORT
CUSTMAST MM01.CUSTOMER.MASTER
AR7200
AR7200
Murach’s OS/390 and z/OS JCL
DUNNING
MM01.DUNNING.FILE
DUNNING
MM01.DUNNING.FILE
ATB
(SYSOUT data set)
OVERDUE
(SYSOUT data set)
Figure 4-19b
Chapter 4, Slide 41
Data set requirements for the programs invoked by
the report-preparation application (continued)
Step name
Program ddname Data set name
SORT2
SORT
SYSOUT
(SYSOUT data set)
SORTIN
MM01.DUNNING.FILE
SORTOUT
MM01.DUNNING.FILE.SORT
SORTWK01 (temporary work file)
AR7300
AR7300
Murach’s OS/390 and z/OS JCL
SYSIN
(instream data set)
DUNSORT
MM01.DUNNING.FILE.SORT
XREF
(SYSOUT data set)
STMTS
(SYSOUT data set)
Figure 4-19c
Chapter 4, Slide 42
The JCL for the report-preparation application
1
2
3
4
5
6
7
8
9
10
11
//MM01RP
JOB 36512,'A PRINCE',MSGCLASS=X,MSGLEVEL=(1,1),
//
NOTIFY=MM03
//SORT1
EXEC PGM=SORT
//SYSOUT
DD
SYSOUT=*
//SORTIN
DD
DSNAME=MM01.ACCOUNT.MASTER,DISP=SHR
//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)
//SORTWK01 DD
UNIT=SYSDA,VOL=SER=MPS800,
//
SPACE=(CYL,(1,1))
//SYSIN
DD
*
SORT
FIELDS=(16,5,CH,A,1,5,CH,A)
/*
//AR7100
EXEC PGM=AR7100
//ARSORT
DD
DSNAME=MM01.ACCOUNT.MASTER.SORT,DISP=(OLD,DELETE),
//
UNIT=SYSDA,VOL=SER=MPS800
//CUSTMAST DD
DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
//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
Figure 4-20a
Chapter 4, Slide 43
The report-preparation application (continued)
12
13
14
//AR7200
EXEC PGM=AR7200
//DUNNING DD
DSNAME=MM01.DUNNING.FILE,DISP=OLD,
//
UNIT=SYSDA,VOL=SER=MPS800
//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=*
Murach’s OS/390 and z/OS JCL
Figure 4-20b
Chapter 4, Slide 44
Download