Você está na página 1de 44

Chapter 4

The basics of
Job Control Language

Murachs 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.

Murachs 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.

Murachs OS/390 and z/OS JCL Chapter 4, Slide 3


Common job control language statements
JOB Identifies a job and supplies accounting information.
EXEC 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.

Murachs OS/390 and z/OS JCL Figure 4-01a Chapter 4, Slide 4


Additional JCL statements
OUTPUT 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 into
the job.
SET Sets default values for symbolic variables.
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.

Murachs OS/390 and z/OS JCL Figure 4-01b Chapter 4, Slide 5


A multi-step job
//MM01A JOB 36512
//STEP1 EXEC PGM=PROGA
//FILEA DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
Job //FILEB DD DSNAME=MM01.CUSTOMER.LIST,DISP=(NEW,KEEP)
Job steps
steps //STEP2 EXEC PGM=PROGB
//FILEB DD DSNAME=MM01.CUSTOMER.LIST,DISP=(OLD,DELETE)
//FILEC DD DSNAME=MM01.CUSTOMER.INVOICE,DISP=SHR
//REPORTA DD SYSOUT=*
//

Murachs OS/390 and z/OS JCL Figure 4-01c Chapter 4, Slide 6


The basic format for JCL statements
identifier [name] [operation] [parameters] [comments]

Parameters
Identifier Operation
field
field field
Name
field

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

Murachs OS/390 and z/OS JCL 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 theres at least one blank space between
these fields.

Murachs 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 DD DSNAME=MM01.DUNNING.FILE,DISP=(NEW,KEEP),
// UNIT=SYSDA,VOL=SER=MPS800,
// SPACE=(CYL,(1,1)),
// DCB=(DSORG=PS,RECFM=FB,LRECL=400)

Murachs 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.

Murachs 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.

Murachs 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)

Murachs 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 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=*

Murachs 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 jobs
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.

Murachs 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

Murachs 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 Doesnt start in column 3
//(ABCDE) Starts with an invalid character
//PR_001 Contains an invalid character
//PAYMENT805 Contains more than 8 characters

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

Murachs 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 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).

Murachs 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.

Murachs 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 Specifies the name of the program to be executed for this job step.
PARM Optional; specifies information thats 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.

Murachs 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'

Murachs 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 files data set name.
DISP Specifies the files 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 files data control block.

Murachs 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 DD DSNAME=MM01.ACCOUNT.MASTER,DISP=(NEW,CATLG),
// UNIT=SYSDA,VOL=SER=MPS8BV,
// SPACE=(CYL,(10,2)),
// DCB=(DSORG=PS,RECFM=FB,LRECL=100)

Murachs OS/390 and z/OS JCL Figure 4-10b Chapter 4, Slide 23


The syntax of the DSNAME parameter
{DSNAME} = {data-set-name}
{DSN} {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.

Murachs 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 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.

Murachs 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 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 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.

Murachs OS/390 and z/OS JCL Figure 4-12a Chapter 4, Slide 26


DISP parameter default values
status 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, normal
disposition is KEEP.
abnormal disposition 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, its deleted
DISP=(,CATLG,DELETE)

Murachs OS/390 and z/OS JCL Figure 4-12b Chapter 4, Slide 27


The syntax of the UNIT parameter
{group-name}
UNIT= {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 thats 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.

Murachs 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 DSNAME=MM01.INVNTORY.MASTER,DISP=(NEW,CATLG),
// UNIT=SYSDA,VOL=SER=MPS8BV,...

Murachs OS/390 and z/OS JCL Figure 4-13b Chapter 4, Slide 29


The syntax of the SPACE parameter
SPACE= (unit,(primary-qty,secondary-qty[,dir]))

Explanation
unit 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.

Murachs 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: 4 cylinders
Secondary: 1 cylinder
Directory: 5 blocks
Example 2
SPACE=(TRK,(5,2))

Primary: 5 tracks
Secondary: 2 tracks
Example 3
SPACE=(800,(500,100))

Primary: 500 800 byte blocks


Secondary: 100 800 byte blocks

Murachs OS/390 and z/OS JCL Figure 4-14b Chapter 4, Slide 31


The syntax of the DCB parameter
DCB=(option,option...)
Commonly used DCB options
DSORG=x Specifies the data sets organization, as follows:
PS Physical sequential
PO Partitioned
DA Direct
IS Indexed sequential
RECFM=x Specifies the format of the files 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
LRECL=n Specifies the length of the files records.
BLKSIZE=n Specifies the length of the files blocks; for FB, BLKSIZE is normally a
multiple of LRECL.

Murachs 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

Murachs 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 {*} [ ,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 delimiter
statement to end the data.
DLM Specifies the characters that identify a delimiter statement. If omitted, slash-
asterisk (/*) is the default.

Murachs 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.

Murachs 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 DD SYSOUT=*

Murachs OS/390 and z/OS JCL Figure 4-17 Chapter 4, Slide 36


System flowchart for the transaction-posting
application

Transaction
Customer journal
transactions

Post Transaction
Customer customer summary
master file transactions report
(CM3000)

Error Error listing


transactions

Murachs OS/390 and z/OS JCL Figure 4-18a Chapter 4, Slide 37


Data set requirements for the transaction-posting
application
ddname 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)

Murachs OS/390 and z/OS JCL Figure 4-18b Chapter 4, Slide 38


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=*

Murachs OS/390 and z/OS JCL Figure 4-18c Chapter 4, Slide 39


The job control requirements for a report-preparation
application

Customer Sorted
AR master file Dunning file
master file dunning file

Prepare ATB Sort by invoice, Prepare XREF


Sort by invoice Extract
and overdue customer, report and
within customer dunning data
invoice report state statements
(SORT) (AR7100)
(AR7200) (SORT) (AR7300)

Aged trial balance Overdue invoiced Cross reference


Statements
Sorted report report report
AR master file

Murachs OS/390 and z/OS JCL Figure 4-19a 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)
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)

Murachs OS/390 and z/OS JCL 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)
SYSIN (instream data set)
AR7300 AR7300 DUNSORT MM01.DUNNING.FILE.SORT
XREF (SYSOUT data set)
STMTS (SYSOUT data set)

Murachs OS/390 and z/OS JCL Figure 4-19c Chapter 4, Slide 42


The JCL for the report-preparation application
1 //MM01RP JOB 36512,'A PRINCE',MSGCLASS=X,MSGLEVEL=(1,1),
// NOTIFY=MM03
2 //SORT1 EXEC PGM=SORT
3 //SYSOUT DD SYSOUT=*
4 //SORTIN DD DSNAME=MM01.ACCOUNT.MASTER,DISP=SHR
5 //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=AR7100
9 //ARSORT DD DSNAME=MM01.ACCOUNT.MASTER.SORT,DISP=(OLD,DELETE),
// UNIT=SYSDA,VOL=SER=MPS800
10 //CUSTMAST DD DSNAME=MM01.CUSTOMER.MASTER,DISP=SHR
11 //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)

Murachs OS/390 and z/OS JCL Figure 4-20a Chapter 4, Slide 43


The report-preparation application (continued)
12 //AR7200 EXEC PGM=AR7200
13 //DUNNING DD DSNAME=MM01.DUNNING.FILE,DISP=OLD,
// UNIT=SYSDA,VOL=SER=MPS800
14 //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=*

Murachs OS/390 and z/OS JCL Figure 4-20b Chapter 4, Slide 44

Você também pode gostar