You are on page 1of 80

EXEC STATEMENT

Overview

EXEC STATEMENT
      
EXEC statement defines the beginning of a step in a job or a procedure. An EXEC statement is required for each job step. Maximum of 255 steps (EXEC statements) in a single job. Stepnames follow the same rules for all names in JCL: 1-8 characters in length (alphanumeric or national(#,@,$)). First character must be alphabetic or national. Must be followed by at least one blank.

EXEC STATEMENT SYNTAX

PROGRAM EXECUTION

By default, SYS1.LINKLIB is searched for the program to be executed.

TIME PARAMETER

TIME-EXAMPLE

REGION Parameter

Specifies amount of storage space required to execute the step

Formats are:

 REGION=<value>K  REGION=<value>M

<value> should be a positive numeric in units of “K” or “M” indicating Kilobytes or Megabytes of space

If omitted, a default value is assigned by the system

COND Parameter
 
On completion of each step, a return-code is generated. This return-code can be checked and based on this a step can be bypassed or executed. This is done using the COND parameter Formats are:

 COND=(<return-code>, <condition operator>)  COND=(<return-code>, <condition operator>,
<stepname>)

 COND=EVEN  COND=ONLY

  

<return-code> is a positive number from 0 to 4095 <condition operator> specifies the type of comparison to be made with the return-code of a previous step and can be one of GT,LT,GE,LE,EQ,NE <stepname> is the name of a prior executed step

COND Parameter
 
In the visual, examine the condition codes set in STEP2 and STEP3 The interpretation of the Condition codes set are

 In STEP2, if the RC from
STEP1 is less than or equal to 8, STEP2 is executed STEP2 is equal to 4, STEP3 is bypassed

 In STEP3, if the RC from

Program

 RTCODE00 in STEP1, if  RTCODE04 in STEP2, if  RTCODE08 in STEP3, if

executed, returns a RC of 0 executed, returns a RC of 4 executed, returns a RC of 8

COND Parameter Interpretation
COND parameter check Return code from referred step Terminate JOB COND=(code,GT,step) COND=(code,GE,step) COND=(code,EQ,step) COND=(code,LT,step) COND=(code,LE,step) COND=(code,NE,step) RC from step < code RC from step <= code RC from step = code RC from step > code RC from step >= code RC from step not = code Execute JOB RC from step > = code RC from step > code RC from step not = code RC from step < = code RC from step < code RC from step = code

Example: Condition Parameter

EVEN and ONLY Condition Codes

COND=EVEN executes the step, even if any preceding steps have ended abnormally

COND=ONLY executes the step, only if any preceding steps have ended abnormally

Example: Condition Parameter for EVEN AND ONLY

DD STATEMENT

OVERVIEW

DD STATEMENT

The DD statement is used to describe a data set and specify the input and output resources needed for the data set. A DD statement is normally required for each data set that is to be processed in a step. All DD statements for a single step must follow the EXEC statement. DD statements for a single step can usually be in any order.

 

Why DD ?.

Accessing a Data set

DD Statement

 

DD statement identifies a data stream to a program DD statement contains

 An optional DD
name

 DD operation
field

 Positional
parameters

 Keyword
parameters
 UNIT  DISP

DDNAME

 

Specifies a name for the DD statement Must start with an alphabet and between 1 to 8 alphanumeric characters Must begin in column 3 and be continued till column 10 Is conditionally optional

 

DSN - Keyword Parameter

 

Specifies the fully qualified physical name of the input or output file Format is

 DD DSN=<dataset-name> for a cataloged dataset  DD DSN=&&temporary-dataset-name for a temporary
dataset

 

For cataloged dataset, DSN name must be a maximum of 44 character including periods after every 8 characters or less Temporary datasets start with && and are 1 to 6 characters long

Example for Creating Temporary Dataset

DISP Keyword Parameter
 
Specifies the existing status (disposition) of the dataset and steps to be taken on successful/unsuccessful execution of the step Format is

 DISP=(<present-status>, <normal-end-status>, <abnormal-endstatus>)

 present-status specifies current status, meaning whether the data
set exists or is to be created and if it exists, the mode of access to it

 normal-end-status specifies how to handle the dataset upon
successful completion of the JOB

 abnormal-end-status specifies how to handle the dataset upon
abnormal termination of JOB

DISP Keyword Parameter
DISP=(<present-status>, <normal-end-status>, <abnormal-end-status>)

   

One or more sub parameters can be omitted but at least one should be coded Sub parameters are positional in nature If only <present-status> is coded, parantheses can be omitted If the <present-status> field is omitted and the <normal-endstatus> and <abnormal-end-status> are coded, then parantheses are required and comma should be coded before the sub-parameters

Example Program : DISP(NEW,DELETE,DELET E)

Example Program : DISP(NEW,KEEP,DELET E)
EXAMPLE

Example Program : DISP(NEW,PASS,DELETE)

DATA SET WILL NOT BE RETAINED

Example FOR COPYING A Physical file to another Physical File : DISP(NEW,CATLG,DELETE )
Example

Example Program : DISP(OLD,KEEP,DELET E)

DATASET WILL BE RE-WRITTEN

Example Program : DISP(MOD,KEEP,DELET E)

Example Program: DISP(MOD,KEEP,DELET E)

UNIT Keyword Parameter

 

Specifies information about the input or output devices used by the JOB Some formats are:

 UNIT=device-address  UNIT=device-type  UNIT=device-group-name

SPACE Keyword Parameter

SPACE Keyword Parameter
 
Specifies Space required to allocate a new dataset on DASD Format is SPACE=(S1,(S2,S3,S4),S5,S6,S7) where

 S1 is mandatory and specifies unit of allocation  S2 is mandatory and specifies the primary quantity  S3 is optional and specifies the secondary quantity  S4 is optional and specifies the directory blocks used for creating a
partitioned dataset

 S5 is optional and is coded as RLSE  S6 is optional and is coded as CONTIG  S7 is optional and is coded as ROUND

SPACE Keyword Parameter

SPACE=(S1,(S2,S3,S4),S5,S6,S7)

<S1> sub parameter specifies unit of allocation. The units are:

 TRK – For allocating Space in units of tracks  CYL – For allocating Space in units of cylinders  <block-size> for allocating space in units of blocks; Exactly, how many
bytes of data will be allocated depends on the value specified in the DCB=BLKSIZE sub parameter

SPACE Keyword Parameter
SPACE=(S1,(S2,S3,S4),S5,S6,S7)

 

<S2> sub parameter specifies primary quantity of space requested <S3> sub parameter

 Specifies secondary quantity of space which is allocated when
primary quantity of space is insufficient

 Secondary space when allocated may not be contiguous with
primary space

 If not specified JOB may abend

<S4> sub parameter

 Specifies the number of directory blocks for creating a Partitioned
dataset

SPACE Keyword Parameter
SPACE=(S1,(S2,S3,S4),S5,S6,S7)

<S5> sub parameter –

 Specifies the option RLSE that indicates that any unused space
allocated to a dataset be released once the dataset is closed.

 Takes time to release space

<S6> sub-parameter

 Specifies a value CONTIG that indicates that only contiguous space
should be allocated to the dataset

 Option applies only to primary space allocation  Results in decreased dataset access time  JOB abends if requested space is not contiguously available

<S7> sub parameter

 Specifies a value ROUND

DATA CONTROL BLOCK Parameter DCB

 

Specifies the attributes of the dataset

Sub parameters are:

 RECFM  LRECL  BLKSIZE  DSORG

DCB - Sub Parameters

LRECL (Stands for Logical Record Length)

 Format is LRECL=<record-length>  Specifies record length in bytes for fixed and variable length
records

 For variable record lengths, the LRECL should be 4 bytes more
than the length of the largest record

BLKSIZE

 Format is BLKSIZE=<block-size>  Specifies the block size of data in bytes  Must be a multiple of LRECL  For variable record lengths the BLKSIZE should be 4 bytes more
than the length of the largest record

DCB – Sub Parameters

 

RECFM – Specifies record format of dataset being created Format is RECFM=<record-format> where <record-format> can take one of the following values

F

-

Fixed Fixed Blocked Variable

 FB V
-

 VB - Variable Blocked U
Undefined

DCB – Sub Parameters

 

DSORG specifies the way data set is organized Format is DSORG=<dataset-organization> where <datasetorganization> can take one of following values:

 PS for Physical sequential  PO for Partitioned organization

Dataset Concatenation

    

Datasets can be concatenated and considered as one file by the system All datasets being concatenated must have the same record format All datasets being concatenated must exist on same type of device To concatenate datasets omit the DDname from all the DD statements except the first one In this visual FILE1 is a concatenated input dataset

Special DD statements

      

SYSIN JOBLIB STEPLIB JCLLIB SYSOUT SYSDUMP SYSABEND

JOBLIB

If coded, specifies the library where the load module of the program to be executed will be searched first in any step Coded immediately after the JOB statement else results in JCL error

STEPLIB

Specifies the library where the load module of the program to be executed will be searched

Applies only to the step where it is specified

SYSOUT

Special DDname used for listing messages listed out of the DISPLAY verb used in COBOL program

Dump related special DDnames

SYSDUMP

 Format is SYSDUMP DD ……  Used to obtain a dump of the contents of various
registers and variables in case of an abnormal end of program

 Dump is in hexadecimal format

SYSABEND

 Format is SYSABEND DD ….  Contains same details as SYSDUMP with more details

 

SYSUDUMP SYSMDUMP

END