Table of Contents
This chapter describes JCL control statements and their operands.
The following is the list of JCL control statements.
JCL Control Statement | Description |
---|---|
Indicates the beginning of program control statements. | |
Defines a data set used in JOB or JOB STEP and sets attributes of the data set. | |
Uses special DD names. | |
Indicates the end of program control statements which are used after a CNTL statement. | |
Indicates the beginning of a STEP and sets attributes of the STEP. | |
Specifies a condition and describes JCL statements to be executed depending on the result of the condition after branching. | |
Includes a specified member in a JCL statement. | |
Describes JCL commands. | |
Specifies a library that gets procedures to be used in JCL or JCL statements specified in an INCLUDE statement. | |
Indicates the start of JOB and describes the JOB's attributes. | |
Specifies attributes of a SYSOUT data set for output. | |
Indicates the end of a procedure. | |
Indicates the start of a procedure. | |
Specifies values of symbolic parameters used in JCL. | |
Transmits data to another node. | |
Indicates the end of a JOB. | |
Indicates the end of in-stream data by being placed right after the last line of in-stream data. | |
Describes comments. |
Indicates the start of program control statements. All statements between a CNTL statement and an ENDCNTL statement are handled as control statements. CNTL, program control, and ENDCNTL statements are syntax checked, but not used in OpenFrame.
Syntax
//[Label]△¹CNTL△[* comments]
Example
The following example shows how to use a CNTL statement and an ENDCNTL statement.
//STEP1 EXEC PGM=PRINT //ALPHA CNTL * PROGRAM CONTROL STATEMENT FOLLOWS //PRGCNTL PRINTDEV BUFNO=20,PIMSG=YES,DATACK=BLOCK //OMEGA ENDCNTL //AGAR DD UNIT=AFP1
Defines a data set used in jobs or job steps and sets attribute of the data set.
Syntax
//[DD name]△¹DD△¹[location operand][,keyword operand]...△¹[comments] //[procedure STEP name.DD name]△¹DD△¹[location operand][,keyword operand]...△¹[comments]
Field | Description |
---|---|
DD name procedure STEP name.DD name | Specifies the DD name from column 3 after "//." If a DD statement does not have a name, it is treated as a CONCATENATED DD statement. A DD name is a combination of alphanumeric characters, beginning with an alphabetic character. The length can be up to eight characters. If a DD name is used along with a procedure STEP name, the DD statement overrides the attribute of a DD statement that has the same name in the procedure STEP. If there is no statement with the same name, the DD statement is added with its own name. A procedure STEP name is a combination of alphanumeric characters, beginning with an alphabetic character. Its length can be up to eight characters. For more information about CONCATENATED DD and how to add and override a DD statement in a STEP procedure, see the description following this table. |
DD | Specifies the operation DD. Leave one or more empty spaces before writing "DD" after a DD name. |
[location operand][,keyword operand] | Specifies operands after "DD" followed by one or more empty spaces. Use a location operand and then a keyword operand. For detailed information, refer to the Operand section and descriptions of each operand. |
[comments] | Used after operands followed by one or more empty spaces. Comments can be described up to column 71. If all operands are omitted, comments cannot be used. |
The following describes CONCATENATED DD and how to add and override a DD statement in a STEP procedure.
CONCATENATED DD
Concatenated data set means that multiple input data sets are logically used as a single data set. CONCATENATED DD is used for this purpose.
CONCATENATED DD is used by omitting a DD name. The DD statement is logically concatenated with a previously declared DD statement. Special DD such as JOBCAT and STEPCAT can be concatenated.
The following example shows how to concatenate three data sets with CONCATENATED DD.
//SYSIN DD DSN=TMAX.SYSIN1,DISP=SHR // DD DSN=TMAX.SYSIN2,DISP=SHR // DD DSN=TMAX.SYSIN3,DISP=SHR
Adding or overriding a DD statement in a STEP procedure
A DD statement specified in a STEP that calls a procedure is used in the STEP of the called procedure, not in the corresponding STEP. To use a DD statement in a STEP that calls a procedure, specify explicitly the STEP in which the DD statement will be used. A STEP in a procedure is specified as procedure STEP name.DD name after "//."
If a procedure STEP name is not specified, a procedure STEP name specified in previous DD is used. If a DD statement without a procedure STEP name is the first DD statement, the DD statement is determined to be used in the first STEP of a procedure. If a specified procedure STEP name does not exist in a procedure, the DD statement is not used.
In the following example, the DD1 statement and the DD2 statement are used in PSTEP1 and PSTEP2, respectively.
//JOB1 JOB //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT //PSTEP2 EXEC PGM=TMAXSOFT // PEND //STEP1 EXEC TMAXPROC //PSTEP1.DD1 DD DSN=TMAX.DSN,DISP=SHR //PSTEP2.DD2 DD DSN=TMAX.DSN2,DISP=SHR //
In the following example, although the DD2 statement's procedure STEP name is omitted, the DD2 statement is used in PSTEP2 because the DD1 statement's procedure STEP name is PSTEP2.
//JOB1 JOB //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT //PSTEP2 EXEC PGM=TMAXSOFT // PEND //STEP1 EXEC TMAXPROC //PSTEP2.DD1 DD DSN=TMAX.DSN,DISP=SHR //DD2 DD DSN=TMAX.DSN2,DISP=SHR //
In the following example, as the DD1 and DD2 statements' procedure STEP names are omitted, the statements are used in PSTEP1, the first STEP of TMAXPROC.
//JOB1 JOB //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT //PSTEP2 EXEC PGM=TMAXSOFT // PEND //STEP1 EXEC TMAXPROC //DD1 DD DSN=TMAX.DSN,DISP=SHR //DD2 DD DSN=TMAX.DSN2,DISP=SHR //
The following are supported operand types. For more information about each operand, refer to the respective section.
Location operands
Among asterisk (*), DATA, DUMMY and DYNAM, use only one for the location operand in a DD statement.
Operand | Description |
---|---|
Indicates the input of in-stream data. If DATA is used along with the DLM operand, JCL statements can be received as in-stream data. | |
Specifies a DUMMY data set. | |
Syntax checked, but not used in OpenFrame. |
Keyword operands
Operand | Description |
---|---|
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the unit of initial and additional values for record storage. | |
Specifies the maximum length of blocks. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a table that sets output characters and the size for printing data sets. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the copy count of the entire or individual page of SYSOUT data sets. | |
Specifies the SMS data classes. | |
Specifies information about Data Control Block (DCB) of non-VSAM data sets. | |
Specifies the DD name and holds off defining the data set until the specified DD is issued. | |
Specifies the destination for a SYSOUT data set. | |
Specifies the status and post-processing of data sets. | |
Used along with the asterisk (*) or DATA operand and specifies a delimiter to indicate the end of in-stream data. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the name of a data set. | |
Specifies the type of a data set. | |
Specifies the expiration date of a data set. | |
Specifies the printer to print SYSOUT data sets with a specified format. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a film OVERLAY identification name and the number of copies when a certain template and range are printed on papers in advance. | |
Syntax checked, but not used in OpenFrame. | |
Specifies whether to hold off printing SYSOUT data sets. | |
Specifies the length of a new data set key. | |
Specifies the offset where a new data set key starts. | |
Specifies the label of a data set. | |
Syntax checked, but not used in OpenFrame. | |
Copies attributes of an existing data set to those of a newly created data set. The existing data set must be cataloged. | |
Specifies the length of a record of a newly created data set. | |
Specifies the SMS data classes. | |
Specifies a copy-modification module name for a SYSOUT data set and the number of order for a table specified with the CHARS operand. | |
Specifies the maximum number of records that can be output in a SYSOUT data set. | |
Specifies an OUTPUT statement to be referenced. | |
Specifies a Unix file path. | |
Specifies the status and post-processing of a Unix file specified with the PATH parameter. | |
Specifies access permissions for individual files by user when creating unix files specified with the PATH parameter. Files are created by specifying PATHOPTS=OCREAT. | |
Specifies the access mode and status of a Unix file specified with the PATH parameter. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the record format and characteristics of a data set. | |
Syntax checked, but not used in OpenFrame. | |
References the attributes from an earlier DD statement. | |
Specifies the number of days to retain a data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Allocates space for a new data set on a direct access volume. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the SMS storage classes. | |
Syntax checked, but not used in OpenFrame. | |
Uses symbolic parameters in in-stream data. | |
Specifies the otuput attributes of a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the I/O device to allocate data sets. | |
Specifies the volume of a data set. |
Indicates the input of in-stream data. If DATA is used along with the DLM operand, JCL statements can be received as in-stream data. In-stream data appears after the corresponding DD statement, and since this DD statement is temporarily created in JOB SPOOL with the contents of the in-stream data, the usage is the same as a normal data set.
In-stream data is deemed to end, if:
A delimiter statement is used
Input stream ends (EOF in a UNIX file)
A control statement other than a delimiter statement is used
A specified delimiter is used when the DLM operand is specified
The following describes the usage of asterisk (*) and DATA.
Syntax
* DATA
Note
The asterisk (*) operand cannot be used along with the DLM operand.
Examples
The following example uses in-stream data as SYSIN with asterisk (*).
//SYSIN DD * this is sysin data /*
The following example shows that instream data is terminated by a control statement.
//SYSIN DD * this is sysin data //SYSOUT DD SYSOUT=*
Syntax checked, but not used in OpenFrame.
Syntax
ACCODE = value
Field | Description |
---|---|
value | A symbolic name having between one and eight characters. |
Specifies the unit of initial and additional values for record storage.
Syntax
AVGREC = {U|K|M}
Field | Description |
---|---|
U | Value in units of 1 byte. |
K | Value in units of 1,024 bytes. |
M | Value in units of 1,048,576 bytes. |
The AVGREC operand is applied only when the first field of the SPACE operand is record length. The unit is used for the initial value and additional value of the SPACE operand.
When the AVGREC operand is used, space quotas are calculated as follows:
Initial space quota = initial value * record length * the unit specified with AVGREC Additional space quota = additional value * record length * the unit specified with AVGREC
Note
The AVGREC operand is ignored if the first field of the SPACE operand is either TRK or CYL.
Example
The following example specifies M for the AVGREC operand. In this case, the initial space quota is 5 * 100 * 1048576 bytes, and the additional space quota is 2 * 100 * 1048576 bytes.
//EX1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),SPACE=(100,(5,2)),AVGREC=M
Specifies the maximum length of blocks. The maximum value that can be specified with this operand is 2,097,152 bytes, regardless of the record format.
Syntax
BLKSIZE = {value | valueK | valueM}
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 99999999. |
valueK | Specifies an unsigned integer between 0 and 98303. The maximum length of blocks is this value * 1024. |
valueM | Specifies an unsigned integer between 0 and 95. The maximum length of blocks is this value * 1024 * 1024. |
Note
If the BLKSIZE operand is specified as a parameter of the DCB operand, it is overridden and ignored.
Example
The following example sets BLKSIZE to 4000.
//EX1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG), // RECFM=FB,LRECL=80,BLKSIZE=4000
Syntax checked, but not used in OpenFrame.
Syntax
BLKSZLIM = {value | valueK | valueM | valueG}
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 2147483648. |
valueK | Specifies an unsigned integer between 0 and 2097151. |
valueM | Specifies an unsigned integer between 0 and 2047. |
valueG | Specifies an unsigned integer between 0 and 1. |
Syntax checked, but not used in OpenFrame.
Syntax
CCSID = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 65535. |
Specifies a table that sets output characters and the size for printing data sets.
Syntax
CHARS = {table name} {(table name[,table name])} {DUMP} {(DUMP[,table name])}
Field | Description |
---|---|
table name | Specifies the name of a setting table. It is a combination of between one and four alphanumeric characters. You can specify up to four tables. |
DUMP | Not supported in OpenFrame. |
Note
The CHARS operand is ignored if printing is not for SYSOUT data sets.
To send CHAR information to an external printer module, OpenFrame saves the information after the JOB execution is completed. Whether the information is used depends on the necessity of an external printer module.
Example
The following example sends information of CHARS=(TBJ1,TBJ2) to an external printer module.
//EX1 DD SYSOUT=A,CHARS=(TBJ1,TBJ2)
Syntax checked, but not used in OpenFrame.
Syntax
CNTL = {*.label } {*.stepname.label } {*.stepname.procstepname.label}
Field | Description |
---|---|
label | A combination of alphanumeric characters having one to eight characters. |
Specifies the copy count of each page or entire SYSOUT data sets.
Syntax
COPIES = (copy count[,(group copy count[,group copy count]...)])
Field | Description |
---|---|
copy count | Specifies copy count of SYSOUT data sets. It is unsigned integer from 0 through 255. (Default: 1) |
group copy count | Specifies copy count of SYSOUT data sets in pages. It is unsigned integer from 0 through 255. (Default: 1) |
Note
The COPIES operand is ignored if printing is not for SYSOUT data sets.
To send COPIES information to an external printer module, OpenFrame saves the information after the JOB execution is completed. Whether the information is used depends on the necessity of an external printer module.
Example
The following example sends information from COPIES=(2,(2,1)) to an external printer module.
//OUTPUT DD SYSOUT=A,COPIES=(2,(2,1))
Specifies SMS data classes. When specified, the data class specified in the sms subject in OpenFrame Configuration uses the specified data set configuration.
For more information about the sms subject, refer to OpenFrame Configuration Guide.
Syntax
DATACLAS = class name
Field | Description |
---|---|
class name | Specifies data class name with one to eight symbols. If not specified, the default value is used. |
Note
An error occur if the corresponding data class is not configured in the sms subject during OpenFrame configuration.
Example
The following example specifies a data class as DATA01.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),DATACLAS=DATA01
Specifies information about Data Control Block (DCB) of non-VSAM data sets.
Syntax
DCB = (dcb parameter[,dcb parameter]...) DCB = ({dataset name} [,dcb parameter]...) ({*.DD name} ) ({*.STEP name.DD name} ) ({*.STEP name.procedure STEP name.DD name} )
dcb parameter
Parameter | Description |
---|---|
BFALN={F|D} | Syntax checked, but not used in OpenFrame. |
BFTEK={A|S|R|D} | Syntax checked, but not used in OpenFrame. |
BLKSIZE={value|valueK|valueM} | Same as the BLKSIZE operand. |
BUFIN=value | Syntax checked, but not used in OpenFrame. |
BUFL=value | Specifies an unsigned integer between 0 and 32760. Syntax checked, but not used in OpenFrame. |
BUFMAX=value | Syntax checked, but not used in OpenFrame. |
BUFNO=value | Syntax checked, but not used in OpenFrame. |
BUFOFF={nn|L} | Specifies an unsigned integer between 0 and 99. Syntax checked, but not used in OpenFrame. |
BUFOUT=value | Syntax checked, but not used in OpenFrame. |
BUFSIZE=value | Specifies an unsigned integer between 31 and 65535. Syntax checked, but not used in OpenFrame. |
CPRI={R|E|S} | Syntax checked, but not used in OpenFrame. |
CYLOFL=value | Syntax checked, but not used in OpenFrame. |
DEN=value | Specifies an unsigned integer between 1 and 4. Syntax checked, but not used in OpenFrame. |
DIAGNS=TRACE | Syntax checked, but not used in OpenFrame. |
DSORG={PS|PSU|PO|POU|DA| DAU|IS|ISU} | Specifies the organization of a data set.
|
EROPT={ABE|ACC|SKP} | Syntax checked, but not used in OpenFrame. |
FUNC={I|R|P|W|RP|PW|RW} | Syntax checked, but not used in OpenFrame. |
GNCP=value | Syntax checked, but not used in OpenFrame. |
INTVL=value | Syntax checked, but not used in OpenFrame. |
IPLTXID=value | Syntax checked, but not used in OpenFrame. |
KEYLEN=value | Same as the KEYLEN operand. |
LIMCT=value | Syntax checked, but not used in OpenFrame. |
LRECL=record length | Same as the LRECL operand. |
MODE={C|E|CO|ER} | Syntax checked, but not used in OpenFrame. |
NCP=value | Specifies an unsigned integer between 1 and 99. Syntax checked, but not used in OpenFrame. |
NTM=value | Syntax checked, but not used in OpenFrame. |
OPTCD=value | Syntax checked, but not used in OpenFrame. |
PCI=value | Specifies a string starting with N,R,A or X on the first argument. Syntax checked, but not used in OpenFrame. |
PRTSP=value | Specifies an unsigned integer between 0 and 3. Syntax checked, but not used in OpenFrame. |
RECFM=F[B][A|M] V[B|S|BS][A|M] L[A|M] U[A|M] | Same as the RECFM operand. |
RESERVE=value | Syntax checked, but not used in OpenFrame. |
RKP=value | Same as the KEYOFF operand. When overlapping with KEYOFF, the RKP value is prioritized. |
STACK=value | Specifies an unsigned integer between 1 and 2. Syntax checked, but not used in OpenFrame. |
THRESH=value | Syntax checked, but not used in OpenFrame. |
TRTCH=value | Syntax checked, but not used in OpenFrame. |
Other fields
Field | Description |
---|---|
dataset name | Specifies that the DCB attributes of the specified data set are used. The name of a data set must be different from that of a generation data group (GDG), and the relative GDG number member name cannot be used. A specified data set must be cataloged. In OpenFrame, a non-cataloged but simply passed DD statement cannot be referenced. |
*.DD name *.STEP name.DD name *.STEP name.procedure STEP name.DD name | "*[.STEP name[.procedure STEP name].DD name" is for backward reference. This means that DCB attributes specified with an earlier DD statement in the same JOB will be used. Depending on whether the preceding DD statement is in the previous job step or procedure step, each step name or procedure step name is specified. If no DD statement specified by the backward reference exists, the job ends in the FLUSH state. |
Specifies the DD name and holds off defining the data set until the specified DD statement is issued. Once issued, the specified DD statement defines the data set with the specified settings. The specified DD statement is not practically used.
The DDNAME operand is mainly used in a STEP that calls a procedure. Since in-stream data cannot be used in a procedure, it is used by holding off defining a data set through DDNAME in a procedure STEP and setting a DD statement specified with DDNAME in the procedure-calling STEP.
In the following example, attributes of SYSIN DD in PSTEP1, which is the STEP in a procedure, are the same as those of PSTEP1.OUTSTEP1 DD in STEP1, which is the STEP that calls the procedure. TMAXSOFT receives in-stream data with SYSIN.
//JOB1 JOB //PROC1 PROC //PSTEP1 EXEC PGM=TMAXSOFT //SYSIN DD DDNAME=OUTSTEP1 // PEND //STEP1 EXEC PROC1 //PSTEP1.OUTSTEP1 DD * instream data /* //
The DDNAME operand is used as follows:
Syntax
DDNAME = DD name
Field | Description |
---|---|
DD name | Specifies a symbolic name for a DD statement to get the data set settings. |
Note
A DD statement that uses the DDNAME operand and a DD statement specified with the DDNAME operand must be found in the same STEP. If the DDNAME operand is used within a STEP in a procedure, it is handled as if the two DD statement are in the same STEP, because the STEP that calls the procedure determines that the DD statement specified with the DDNAME operand is used in the corresponding STEP.
A DD statement that uses the DDNAME operand must be used before a DD statement specified with the DDNAME operand. A DD statement specified with the DDNAME operand cannot be backwardly referenced by another DD statement.
A DD statement specified with the DDNAME operand must not have a special DD name. Since this DD statement is used only by a DD statement that uses the DDNAME operand and no longer used afterwards, it cannot function as a special DD statement.
If there exists no DD statement specified with the DDNAME operand, the DD statement that uses the DDNAME operand is considered to have a DUMMY data set.
Example
In the following example, the SYSOUT statement references the DD2 statement to set its data set. DD2 is only referenced without being used.
//STEP1 EXEC PGM=TMAXSOFT //SYSOUT DD DDNAME=DD2 //DD2 DD SYSOUT=*
In the following example, IN in STEP2 backwardly references OUT in STEP1. The referenced part is OUT in STEP1, not DD2 in STEP1.
//STEP1 EXEC PGM=TMAXSOFT //OUT DD DDNAME=DD2 //DD2 DD DSN=TEST.DATASET,DISP=(NEW,PASS) //STEP2 EXEC PGM=TMAXSOFT //IN DD DSN=*.STEP1.OUT,DISP=(OLD,DELETE) //
Specifies the destination for a SYSOUT data set.
Syntax
DEST = destination
Field | Description |
---|---|
destination | Specifies the destination for a SYSOUT data set. |
Note
The DEST operand is ignored if the printing is not for SYSOUT data sets.
To send the DEST information to an external printer module, OpenFrame saves the information after the JOB execution is completed. Whether the information is used depends on the necessity of an external printer module.
Example
The following example sends information in DEST=LOCAL to an external printer module.
//EX1 DD SYSOUT=A,DEST=LOCAL
Specifies the status and post processing method of a data set
Syntax
DISP = ([NEW] [,DELETE] [,DELETE]) [OLD] [,KEEP] [,KEEP]) [SHR] [,PASS] [,CATLG]) [MOD] [,CATLG] [,UNCATLG]) [,] [,UNCATLG] [,]
Parameter 1
Specifies the status of a data set.
Parameter | Description |
---|---|
NEW | The data set is newly created in the corresponding JOB STEP. |
OLD | The data set already exists since before the corresponding JOB STEP. |
SHR | The data set already exists since before the corresponding JOB STEP. Other JOBs can share the data set. |
MOD | The data set is expanded (additionally written). If you open a physical sequential data set by printing, you can additionally write on it. When MOD is specified, if SER or REF is specified with the VOLUME operand, it is regarded that the data set already exists. When SER or REF is not specified with the VOLUME operand, if a specified data set has been passed or cataloged, it is regarded that the data set already exists. In other cases, parameter 1 is considered to be set to NEW. |
Parameter 2
Specifies the post processing method for a data set when JOB STEP is normally ended (not ABEND).
Parameter | Description |
---|---|
DELETE | Deletes the data set after the corresponding JOB STEP has ended. When volume information is obtained from catalog, it is removed from catalog only when the processing of DELETE has been successfully finished. |
KEEP | Retains the data set. However, if a JOB STEP in which the data set was created is abnormally ended (ABEND) and DELETE is specified in parameter 3, the data set is deleted. |
PASS | Passes the data set to the subsequent JOB STEP. When the subsequent JOB STEP receives the data set using a DD statement, SER or REF must not be specified with the VOLUME operand in the DD statement. A data set can be passed to a subsequent JOB STEP only once. Therefore, PASS must be specified with the DISP operand every time the data set is needed to be passed. When there are multiple data sets that have the same name in a single JOB, they must not be passed all together at a particular time. VSAM data sets cannot be passed. |
CATLG | Catalogs the data set when the JOB STEP ends. If the system references the catalog to allocate a data set, and if CATLG is specified, re-cataloging occurs. |
UNCATLG | Retains the data set when the JOB STEP ends, but deletes the catalog information in the catalog. |
Parameter 3
Specifies the post processing method for a data set when the JOB STEP is abnormally ended (ABEND). Same parameters as Parameter 2 except for PASS are used.
Note
If only Parameter 1 is specified, parentheses are not necessary.
When omitted, the DISP operand is set to NEW,DELETE,DELETE by default.
If Parameter 1 is omitted, and Parameter 2 is specified, Parameter 1 is set to NEW by default.
If Parameter 1 is set to NEW, while Parameter 2 and 3 are omitted, Parameter 2 and 3 are set to DELETE by default. If Parameter 1 is not NEW, Parameter 2 and 3 are considered as being set to KEEP.
If Parameter 3 is omitted, the setting of Parameter 2 applies to Parameter 3.
In the case of a temporary data set, Parameter 3 of the DISP operand, regardless of which parameter is actually set, is internally considered as being set to PASS.
In the case of a VSAM data set, Parameter 1 must not be set to NEW.
Example
The following example writes a temporary data set in the direct access volume and deletes it when the JOB STEP ends.
//TEMP DD UNIT=DISK,SPACE=(TRK,(5,1))
The following example requests an exclusive use of a data set 'ORG.SOURCE.TEST' which is written in a volume with a serial number of 333333. The data set is cataloged when the JOB STEP ends.
//DD1 DD DSN=ORG.SOURCE.TEST,UNIT=8598, // DISP=(OLD,CATLG), // VOL=SER=333333
The following example requests an exclusive use of a data set 'ORG.LIB' which has already been cataloged. The data set is deleted when the JOB STEP ends. The data set is not only deleted, but also uncataloged.
//DD2 DD DSN=ORG.LIB.DISP=(OLD,DELETE)
Used along with the DATA operand and specifies a delimiter to indicate the end of in-stream data.
The end of in-stream data is typically "/*". In this case, any data beginning with "/*" or "//" cannot be used as in-stream data. However, if you use anything other than "/*" as the delimiter through the DLM operand, any data beginning with "/*" or "//", in other words JES2 JCL or JCL statements can be used as in-stream data.
Syntax
DLM = delimiter
Field | Description |
---|---|
delimiter | Uses two characters to indicate the end of in-stream data. |
Example
The following example specifies AA as the delimiter to use OS JCL as the in-stream data of DD1.
//DD1 DD DATA,DLM=AA //JOB1 JOB --| //STEP1 EXEC PGM=TMAXSOFT | ---> In-stream data of DD1 // --| AA //DD2 ...
Syntax checked, but not used in OpenFrame.
Syntax
DSID = {id} {(id[,V])}
Field | Description |
---|---|
id | Specifies a symbolic name with up to eight characters. |
Specify the name of a data set. If DSNAME and DSN are specified at the same time, DSNAME is prioritized. Starting with "&&" is a temporary data set, and beginning with an asterisk (*) means the previously declared DD statement's data set name is used.
Syntax
{DSNAME | DSN} = {data set name } {data set name (member name) } {data set name (generation number) } {&&data set name } {*.DD name } {*.STEP name.DD name } {*.STEP name.procedure STEP name.DD name}
Field | Description |
---|---|
data set name | Specifies the data set name with symbols to use in the DD statement. The data set name can be described up to 44 characters in the following format: 'symbolic name[.<symbolic name>]…' Here, a symbolic name has up to 8 characters and generation group data set (GDG) up to 35 characters. The data set name cannot include any other special characters than @,# and $. |
member name | Specifies the data set member name with up to 8 characters. The data set member name cannot include any other special characters than @,# and $. |
generation number | Specifies the generation number of a generation group data set with a sign. If not specified, the plus (+) sign is used. The generation number cannot exceed the maximum generation number of the generation group data set. For more information about generation group data sets, refer to OpenFrame Data Set Guide. |
&&data set name | Specifies a data set to be temporarily used in the corresponding JOB. Since a temporary data set has an arbitrary name already, if the data set name is too long, an error may occur. Therefore, using a <symbolic name> without a period (.) is recommended. For more information about temporary data sets, see the description following this table. |
*.DD name *.STEP name.DD name *.STEP name.procedure STEP name.DD name | "*[.STEP name[.procedure STEP name].DD name" is for backward reference. This means that the data set name specified with an earlier DD statement in the same JOB will be used. Each STEP name or each STEP name and procedure STEP name are specified depending on whether the earlier DD statement is in the earlier JOB STEP or the earlier procedure STEP. If no DD statement specified with backward reference exists, the JOB ends in the FLUSH state. |
The following is a description of temporary data sets related to "&&data set name" as described earlier. A temporary data set is created in the following format.
"&&data set name"
SYSyyddd.Thhmmss.RA000.jobname.data set name.Hgg
Item | Description |
---|---|
yyddd | JOB execution date. |
hhmmss | JOB execution time. |
jobname | JOB name. |
gg | 01. |
DSN operand omitted
SYSyyddd.Thhmmss.RA000.jobname.Rggnnnn
Item | Description |
---|---|
yyddd | JOB execution date. |
hhmmss | JOB execution time. |
jobname | JOB name. |
nnnn | Unique number within the JOB, indicating the order of a DD table. |
"&&data set name" specified along with SYSOUT data set
jobid(userid.jobname.jobid.Dnnnnnn.data set name)
Item | Description |
---|---|
userid | User name of the JOB. |
jobname | JOB name. |
jobid | JOBID of the JOB. (JOB00001 to JOB99999) |
nnnnnn | Unique number within the JOB, indicating the order of a DD table. |
DSN operand omitted and SYSOUT data set in use
jobid(userid.jobname.jobid.Dnnnnnn)
Item | Description |
---|---|
userid | User name of the JOB. |
jobname | JOB name. |
jobid | JOBID of the JOB. (JOB00001 to JOB99999) |
nnnnnn | Unique number within the JOB, indicating the order of a DD table. |
"&&data set name" specified and in-stream data set in use
jobid(userid.jobname.jobid.Dnnnnnn.data set name)
Item | Description |
---|---|
userid | User name of the JOB. |
jobname | JOB name. |
jobid | JOBID of the JOB. (JOB00001 to JOB99999) |
nnnnnn | Unique number within the JOB, indicating the order of a DD table. |
DSN operand not omitted, or "&&data set name" not specified while in-stream data set in use
jobid(userid.jobname.jobid.Dnnnnnn)
Item | Description |
---|---|
userid | User name of the JOB. |
jobname | JOB name. |
jobid | JOBID of the JOB. (JOB00001 to JOB99999) |
nnnnnn | Unique number within the JOB, indicating the order of a DD table. |
Note
If the DSN operand is omitted, the DD statement is considered to use a temporary data set. However, if the status of the data set is not specified as NEW or MOD, it is considered to allocate a volume.
When the DSN operand is specified not with the "&&data set name" format but with a SYSOUT data set, the JOB ends in FLUSH.
A SYSOUT data set means that a class or an asterisk (*) is specified in the SYSOUT operand of a DD statement.
Example
The following specifies a data set as TMAX.DATASET.
//DD1 DD DSN=TMAX.DATASET,DISP=SHR
In the following example, the length of a data set exceeds 44 characters, causing a syntax error.
//DD1 DD DSN=TMAX.DATASET.OVERFLOW.LENGTH.COLUMN44.ISOCCUR.PARSE.ERROR
The following example specifies a data set and the member.
//DD1 DD DSN=TMAX.PDSLIB(DATASET),DISP=(NEW,DELETE,DELETE)
The following example specifies a generation data set.
//DD1 DD DSN=TMAX.GDG(+1),DISP=(NEW,DELETE,DELETE)
The following example specifies a temporary data set.
//DD1 DD DSN=&&TEMP,DISP=(NEW,PASS)
The following example specifies a temporary data set as SYSOUT data set.
//DD1 DD DSN=&&TEMP,SYSOUT=*
The following example omits the DSN operand.
//DD1 DD DISP=(NEW,PASS)
The following example references the data set name of the STEP. Here, the data set name of DD2 is TMAX.DATASET.
//DD1 DD DSN=TMAX.DATASET,DISP=SHR //DD2 DD DSN=*.DD1,DISP=SHR
The following example references the data set name of the previous STEP. Here, the data set name of STEP 2 DD1 is TMAX.DATASET.
//STEP1 EXEC PGM=TMAXSOFT //DD1 DD DSN=TMAX.DATASET,DISP=SHR //STEP2 EXEC PGM=TMAXSOFT //DD1 DD DSN=*.STEP1.DD1,DISP=SHR
The following example references the data set name of the previous procedure STEP. Here, the data set name of STEP2 DD1 is TMAX.DATASET.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT //PDD1 DD DSN=TMAX.DATASET // PEND //STEP1 EXEC TMAXPROC //STEP2 EXEC PGM=TMAXSOFT //DD1 DD DSN=*.STEP1.PSTEP1.PDD1
Specifies the data set type.
Syntax
DSNTYPE = {LIBRARY|HFS|PDS|PIPE|EXTREQ|EXTPREF|LARGE|BASIC}
Field | Description |
---|---|
LIBRARY | Specifies DSORG of the data set as PO. |
PDS | Specifies DSORG of the data set as PS. |
OpenFrame supports only LIBRARY and PDS.
Note
If DSORG is specified, DSNTYPE is ignored.
Example
The following example specifies the DSNTYPE as PDS.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),DSNTYPE=PDS
Specifies the data set as a DUMMY data set. If specified as DUMMY, no data is recorded on the data set because all data are discarded.
DSNAME=NULLFILE functions in the same way as DUMMY.
Syntax
DUMMY
Example
The following example specifies SYSOUT as DUMMY.
//SYSOUT DD DUMMY
Specifies the expiration date of a data set. Valid only for newly created data sets.
Syntax
EXPDT = {yyddd|yyyy/ddd}
Field | Description |
---|---|
{yyddd} |
|
{yyyy/ddd} |
|
If EXPDT = 99365 or EXPDT =1999/365, the data set is retained permanently.
Note
If EXPDT is specified with the LABEL operand, the EXPDT operand is overridden and ignored.
OpenFrame does not support further modification or a delete lock function before the expiration date of a data set. Only the automatic deletion of a expired data set is supported.
Example
The following example specifies the expiration date of a data set as December 31, 2010.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),EXPDT=2010/365
Specifies a printer that prints a SYSOUT data set with a specified format.
Syntax
FCB = fcb-name
Field | Description |
---|---|
fcb-name | Specifies a symbolic name with zero to four characters. |
Specifies the film OVERLAY identification name and the number of copies when certain template and range is preprinted in papers.
Syntax
FLASH = (film identification name〔,number of copies〕)
Field | Description |
---|---|
film identification name | Specifies the identification name of the film OVERLAY to be set by an operator before the printer starts printing. Contains one to four alphanumeric characters. |
number of copies | Specifies the number of copies to be printed with the specified film OVERLAY. An unsigned integer between 1 and 255 is applied. (Default: 255) |
Note
If printing is not for SYSOUT data sets, the FLASH operand is ignored.
To sen the FLASH information to an external printer module for printing, OpenFrame saves the information after the JOB execution is completed. Whether the information is used depends on the necessity of an external printer module.
Example
The following example sends the information of FLASH=(FLM1,2) to an external printer module.
//EXF1 DD SYSOUT=A,FLASH=(FLM1,2)
Specifies whether to hold off printing SYSOUT data sets.
Syntax
HOLD = {YES | Y | NO | N}
Field | Description |
---|---|
YES| Y| NO| N | Specifies whether to hold off printing SYSOUT data sets.
|
Note
If printing is not for SYSOUT data sets, the HOLD operand is ignored.
Example
The following example specifies the printing status for SYSOUT data sets to HOLD.
//SYSOUT DD SYSOUT=A,HOLD=YES
Specifies the length of a new data set key. Valid only when creating new ISAM data sets.
Syntax
KEYLEN = value
Field | Description |
---|---|
value | Specifies the length of a data set key. The value is between 1 and 255, and must be less than or equal to the record length. |
Note
If not ISAM data set, this operand is ignored.
If a parameter of the DCB operand is set to KEYLEN, this operand is overridden and ignored.
Example
The following example specifies KEYLEN of a ISAM data set as 10.
//DD1 DD DSN=ISAM.NEW.DATASET,DISP=(NEW,CATLG), // KEYLEN=10,DCB=(RECFM=FB,DSORG=IS,LRECL=72)
Specifies the offset from where the key of a new data set begins. KEYOFF is valid only when creating new ISAM data sets.
Syntax
KEYOFF = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 32760. |
Note
If the data set is non-ISAM, this operand is ignored.
If a parameter of the DCB operand is set to KEYOFF, this operand is overridden and ignored.
Example
The following example specifies KEYOFF of an ISAM data set as 20.
//DD1 DD DSN=ISAM.NEW.DATASET,DISP=(NEW,CATLG), // KEYLEN=10,KEYOFF=20,DCB=(RECFM=FB,DSORG=IS,LRECL=72)
Specifies the label of a data set.
Syntax
LABEL = ([data set sequence number][,AL] [,PASSWORD][,IN] [,EXPDT={yyyy/ddd}]) [,AUL][,NOPWREAD][,OUT] {yyddd} [,BLP][,] [,] [,RETPD=nnnn] [,LTM] [,NL] [,NSL] [,SL] [,SUL] [,]
Field | Description |
---|---|
data set sequence number | Specifies an unsigned number between 0 and 9999. Valid only when the specified data set volume is a tape volume, and the value of the USE_TAPE_FILESEQ key in the DATASET_DEFAULT section of the ds subject in OpenFrame Configuration is set to YES. |
EXPDT ={yyyy/ddd} | {yyddd} | Specifies the expiration date of a data set. Valid only when creating new data sets. Further modification or deletion before the specified expiration date is not possible.
EXPDT=99365 or EXPDT=1999/365 retains the data set permanently. |
RETPD=nnnn | Specifies the number of days to retain the data set. Valid only when writing new data sets.
If the expiration date is 99365 or 1999/365, the data set is retained permanently. |
OpenFrame supports data set sequence number and the EXPDT and RETPD parameters. Other parameters are not used except for syntax check, therefore not covered in this guide.
Note
OpenFrame does not support further modification or a delete lock function before the expiration date of a data set.
Only the automatic deletion of a expired data set is supported.
Example
The following example stores a new data set 'TMAX.PRESERVE' on a magnetic tape volume for permanent retention.
//DD2 DD DSN=TMAX.PRESERVE,UNIT=848X-1, // DISP=(,KEEP),VOL=SER=111111, // LABEL=EXPDT=99365
Syntax checked, but not used in OpenFrame.
Syntax
LGSTREAM = value
Field | Description |
---|---|
data set name | Specifies a symbolic name having up to 26 characters except the period (.). |
Copies attributes of an existing data set to those of a newly created data set. The existing data set must be cataloged. The following attributes are copied: attributes related to DSORG, RECFM, KEYLEN, LRECL, BLKSIZE, and SPACE parameters.
Syntax
LIKE = data set name
Field | Description |
---|---|
data set name | Specifies a symbolic name having up to 1 to 8 characters, or up to 44 characters in the format of "symbolic name[.symbolic name]". |
Note
An error may occur if the specified data set is not cataloged.
Example
The following example gets attributes of a new data set from those of LIKE.DATASET.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),LIKE=LIKE.DATASET
Specifies the length of a record in a newly created data set.
If the record type is either fixed length block record or span record, this operand must be specified. If the type is not a span record, the length of a record specified with the LRECL operand cannot exceed the length of a block specified with the BLKSIZE operand. The maximum length for each record type is 32,760 bytes for a fixed length or unspecified record.
The following example shows how to specify the length of a record for each type.
Specify the length of a record.
RECFM={F|FB}
Specify the maximum length of a record. The length includes 4 bytes for the RDW.
RECFM={V|VB|VS|VBS}
Specify the maximum length of a record.
RECFM=U
The following example shows how to use the LRECL operand.
Syntax
LRECL = value
Field | Description |
---|---|
value | Specifies the length of a data set record specified with an unsigned integer between 0 and 32760. |
Note
If LRECL is specified as a parameter of the DCB operand, this operand is overridden and ignored.
The maximum length for non-VSAM data sets is 32760.
Example
The following example specifies the length of a record as 70.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),LRECL=70,DCB=(RECFM=FB)
Specifies an SMS management class. If a management class is specified, the corresponding class is queried among management classes specified in the sms subject under OpenFrame Configuration, and the described management settings are used.
For more information about the sms subject, refer to OpenFrame Configuration Guide.
Syntax
MGMTCLAS = class name
Field | Description |
---|---|
class name | Specifies the management class name with one to eight symbolic characters. If not specified, the default value is used. |
Note
An error may occur if the corresponding management class is not configured in the sms subject under OpenFrame Configuration.
Example
The following example specifies the management class name as MGMT01.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),MGMTCLAS=MGMT01
Specifies a copy-modification module name of a SYSOUT data set and the number of order for a table specified with the CHARS operand.
Syntax
MODIFY = (module name[,table number])
Field | Description |
---|---|
module name | Specifies a copy-modification module name with one to four alphanumeric characters except the period (.). |
table number | Specifies the sequence number for a table specified by the CHARS operand with a number between 0 and 3. |
Note
The MODIFY operand is ignored if printing is not for SYSOUT data sets.
To send the MODIFY information to an external printer module, OpenFrame saves the information after the JOB execution is completed. Whether the information is used depends on the necessity of an external printer module.
Example
The following example sends information from CHARS=(TBJ0,TBJ1), MODIFY=(TLE2,2) to an external printer module.
//OUT1 DD SYSOUT=A,CHARS=(TBJ0,TBJ1), // MODIFY=(TLE2,2)
Specifies the maximum number of records that can be printed in a SYSOUT data set. If this operand is omitted in JCL, the value of the OUTLIM key in the DD section of the tjclrun subject in OpenFrame Configuration applies by default.
For more information about the tjclrun subject, refer to OpenFrame Configuration Guide.
Syntax
OUTLIM = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 16777215. |
Note
If OUTLIM is set to 0, the number of records is unlimited.
Specifies an OUTPUT statement to be referenced. If an OUTPUT statement is referenced by using this operand, output is handled with the setting specified by the corresponding OUTPUT statement. If multiple OUTPUT statements are referenced, output is handled with each setting specified by OUTPUT statements that are referenced by a single SYSOUT data set.
Syntax
OUTPUT = (reference[,reference]...)
Field | Description |
---|---|
reference | A reference can be specified with one of the following formats.
|
Note
An error may occur if there exists no OUTPUT statement to be referenced.
Example
The following example references an OUTPUT statement.
//JOB1 JOB CLASS=A,MSGCLASS=A //OUT1 OUTPUT COPIES=5,OUTDISP=WRITE //STEP1 EXEC PGM=TMAXTEST //OUT2 OUTPUT COPIES=3,OUTDISP=HOLD //OUTDD1 DD SYSOUT=*,OUTPUT=(*.OUT1,*.OUT2) //SYSOUT DD SYSOUT=* //STEP2 EXEC PGM=TMAXTEST //OUTDD2 DD SYSOUT=*,OUTPUT=*.STEP1.OUT2 //SYSOUT DD SYSOUT=* //
In the previous example, the OUTDD1 SYSOUT data set references OUT1 and OUT2, and output is handled once with the setting of OUT1 and once with the setting of OUT2. The OUTDD2 SYSOUT data set references OUT2 in STEP1, and output is handled with the setting of OUT2. As a result, output is handled five times: twice for OUTDD1, once for OUTDD2, and twice for SYSOUT in each STEP.
Specifies a Unix file path. This parameter operates only when using the TSO OCOPY command.
Syntax
PATH = 'file-path'
Specifies the status and post-processing method of a Unix file specified by the PATH parameter. This parameter operates only when using the TSO OCOPY command.
Syntax
PATHDISP = ([KEEP][,KEEP] ) ([DELETE][,DELETE])
Parameter 1
Specifies the post-processing method of a file when the JOB STEP is normally ended (no ABEND). If not specified, KEEP is the default value for both.
Field | Description |
---|---|
DELETE | Deletes the file after the JOB STEP is ended. |
KEEP | Keeps the file. |
Parameter 2
Specifies the processing method after the JOB STEP is abnormally ended (ABEND).
Field | Description |
---|---|
DELETE | Deletes the file after the JOB STEP is ended. |
KEEP | Keeps the file. |
Specifies the access mode to files by individual user when creating a Unix file specified by the PATH parameter. Creation of a file is executed by specifying PATHOPTS=OCREAT. Operates only when using the TSO OCOPY command.
Syntax
PATHMODE = {file-access-attribute} | {(file-access-attribute[,file-access-attribute]...)}
Field | Description |
---|---|
file-access-attribute | Specified by class type as follows:
|
Specifies the opening and status options for a Unix file specified by the PATH parameter. Operates only when using the TSO OCOPY command.
Syntax
PATHOPTS = {file-option} | {(file-option[,file-option]...)}
Field | Description |
---|---|
file-option | Specifies the opening and status options for the file as follows:
|
Specifies the record type and characteristics of a data set. OpenFrame supports only the following record types.
Syntax
RECFM={F[B][A|M]} {V[B|S|BS][A|M]} {L[A|M]} {U[A|M]}
Field | Description |
---|---|
A | ASA code-including record type. |
B | Block record type. |
F | Fixed-length record type. |
L | Line-level record type. This record type is a typical record type to save a text file in an open environment. Newly added to support a smooth integration of data after migration to OpenFrame. |
M | Machine-control characters-including record type. |
S | Span record type. |
V | Variable record type. |
U | Undefined-length record type. |
Note
If RECFM is specified as a parameter of the DCB operand, this operand is overridden and ignored.
Example
The following example specifies RECFM as FB.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),RECFM=FB,LRECL=80
References attributes of an earlier DD statement. The following attributes are copied: attributes related to DSORG, RECFM, KEYLEN, LRECL and BLKSIZE parameters.
Syntax
REFDD = {*.DD name} {*.STEP name.DD name} {*.STEP name.procedure STEP name.DD name}
Field | Description |
---|---|
*.DD name *.STEP name.DD name *.STEP name.procedure STEP name.DD name | "*[.STEP name[.procedure STEP name].DD name" is used for backward reference. This means that the data set name specified with a previous DD statement in the same JOB will be used. Each STEP name or each STEP name and procedure STEP name are specified, depending on whether the earlier DD statement is in the earlier JOB STEP or the earlier procedure STEP. |
Note
If no DD statement specified with a backward reference exist, the job ends in the FLUSH state.
Example
The following example uses REFDD to fetch the attributes of RECFM and LRECL from DD1.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),RECFM=FB,LRECL=80 //DD2 DD DSN=NEW2.DATASET,DISP=(NEW,CATLG),REFDD=*.DD1
Specifies the number of days to retain a data set. Valid only when creating a new data set.
Syntax
RETPD = nnnn
Field | Description |
---|---|
nnnn | Specifies the retention period for a data set. It is an unsigned integer between 0 and 9999. |
Note
If RETPD is specified with the LABEL operand, the RETPD operand is overridden and ignored.
OpenFrame does not support further modifications or a delete lock function before the expiration date of a data set. Only the automatic deletion of a expired data set is supported.
Example
The following example specifies the retention period for a data set as 30 days from the current date.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),RETPD=30
Specifies the space to allocate for a new data set to be created in the direct access volume.
Syntax
SPACE = ({TRK,}(initial value1[,additional value1][,directory1])[,RLSE] [,CONTIG][,ROUND]) {CYL,} [,] [,] [,MXIG] {block length,} [,ALX] {record length,} [,]
The following parameters are supported.
Parameter | Description |
---|---|
TRK | Indicates that the unit of initial and additional values is track. |
CYL | Indicates that the unit of the initial and additional values is cylinder. |
block length | Indicates that the unit of the initial and additional values is block. It is an unsigned integer between 0 and 65535. |
record length | Treated as the length of a record when the AVGREC operand is specified. It is an unsigned integer between 0 and 65535. |
initial value | Specifies the initial space to allocate for a data set. It is an unsigned integer between 0 and 16777215. |
additional value | Specifies an additional value if the space is not sufficient when creating a data set. Additional space allocation is allowed up to 15 times. In OpenFrame, you can specify the maximum count of additional allocation with the value of the NVSM_EXTENT_LIMIT in the DATASET_DEFAULT section under the ds subject in OpenFrame Configuration. For more information about the ds subject, refer to OpenFrame Configuration Guide. It is an unsigned integer between 0 and 16777215. |
directory | Specifies the space to allocate in the directory area when creating a partitioned data set (PDS). It is an unsigned integer between 0 and 16777215. A data set specified with this parameter is considered only as PDS. Not used for actual space allocation but only for syntax check in OpenFrame. |
The RLSE, CONTIG, MXIG, ALX and ROUND parameters which are not described in this table are not supported.
Note
The SPACE operand cannot be used along with the DDNAME, AMP, DLM, asterisk (*), or DATA operand since they are mutually exclusive.
When creating a VSAM data set, the SPACE operand cannot be used.
Examples
In the following example, 20 tracks are allocated for the data set 'DATA', which is newly created in the DD statement of JOB1. 5 tracks are additionally allocated whenever the space becomes insufficient. Unused space is released at CLOSE. RLSE is ignored in OpenFrame.
//JOB1 JOB // EXEC PGM=PROG1 //DS1 DD DSN=DATA,UNIT=8598, // VOL=SER=A11111, // SPACE=(TRK,(20,5),RLSE) //
In the following example, 20 directory blocks (256 bytes for each) are allocated for a directory by allocating consecutive 10 cylinders for the data set DATA, which is newly created in the DD statement of JOB2. The number of blocks (20) and the CONFIG parameter are ignored in OpenFrame. Based on the fact that the number of directory blocks is specified, a PDS is newly created.
//JOB2 JOB // EXEC PGM=PROG2 //DS2 DD DSN=DATA,UNIT=8598, // VOL=SER=B11111, // SPACE=(CYL,(10,,20),,CONTIG) //
Specifies an SMS storage class. When a storage class is specified, the corresponding class is queried among management classes specified in the sms subject under OpenFrame Configuration, and the described management settings are used.
For more information about the sms subject, refer to OpenFrame Configuration Guide.
Syntax
STORCLAS = class name
Field | Description |
---|---|
class | A symbolic name having between one and eight characters.. |
Note
An error may occur if the corresponding storage class is not configured in the sms subject under OpenFrame Configuration.
Example
The following example specifies the storage class as STOR01.
//DD1 DD DSN=NEW.DATASET,DISP=(NEW,CATLG),STORCLAS=STOR01
Uses symbolic parameters for in-stream data.
Syntax
SYMBOLS = {JCLONLY | EXECSYS | CNVTSYS}
Field | Description |
---|---|
JCLONLY | Causes in-stream data to use the symbolic parameters on EXPORT statement preceded by DD statement. The symbolic parameters are substituted with their values set on SET statement. |
EXECSYS | Not used in OpenFrame. Operates in the same way as JCLONLY. |
CNVTSYS | Not used in OpenFrame. Operates in the same way as JCLONLY. |
Example
The following example substitutes A1 with TMAX. B1 is set on the SET statement, but only A1 symbolic parameters are exported on the EXPORT statement. Therefore, only AI symbolic parameters are substituted in in-stream data.
//EX1 EXPORT SYMLIST=A1 //SET1 SET A1=TMAX,B1=SOFT //SORTIN DD *,SYMBOLS=JCLONLY 1000&A1 2000&B1 /*
Specifies the output attributes of a SYSOUT data set.
Syntax
SYSOUT = ([class][,program name][,template number]) [*]
Field | Description |
---|---|
class | Specifies an output class of a SYSOUT data set. Depending on the attributes of an output class, printing of a SYSOUT data set is performed or held off. For the SYSOUT data set output class settings, specify the key value as the class name in the OUTCLASS section under the tjes subject in OpenFrame Configuration. For more information, refer to OpenFrame Configuration Guide. |
asterisk (*) | Indicates that an output class of a SYSOUT data set is set identically with the system message class. The system message class is specified by using the MSGCLASS operand in the JOB statement. |
program name | Specifies a program name when a SYSOUT data set is printed by using an internal reader or external writer. INTRDR is specified when printing into an internal reader. |
template number | Specifies the template number of a page in which a SYSOUT data set is printed, with one to four symbolic characters except the period (.). |
Example
The following example specifies an output class, an external writer program name and an output place as 8, USERWTR, and GROUPA, respectively. The information is passed to an external printer module.
//OUT DD SYSOUT=(8,USERWTR),DEST=GROUPA
Specifies the I/O device to allocate a data set.
Syntax
UNIT = ([ddd] [,count][,DEFER]) [/ddd] [,P] [/dddd] [,] [device type] [device group] UNIT = AFF = DD name
Field | Description |
---|---|
/dddd | Specifies the device number. It is a hexadecimal number from 0000 through FFFF. |
device type | Specifies the device type. One of devices with the specified type is selected by the system. It is a combination of alphanumeric characters and hyphens (-) between one and eight characters. |
device group | Specifies the device group. It is a combination of alphanumeric characters and hyphen (-) between one and eight characters. |
OpenFrame supports only /dddd, device type and device group among the first fields of the first syntax.
Note
In the following cases where the system can identify the device information by itself, the UNIT operand may be omitted.
When the data set is cataloged
When the data set is passed in the previous STEP
When a previous DD statement or a cataloged data set is referenced through VOLUME=REF
OpenFrame does not allocate devices since it implements data sets upon a file system in the Unix system, not using any mainframe devices. However, the device information specified by this operand is saved in OpenFrame for the following purposes.
Separate processing per device type. The information is used to identify whether the device is a direct access or tape type.
Identification of the volume serial number. Once the device is specified and then the volume is confirmed, the information is used to get the volume serial number from the specified device.
Example
The following example creates a temporary data set in a volume whose serial number is VOL001 in the EXDD1 DD statement. One device among many '3390' type devices is requested.
//EXDD1 DD UNIT=3390,SPACE=(CYL,(1,1,1)), // VOL=SER=VOL001
The following example requests the system to create a temporary data set in a volume whose serial number is VOL001 in the EXDD DD statement. The UNIT operand requests the allocation of one device from a device group 'SYSDA'.
//EXDD DD UNIT=SYSDA,SPACE=(CYL,(1,1)),VOL=VOL001
Specifies the volume of a data set.
Syntax
{VOLUME | VOL} =([PRIVATE][,RETAIN][,volume sequence number][,count][,][SER=volume serial number] ) [,] [,] [SER=(volume serial number[,volume serial number]...)] [REF=[data set name]] [REF=*.DD name] [REF=*.STEP name.DD name] [REF=*.STEP name.procedure STEP name.DD name]
The following parameters are supported.
Field | Description |
---|---|
SER=volume serial number, SER=(volume serial number[,volume serial number]…) | Specifies the serial number of a volume in which a data set will be created or a data set exists. It is a string of one to six quoted characters. If only SER is specified with the VOLUME operand, the format of VOLUME=SER=(volume serial number,…) can be specified. If only one volume serial number is specified, parentheses can be omitted. Specified volume serial numbers must be previously defined by volmgr, a tool provided by OpenFrame. |
REF=data set name | Indicates that the volume used by a specified data set is used. A data set name specified with REF must not be the same as the generation data group (GDG) name and GDG relative number member name cannot be used. The specified data set must be previously cataloged. OpenFrame does not support reference with a DD statement's data set name that is just passed without being cataloged. |
REF=*.DD name REF=*.STEP name.DD name REF=*.STEP name.procedure STEP name.DD name | "*[.STEP name[.procedure STEP name].DD name" is for backward reference. This means that the volume specified with an earlier DD statement in the same JOB will be used. Each STEP name or each STEP name with procedure STEP name is specified, depending on whether the earlier DD statement is in the previous JOB STEP or the previous procedure STEP. If only REF is specified with the VOLUME operand, the format of VOLUME=REF=(backward reference,…) can be used. If no DD statement specified by a backward reference, the JOB ends in the FLUSH state. |
The PRIVATE, RETAIN, volume sequence number and count parameters, which are not described in this table, are not supported.
Example
The following example requests the use of an existing data set in the volume whose serial number is 'VOL001' in the EXDD01 DD statement.
//EXDD01 DD UNIT=848X,VOL=SER=VOL001, // DISP=(OLD,KEEP),DSN=TAPEDS1
The following example creates a data set 'FILE.AUTH' in the direct access volume containing a cataloged data set 'FILE.ORG'.
//DD1 DD DSN=FILE.AUTH,DISP=(,KEEP),VOL=REF=FILE.ORG, // SPACE=(CYL,(5,1))
The following example expands a data set 'FILE' defined in DD1, which is the DD statement in the previous JOB STEP. OpenFrame ignores the PRIVATE parameter and volume count 2.
//STEP1 EXEC PGM=BUILD //DD1 DD DSN=FILE,DISP=(OLD,KEEP),VOL=SER=111111, // UNIT=8598 //STEP2 EXEC PGM=EXPAND //DD2 DD DSN=FILE,DISP=(MOD,KEEP), // VOL=(PRIVATE,,,2,REF=*.STEP1.DD1)
This section describes DD statements using a special DD name. OpenFrame considers only the following DD statements as special DD statements.
Specifies a data set containing stdin data to be used by a program in the corresponding STEP. It is used between an EXEC statement and the next EXEC statement or at the end of JOB.
In the following example, the TMAXSOFT program receives data 'sysin data' through stdin.
//STEP1 PGM=TMAXSOFT //SYSIN DD * sysin data /*
In the following example, the TMAXSOFT program receives contents of a data set 'TMAXSOFT.DATA' through stdin.
//STEP1 PGM=TMAXSOFT //SYSIN DD DSN=TMAXSOFT.DATA,DISP=SHR
Both the SYSOUT DD and SYSPRINT DD statement specify a data set to contain stdout and stderr to be printed by a program in the corresponding STEP.
If both statements are used, the SYSOUT DD statement is used, and nothing is described for SYSPRINT. Utilities for integration with other products such as EZTPA00 may be used for a different purpose for SYSPRINT DD. Both statements are used between an EXEC statement and the next EXEC statement or the end of JOB.
For any information about how to use SYSPRINT DD in EZTPA00, refer to OpenFrame Utility Reference Guide.
In the following example, stdout and stderr from the program TMAXSOFT are written in a temporary file specified with SYSOUT DD.
//STEP1 PGM=TMAXSOFT //SYSOUT DD DSN=&&OUT,DISP=(NEW,PASS),VOLUME=100000
The following example shows that stdout and stderr from the program TMAXSOFT are written in SYSOUT DD when both SYSOUT DD and SYSPRINT DD are used.
//STEP1 PGM=TMAXSOFT //SYSOUT DD * //SYSPRINT DD *
Both the JOBLIB DD and STEPLIB DD statement are used to find a program to be executed in STEP.
JOBLIB DD
What is specified with JOBLIB DD is referenced to find programs that will be executed in all STEPs in JOB. The JOBLIB DD statement is used between a JOB statement and the first EXEC statement.
STEPLIB DD
What is specified with STEPLIB DD is referenced to find programs that will be executed in the corresponding STEP. The STEPLIB DD statement is used between an EXEC statement and the next EXEC statement or the end of JOB.
Even though JOBLIB DD is used, if STEPLIB DD is used in the same STEP, only STEPLIB DD is used in the STEP.
For more information about the order for finding a program, refer to "2.6.8. PGM".
The following example queries the TMAXSOFT program primarily from the TMAX.JOBLIB data set which is declared in JOBLIB DD.
//JOB1 JOB //JOBLIB DD DSN=TMAX.JOBLIB,DISP=SHR //STEP1 PGM=TMAXSOFT //SYSOUT DD *
The following example queries the TMAXSOFT program in STEP1 primarily from the TMAX.STEPLIB data set which is declared in STEPLIB DD, and not from the TMAX.JOBLIB data set even if failed to find the program. The TMAXSOFT program in STEP2 is queried from the TMAX.JOBLIB data set declared in JOBLIB DD.
//JOB1 JOB //JOBLIB DD DSN=TMAX.JOBLIB,DISP=SHR //STEP1 PGM=TMAXSOFT //STEPLIB DD DSN=TMAX.STEPLIB,DISP=SHR //SYSOUT DD * //STEP2 PGM=TMAXSOFT //SYSOUT DD *
Both the JOBCAT DD and STEPCAT DD statement specify a catalog in which a data set used in all STEPs is registered.
JOBCAT DD
Specifies a catalog in which a data set used in all STEPs in JOB is registered. The JOBCAT DD statement is used between a JOB statement and the first EXEC statement.
STEPCAT DD
Specifies a catalog in which a data set used in the corresponding STEP is registered. The STEPCAT DD statement is used between an EXEC statement and the next EXEC statement or at the end of JOB.
Even if JOBCAT DD is used, when STEPCAT DD is used in the same STEP, only STEPCAT DD is used in the STEP. JOBCAT DD is used only in STEP in which STEPCAT DD is not used.
If a desired data set is not found in a catalog specified with JOBCAT DD or STEPCAT DD, it is found in a master catalog.
The following example queries the TMAX.SYSIN data set primarily from the TMAX.JOBCAT catalog which is declared in JOBCAT DD.
//JOB1 JOB //JOBCAT DD DSN=TMAX.JOBCAT,DISP=SHR //STEP1 PGM=TMAXSOFT //SYSIN DD DSN=TMAX.SYSIN,DISP=SHR //SYSOUT DD *
The following example queries the TMAX.SYSIN data set in STEP1 primarily from the TMAX.STEPCAT catalog declared in STEPCAT DD, and not from the TMAX.JOBCAT catalog which is declared in JOBCAT DD. The TMAX.SYSIN data set in STEP2 is queried from the TMAX.JOBCAT catalog declared in JOBCAT DD.
//JOB1 JOB //JOBCAT DD DSN=TMAX.JOBCAT,DISP=SHR //STEP1 PGM=TMAXSOFT //STEPCAT DD DSN=TMAX.STEPCAT,DISP=SHR //SYSIN DD DSN=TMAX.SYSIN,DISP=SHR //SYSOUT DD * //STEP2 PGM=TMAXSOFT //SYSIN DD DSN=TMAX.SYSIN,DISP=SHR //SYSOUT DD *
Indicates the end of a program control statement following the CNTL statement. The CNTL, program control and ENDCNTL statements are syntax checked but not used in OpenFrame.
Syntax
//[label]△¹ENDCNTL△[comments]
Example
The following example uses the CNTL and ENDCNTL statements.
//STEP1 EXEC PGM=PRINT //ALPHA CNTL * PROGRAM CONTROL STATEMENT FOLLOWS //PRGCNTL PRINTDEV BUFNO=20,PIMSG=YES,DATACK=BLOCK //OMEGA ENDCNTL //AGAR DD UNIT=AFP1
Indicates the beginning of a STEP, and describes the STEP's attributes.
Syntax
//STEP name△¹EXEC△¹positional operand[,keyword operand]...△¹[comments]
Field | Description |
---|---|
STEP name | Specifies the STEP name from column 3 after "//." If omitted, an arbitrary name is specified. An arbitrary STEP name is generated incrementally from $S00000$, one by one. The STEP name must be unique within the JOB. If not unique, an unintended STEP may be referenced or no reference at all. The STEP name must be comprised of eight or less alphanumeric characters, obligatorily beginning with an alphabet. |
EXEC | Specifies the operation. Leave one or more empty spaces after the STEP name and then write 'EXEC. |
positional operand[,keyword operand] | Described one or more spaces after 'EXEC'. The positional operands are described before the keyword operands. Each operand is delimited by a comma (,). For more information, refer to Operand and the description of each operand section. |
[comments] | Used after operands followed by one or more empty spaces. Comments can be described up to column 71. If all operands are omitted, no comment can be described. |
Descriptions for each operand are as follows. For further details on each operand, refer to the respective operand section.
Positional operands
The positional operands in a STEP statement must be either PGM, PROC or procedure name. Even if the PGM and PROC operands have the format of keyword operands, they must be described before all other keyword operands as with positional operands.
Keyword operands
Operand | Description |
---|---|
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the conditions to determine whether to execute the STEP. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the parameters for the program to be executed in the STEP. | |
Specifies the performance group to which the STEP belongs during execution. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the value of the SYSTEM parameter. | |
Specifies the maximum amount of time that the STEP can use CPU. | |
Specifies the value of a symbolic parameter for a procedure executed in STEP. |
Syntax checked, but not used in OpenFrame.
Syntax
ADDRSPC[.procedure STEP name] = {VIRT} {REAL}
Syntax checked, but not used in OpenFrame.
Syntax
CCSID = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 65535. |
Specifies the conditions to determine whether to execute the STEP. When specified, the COND operand tests the return codes from previous STEPs, and determines whether to execute the STEP.
With multiple conditions specified for the COND operand, if only one of them is met, the COND is determined to be satisfied. A STEP name or procedure name must be one of those used in earlier STEPs. If not, the condition is determined not to have been satisfied.
Syntax
COND[.procedure STEP name]= ((code,operator[,STEP name[.procedure STEP name]]) ) ([,(code,operator[,STEP name[.procedure STEP name]])]...) ([,EVEN] ) ([,ONLY] ) COND=EVEN COND=ONLY
Field | Description |
---|---|
code | Specifies the condition code to be compared with the return code of JOB STEP. Composed of unsigned integers. |
operator | Specifies one of the following.
|
STEP name | Specifies the STEP name whose return code to be specifically compared with the condition. Composed of unsigned integers. |
procedure STEP name | Specifies the procedure STEP name along with the STEP name, when the STEP with the return code to compare is a STEP within a procedure. Composed of symbolic characters. |
EVEN, ONLY | Determines whether to execute the STEP in case of an abnormal termination. Specified at the end of the condition. A return code to cause an abnormal termination can be specified for individual programs in the PGM_NAME section of the rc subject in OpenFrame Configuration. When a previous STEP is abnormally terminated, the next STEP is generally not executed, but with EVEN or ONLY, it can be executed.
For more information about specifying EVEN and ONLY, see the description following this table. |
Whether to execute the current STEP is determined as follows:
COND operand | Status of previous STEPs | Whether to execute the current STEP |
---|---|---|
Unspecified | All STEPs normally terminated | Executed |
Unspecified | At least one STEP abnormally terminated | Not executed |
Only condition specified | All STEPs normally terminated | Not executed if at least one condition is met, or executed |
Only condition specified | At least one STEP abnormally terminated | Not executed |
Only EVEN specified | All STEPs normally terminated | Executed |
Only EVEN specified | At least one STEP abnormally terminated | Executed |
EVEN and condition specified | All STEPs normally terminated | Not executed if at least one condition is met, or executed |
EVEN and condition specified | At least one STEP abnormally terminated | Not executed if at least one condition is met, or executed |
Only ONLY specified | All STEPs normally terminated | Not executed |
Only ONLY specified | At least one STEP abnormally terminated | Executed |
ONLY and condition specified | All STEPs normally terminated | Not executed |
ONLY and condition specified | At least one STEP abnormally terminated | Not executed if at least one condition is met, or executed |
Note
There can be up to 8 conditions. The ninth or subsequent conditions are ignored. EVEN and ONLY are not counted into the number of conditions.
If only one condition is specified, the outermost parentheses can be omitted.
When the COND operand is used in both a JOB statement and an EXEC statement, if the condition of the JOB statement is met, the condition of the EXEC statement is not taken into account.
Values of the COND operand is not subject to syntax check.
Example
In the following example, STEP2 is not executed because the condition is met; 12 in STEP2 is greater than 4, the return code of STEP1.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC TMAXSOFT,COND=(12,GT)
In the following example, STEP2 is executed because neither conditions are met; 2 and 12 in STEP2 is less than and greater than 4, the return code of STEP1, respectively.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC TMAXSOFT,COND=((2,GT),(12,LT))
In the following example, STEP2 is not executed because neither conditions are met. But, ONLY is specified in STEP2; STEP1's return code is 4, ONLY is specified in STEP2, and STEP1 is normally terminated.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC TMAXSOFT,COND=((2,GT),(12,LT),ONLY)
In the following example, STEP2 is executed because neither conditions are met but ONLY is specified in STEP2; STEP1's return code is 4, ONLY is specified in STEP2, and STEP1 is abnormally terminated.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC ABEND,PARM=4 //STEP2 EXEC TMAXSOFT,COND=((2,GT),(12,LT),ONLY)
In the following example, STEP2 is unconditionally executed because STEP1's return code is 4 and EVEN is specified in STEP2.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC ABEND,PARM=4 //STEP2 EXEC TMAXSOFT,COND=EVEN
In the following example, STEP3 is not executed because STEP1's return code is met the condition in STEP3; STEP1's return code is 4 and STEP2's return code is 8, and they are compared with the condition in STEP3.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC RETURN,PARM=8 //STEP3 EXEC TMAXSOFT,COND=(4,EQ)
In the following example, STEP3 is executed because the condition is not met; STEP1's return code is 4 and STEP2's return code is 8, and STEP2's return code is not equal to 4.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC RETURN,PARM=8 //STEP3 EXEC TMAXSOFT,COND=(4,EQ,STEP2)
In the following example, STEP2 is not executed because the condition is met; the return code of PSTEP1, which is SETP1's procedure STEP, is 4, and this meets the condition in STEP2.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=RETURN,PARM=4 //PSTEP2 EXEC PGM=RETURN,PARM=8 // PEND //STEP1 EXEC TMAXPROC //STEP2 EXEC TMAXSOFT,COND=(4,EQ,STEP1.PSTEP1)
In the following example, PSTEP1 is not executed because the condition is met; STEP1's return code is 4, and PSTEP1 meets the condition in STEP2's procedure STEP. PSTEP2 is executed because the COND operand is not applied.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT //PSTEP2 EXEC PGM=TMAXSOFT // PEND //STEP1 EXEC RETURN,PARM=4 //STEP2 EXEC TMAXPROC,COND.PSTEP1=(4,EQ)
Syntax checked, but not used in OpenFrame.
Syntax
DYNAMNBR[.procedure STEP name] = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 3273. |
Syntax checked, but not used in OpenFrame.
Syntax
MEMLIMIT = {valueM|valueG|valueT|valueP} {NOLIMIT}
Field | Description |
---|---|
valueM | Specifies an unsigned integer between 0 and 99999. |
valueG | Specifies an unsigned integer between 0 and 99999. |
valueT | Specifies an unsigned integer between 0 and 99999. |
valueP | Specifies an unsigned integer between 0 and 16384. |
Specifies a parameter value to be passed to a program that will be executed in the STEP.
Syntax
PARM[.procedure STEP name] = parameter value PARM[.procedure STEP name] = (parameter value,parameter value) PARM[.procedure STEP name] = ('parameter value',parameter value) PARM[.procedure STEP name] = 'parameter value,parameter value'
Field | Description |
---|---|
parameter value | Specifies a parameter value to be passed to a program that will be executed in STEP. |
Example
The following example sends argv1 as a parameter of the PRINT program executed in STEP1.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC PRINT,PARM='argv1'
The following example sends argv1 and argv2 as parameters to PSTEP1, which is procedure STEP of STEP1, and PSTEP2, respectively.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=PRINT,PARM='argv2' //PSTEP2 EXEC PGM=PRINT,PARM='argv2' // PEND //STEP1 EXEC TMAXPROC,PARM.PSTEP1='argv1'
Specifies a program to be executed in the STEP with a name. All binaries that are executable in Unix can be specified. If a program is a shared object, it cannot be directly executed but can be executed through the PGMRTS00 utility. Whether to use the PGMRTS00 utility can be specified through the value of the USE_PGMRTS00 key of the PGM section under the tjclrun subject in OpenFrame Configuration.
For more information about PGMRTS00, refer to OpenFrame Utility Reference Guide.
For further details on the tjclrun subject's configuration items, refer to OpenFrame Configuration Guide.
If a program name is specified, the program is searched in the following order.
If STEPLIB DD is specified in STEP, the program is searched from members of a specified data set.
If STEPLIB DD is not specified in STEP, and JOBLIB DD is specified in JOB, the program is searched from members of a specified data set.
If the value of the BIN_PATH key in the SYSLIB section under the tjclrun subject in OpenFrame Configuration is specified, the program is searched from the directory specified in BIN_PATH.
If the value of the BIN_PATH key in the SYSLIB section under the tjclrun subject in OpenFrame Configuration is not specified, the program is searched from the directory specified in the environment variable PATH during the obmjinit server startup.
The following describes how to use the PGM operand.
Syntax
PGM = {program name}
Field | Description |
---|---|
program name | Specifies the name of a program to be executed in the STEP with special character lines. |
Note
Must be the first to be used before any other operands in the EXEC statement.
Example
The following example specifies the name of a program to be executed.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=TMAXSOFT
The following example specifies TMAXSOFT in PROD.BATCHLIB as the name of a program to be executed.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC PGM=TMAXSOFT //STEPLIB DD DSN=PROD.BATCHLIB,DISP=SHR
Specifies a procedure to be executed in the STEP with a name. Catalog procedures and input stream procedures can be specified.
A catalog procedure means a procedure that is saved as a member of a data set, and it can be executed in any JOB.
An input stream procedure refers to a procedure that is specified in an input stream, and it can be temporarily executed in JOB in input streams.
A procedure is searched in the following order.
The procedure is searched for in the input stream procedures.
If the JCLLIB statement is described, the procedure is searched for among the members specified in the JCLLIB statement.
If the PROCLIB={ddname} operand is specified in the JES2 JCL JOBPARM statement, the procedure is searched for among the members of the data sets specified with the value of the {ddname} key in the PROCLIB section under the tjes subject in OpenFrame Configuration.
The procedure is searched for among the members of the data sets specified with the value of the PROC00 key in the PROCLIB section under the tjes subject in OpenFrame Configuration.
The procedure is searched for among the members of SYS1.PROCLIB.
For more information about the tjes subject, refer to OpenFrame Configuration Guide.
The following describes how to use the PROC operand.
Syntax
{PROC = procedure name} {procedure name}
Field | Description |
---|---|
procedure name | Specifies the name of a procedure to be executed in the STEP with a symbolic name. |
Note
Must be the first to be used before any other operands in the EXEC statement.
Example
The following example executes the TMAXPROC procedure.
//JOB1 JOB CLASS=A,MSGCLASS=A //STEP1 EXEC TMAXPROC
The following example executes the TMAXPROC procedure of an input stream.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT // PEND //STEP1 EXEC TMAXPROC
This section explains procedure STEP names that can be used after operands. Keyword operands in STEP, in which a procedure is executed, override keyword operands in all STEPs in a procedure. To override a specific operand in STEP in a procedure, use a procedure STEP name along with an operand. The operand can be overridden only in the corresponding STEP.
Syntax
Operand[.procedure STEP name] = value
Field | Description |
---|---|
procedure STEP name | Specifies a procedure STEP, to which the corresponding operand is applied, with a symbolic name. |
Note
A procedure STEP name is valid only in a STEP in which the procedure is executed. The procedure STEP name is ignored if a program is executed in the STEP.
Example
The following example overrides the value of COND in all STEPs in the procedure with (8,EQ).
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT,COND=(0,EQ) //PSTEP2 EXEC PGM=TMAXSOFT,COND=(4,EQ) // PEND //STEP1 EXEC TMAXPROC,COND=(8,EQ)
The following example overrides the value of COND in PSTEP1, which is a procedure STEP, with (0,NE).
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT,COND=(0,EQ) //PSTEP2 EXEC PGM=TMAXSOFT,COND=(4,EQ) // PEND //STEP1 EXEC TMAXPROC,COND.PSTEP1=(0,NE)
The following example overrides the values of COND in PSTEP1 and PSTEP2, which are procedure STEPs, with (0,NE) and (4,NE), respectively.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC //PSTEP1 EXEC PGM=TMAXSOFT,COND=(0,EQ) //PSTEP2 EXEC PGM=TMAXSOFT,COND=(4,EQ) // PEND //STEP1 EXEC TMAXPROC,COND.PSTEP1=(0,NE),COND.PSTEP2=(4,NE)
Specifies a performance group in which the STEP is included during execution. In OpenFrame, the performance group's number is changed to the NICE values based on the performance group numbers specified in OpenFrame Configuration.
OpenFrame uses a performance group number by replacing it by Unix's NICE value. If the PERFORM operand is used, Runner changes a NICE value of a STEP program by replacing a performance group number with a NICE value.
If the PERFORM operand is used in a STEP statement, the PERFORM operand used in a JOB statement is ignored.
Syntax
PERFORM = performance group number
Field | Description |
---|---|
performance group number | Specifies a performance group number with an unsigned integer between 1 and 999. |
Note
To use the PERFORM operand instead of the NICE feature, set the VALUE of the USE_PERFORM key in the PERFORM section of the tjclrun subject in OpenFrame Configuration to YES. For more information, refer to OpenFrame Configuration Guide.
Since changing NICE values requires the superuser privileges, the setuid setting for Runner is also necessary. For further details on the setuid setting, refer to "Chapter 3. JOB Execution - 3.2.13. setuid root tjclrun" in OpenFrame TJES Guide.
Example
The following example specifies PERFORM in STEP1 as 10.
//JOB1 JOB PERFORM=100 //STEP1 EXEC PGM=TMAXSOFT,PERFORM=10
Syntax checked, but not used in OpenFrame.
Syntax
RD[.procedure STEP name] = {R | RNC | NR |NC}
Syntax checked, but not used in OpenFrame.
Syntax
REGION[.procedure STEP name] = {valueK | valueM}
Field | Description |
---|---|
valueK | Specifies an unsigned integer between 0 and 2096128. |
valueM | Specifies an unsigned integer between 0 and 2047. |
Syntax checked, but not used in OpenFrame.
Syntax
RLSTMOUT[.procedure STEP name] = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 9999. |
Specifies SYSTEM parameter values.
Syntax
SPARM = '[SYSTEM parameter]=[value]]'
Field | Description |
---|---|
SYSTEM parameter | Specifies a SYSTEM parameter. Currently, only DATE and TIME which are used to set JCL execution date and time are supported. |
value | The DATE parameter is specified in the format of the following.
The TIME parameter is specified in the format of HH:MM:SS. |
Example
The following example specifies the date and time as April 1, 2010 and 12:24:30 respectively in the DATE parameter.
//STEP1 EXEC PGM=IKJEFT01,SPARM='DATE=DATE=2010.04.01,TIME=12:24:30'
Specifies the maximum amount of time that the corresponding STEP can use the CPU.
Syntax
TIME[.procedure STEP name] = {([minutes],[seconds])} {1440 } {NOLIMIT } {MAXIMUM } {0 }
Field | Description |
---|---|
minutes | Specifies CPU usage time in minutes with an unsigned integer of between 0 and 357912. |
seconds | Specifies CPU usage time in seconds with an unsigned integer of between 0 and 59. |
1440 | Means an unlimited value. There is no limit for CPU usage time. |
NOLIMIT | Means an unlimited value. There is no limit for CPU usage time. |
0 | Means an unlimited value. There is no limit for CPU usage time. |
MAXIMUM | Means 357912 minutes. |
Note
If only minute is specified, the parentheses can be omitted.
If not specified, the default value is 0.
Since tjclrun checks CPU usage time every 5 seconds, there may be up to 5 seconds of error margin.
Example
The following example specifies TIME in STEP1 as 1 minute and 10 seconds.
//JOB1 JOB //STEP1 EXEC PGM=TMAXSOFT,TIME=(1,10)
The following example specifies TIME in STEP1 as unlimited time.
//JOB1 JOB //STEP1 EXEC PGM=TMAXSOFT,TIME=NOLIMIT
Specifies the value of a symbolic parameter for a procedure executed in STEP.
Symbolic parameters are used for procedures to be executed in STEP. They override values for the same symbolic parameters specified in a PROC statement in a procedure. They are used in a procedure with the format of '&symbolic parameter' and replaced by specified values when the procedure is executed.
Syntax
Symbolic parameter = [value]
Field | Description |
---|---|
value | Specifies a symbolic parameter value with quoted character lines. |
Note
While the '&symbolic parameter' format is used, if the corresponding symbolic parameter is not defined, the previous "&symbolic parameter" remains without being replaced.
Example
In the following example, the symbolic parameter A=step1 is specified, so that the values of PARM in PSETP1 and PSTEP2 become step1 and default respectively.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC A=default,B=default //PSTEP1 EXEC PGM=TMAXSOFT,PARM=&A //PSTEP2 EXEC PGM=TMAXSOFT,PARM=&B // PEND //STEP1 EXEC TMAXPROC,A=step1
In the following example, the symbolic parameter A=,B=step1 is specified, so that the values of PARM in PSETP1 and PSTEP2 become NULL and step1 respectively.
//JOB1 JOB CLASS=A,MSGCLASS=A //TMAXPROC PROC A=default,B=default //PSTEP1 EXEC PGM=TMAXSOFT,PARM=&A //PSTEP2 EXEC PGM=TMAXSOFT,PARM=&B // PEND //STEP1 EXEC TMAXPROC,A=,B=step1
Specifies a condition and describes JCL statements to be executed depending on the result of the condition.
Syntax
//[name]△¹IF△¹condition△¹THEN△¹[comments] . . To be executed when the condition is true . //[name]△¹ELSE△¹[comments] . . To be executed when the condition is false . //[name]△¹ENDIF△¹[comments]
Field | Description |
---|---|
name | Specifies a name from column 3 after "//." Can be omitted. |
IF | Specifies the operation IF. Write one or more empty spaces and then "IF" after a name. |
condition | Specifies a condition after "IF" followed by one or more empty spaces. For detailed information about conditions, see Conditions following this table.. |
THEN clause | Writes "THEN" after a condition followed by one or more empty spaces. |
[comments] | Used after "THEN" followed by one or more empty spaces. Comments can be entered up to column 71. |
ELSE clause | Writes "ELSE" after statements to be executed when a condition is true and before statements to be executed when the condition is false. The ELSE clause can be omitted. If it is omitted, no statement is executed when a condition is false. |
ENDIF clause | Indicates the end of an IF statement. SET and INCLUDE statements are executed regardless of an IF statement, even though they are written between "IF" and "ENDIF.", because they are executed during the syntax check. |
A description for conditions is as follows:
The following is an example of a condition. RC is keyword, and '<' is a comparison operator.
// IF RC < 4 THEN
If the return code of the previous STEP is less than 4, the condition is met. If it is greater than or equal to 4, the condition is not met. A condition can be enclosed with parentheses.
// IF (RC < 4) THEN
More detailed conditions can be used by using logical operators. In the following example, '|' and 'OR' are logical operators.
// IF (RC = 4 | RC EQ 8 OR RC = 12) THEN
Operator
There are two types of operators: comparison operators and logical operators. In the following table, AND,OR, and NOT are logical operators, and the others are comparison operators.
Operator | Meaning |
---|---|
GT or > | Greater than |
LT or < | Less than |
NG or ^> or ~> | Not greater than |
NL or ^< or ~< | Not less than |
EQ or = | Equal to |
NE or ^= or ~= | Not equal to |
GE or >= | Greater than or equal to |
LE or <= | Less than or equal to |
AND or & | And |
OR or | | Or |
NOT or ^ or ~ | Not |
The following example uses operators.
// IF RC = 4 THEN // IF RC EQ 4 THEN
The previous two conditions have the same meaning as follows:
"RC is equal to 4."
// IF (RC >= 4 & RC < 8) THEN // IF RC GE 4 AND RC LT 8 THEN
The previous two conditions have the same meaning as follows:
"RC is greater than or equal to 4 and less than 8."
// IF ~(RC > 4 & RC < 8) THEN // IF (RC <= 4 | RC >= 8) THEN
The previous two conditions have different meanings but the same result.
"It is not that RC is greater than 4 and less than 8." "RC is less than or equal to 4, or RC is greater than or equal to 8."
Keywords
There are the following three keywords.
RC
Indicates a return code of STEP. For example where a condition is (RC = 8), if a return code of STEP is 8, the condition is met. If any return code among all return codes of previously executed STEPs is 8, the condition is determined to have been met. If no STEP is executed, the condition is determined not to have been met.
Keyword | Description |
---|---|
STEP name.RC | Indicates a return code of the specified STEP. If the specified STEP is not executed, the condition is determined not to have been met. |
STEP name.procedure STEP name.RC | Indicates a return code of a procedure STEP in a specified STEP. If the procedure STEP in the specified STEP is not executed, the condition is determined not to have been met. |
ABEND
Indicates that there is an abnormally terminated STEP. Since ABEND itself is a condition, no operators are necessary.
// IF ABEND THEN
If any STEP is abnormally terminated from among all previously executed STEPs, the condition is determined to have been met.
Keyword | Description |
---|---|
STEP name.ABEND | If the specified STEP is abnormally terminated, the condition is determined to have been met. If the specified STEP is not executed, the condition is determined not to have been met. |
STEP name.procedure STEP name.ABEND | If the procedure STEP in specified STEP is abnormally terminated, the condition is determined not to have been met. If the procedure STEP in the specified STEP is not executed, the condition is determined not to have been met. |
If ~ or ^ is added before a condition, the result of the condition is reversed.
RUN
Indicates that STEP is executed. RUN cannot be used for all STEPs, and it must be used along with STEP name or STEP name.procedure STEP name.
Keyword | Description |
---|---|
STEP name.RUN | If the specified STEP is executed, the condition is determined to have been met. |
STEP name.procedure STEP name.RUN | If procedure STEP in specified STEP is executed, the condition is determined to been met. |
Since RUN itself is a condition, no operators are necessary.
// IF STEP1.RUN THEN
If ~ or ^ is added before a condition, the result of condition is reversed.
Includes a specified member in a JCL statement.
Syntax
//[name]△¹INCLUDE△¹MEMBER=name△[comments]
Field | Description |
---|---|
name | Specifies a name from column 3 after "//." Can be omitted. |
INCLUDE | Specifies the operation INCLUDE. Write one or more empty spaces and then "INCLUDE" after a name. If the name is omitted, the operation is used after "//" followed by one or more empty spaces. |
MEMBER=name | Specifies a member to be included in a JCL statement after "INCLUDE" followed by one or more empty spaces. A member is searched as follows:
|
[comments] | Used after "MEMBER=name" followed by one or more empty spaces. Comments can be described up to column 71. |
Example
The following example uses the INCLUDE statement and shows input JCL and member AAA.
//TESTJOB JOB CLASS=A // INCLUDE MEMBER=AAA //STEP1 EXEC PGM=TESTPGM //SYSOUT DD SYSOUT=* //
//JOBLIB DD DSN=PROD.PROCLIB1,DISP=SHR // DD DSN=PROD.PROCLIB2,DISP=SHR
The input JCL in the previous example is handled as follows:
//TESTJOB JOB CLASS=A //JOBLIB DD DSN=PROD.PROCLIB1,DISP=SHR // DD DSN=PROD.PROCLIB2,DISP=SHR //STEP1 EXEC PGM=TESTPGM //SYSOUT DD SYSOUT=* //
The following example searches for the member in the INCLUDE statement.
// JCLLIB ORDER=(INCLUDE.MEMBER1,INCLUDE.MEMBER2) // INCLUDE MEMBER=AAA
In the previous example, the member AAA is searched according to the order of INCLUDE.MEMBER1, INCLUDE.MEMBER2 and SYS1.PROCLIB.
//*JOBPARM PROCLIB=PROC00 // INCLUDE MEMBER=AAA
$ ofconfig list -s tjes -sec PROCLIB -k PROC00 =================================================================================== SUBJECT | SECTION | KEY | VALUE =================================================================================== tjes | PROCLIB | PROC00 |INCLUDE.MEMBER3:INCLUDE.MEMBER4 ===================================================================================
In the previous example, the member AAA is searched according to the order of INCLUDE.MEMBER3, INCLUDE.MEMBER4, from SYS1.PROCLIB.
Describes JCL commands. JCL commands are described between the JOB statement and the first EXEC statement. JCL command statements described in other places are not used. The success of a JCL command execution through a JCL command statement does not affect the JOB execution or submission.
Syntax
// Command△¹Operand
Field | Description |
---|---|
Command | Describes an operation after one or more blank spaces, following "//". For more information about supported commands, refer to Command. |
Operand | Describes the operand after one or more blank spaces, following an operation. Operands differ depending on the command type. |
The following describes commands that were mentioned previously. OpenFrame supports only the described functions.
Command | Description |
---|---|
Submits the entered procedure. |
Any other commands not explained are not supported.
Submits the entered procedure.
Syntax
// S procedure name,symbol parameter=value[,symbol parameter=value]...
Field | Description |
---|---|
procedure name | Specifies the name of a procedure to submit. |
symbol parameter | Refer to Symbolic Parameter of PROC Statement. |
Specifies the library that gets the procedures to be used in JCL or JCL statements, specified in an INCLUDE statement.
Syntax
//[name]△¹JCLLIB△¹ORDER=(library[,library]...)△[comments]
Field | Description |
---|---|
name | Specifies a name from column 3 after "//." Can be omitted. |
JCLLIB | Specifies the operation JCLLIB. Write one or more empty spaces and then "JCLLIB" after a name. If a name is omitted, it is used after "//" followed by one or more empty spaces. |
ORDER=(library[,library]…) | Specifies a library that gets JCL statements specified in a procedure or an INCLUDE statement after "JCLLIB" followed by one or more empty spaces. The library is specified with a PDS data set. A member is searched in the following order.
|
[comments] | Used after operands followed by one or more empty spaces. Comments can be described up to column 71. |
Example
The following example uses a JCLLIB statement.
//TESTJOB JOB CLASS=A //LIBRARY JCLLIB ORDER=PROD.PROCLIB1 //STEP1 EXEC PROC01 //SYSOUT DD SYSOUT=*
In the previous example, the procedure PROC01 is searched from PROC.PROCLIB1.
Indicates the start of a JOB and describes its attributes.
Syntax
//JOB name△¹JOB△¹positional operand[,keyword operand]...△¹[comments] //JOB name△¹JOB
Field | Description |
---|---|
JOB name | Specifies a symbolic name from column 3 after "//." Cannot be omitted. |
JOB | Specifies the operation JOB. Write one or more empty spaces and then "JOB" after the JOB name. |
positional operand[,keyword operand] | Specifies operands after "JOB" followed by one or more empty spaces. All positional operands must precede keyword operands. For further details, refer to Operand and the respective section of each operand. |
[comments] | Used after operands followed by one or more empty spaces. Comments can be described up to column 71. If all operands are omitted, comments cannot be used. |
The following describes the previously mentioned operands. For further details on each operand, refer to the respective section.
Positional operand
Except TIMECONTROLLER, any other positional operands are syntax checked, but not used in OpenFrame. However, if the second parameter (programmer name) is specified, they are added to the environment variables (PROGRAMMERNAME) to pass to a program such as the assembler.
Field | Description |
---|---|
Specifies the value to use TIME CONTROLLER. |
Keyword operands
Operand | Description |
---|---|
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the JOB CLASS. | |
Specifies the condition that determines whether the corresponding STEP will be executed by comparing the condition with the return code of JOB STEP. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies an output class of a data set that has system messages. In OpenFrame, it is used only to specify "SYSOUT=*" in a DD statement. | |
Specifies the output level of JOB's system messages. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a password. | |
Specifies a performance group in which JOB is included when executed. | |
Specifies a priority for JOB. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a STEP where a JOB terminated during execution restarts. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies SYSTEM parameter values. | |
Specifies the maximum amount of time that JOB can use the CPU. | |
Specifies a JOB processing type. | |
Specifies a user. |
Syntax checked, but not used in OpenFrame.
Syntax
BYTES = {value } {(value,CANCEL) } {(value,DUMP) } {(value,WORNING)}
Field | Description |
---|---|
value | Specifies an unsigned integer from 0 through 999999. |
Syntax checked, but not used in OpenFrame.
Syntax
CARDS = {value } {(value,CANCEL) } {(value,DUMP) } {(value,WORNING)}
Field | Description |
---|---|
value | Specifies an unsigned integer from 0 through 99999999. |
Syntax checked, but not used in OpenFrame.
Syntax
CCSID = value
Field | Description |
---|---|
value | Specifies an unsigned integer from 0 through 65535. |
Specifies the JOB CLASS. The CLASS specified in a JOB statement is related to scheduling the corresponding JOB. In TJES, Runner Slots are configured for each node, and CLASSes that can be executed by each Runner Slot are specified. If the Runner Slot for a submitted JOB's CLASS is empty, TJES scheduler executes the corresponding JOB. In TJES, the JOB that is configured for each CLASS and submitted, can be set to the states START or HOLD.
For example, if CLASS A and CLASS B are set to START and HOLD respectively, the JOB specified with the CLASS A enters in the START state after being submitted, and the other JOB specified with the CLASS B goes into the HOLD state after being submitted.
If JCLHOLD or HOLD is specified through a JOB statement's TYPRUN operand, the JOB goes into the HOLD state regardless of the setting for CLASS.
For more information about scheduling, refer to OpenFrame TJES Guide.
Configure the Runner Slot on the key in the INITDEF section of the tjes subject under OpenFrame Configuration. For more information, refer to OpenFrame Configuration Guide.
Configure the default attributes of individual classes in the JOBCLASS section of the tjes subject under OpenFrame Configuration. For more information, refer to OpenFrame Configuration Guide.
The following is a description of the CLASS operand.
Syntax
CLASS = job class
Field | Description |
---|---|
job class | Specifies a class to be used for JOB scheduling with one character between A and Z, or 0 and 9. |
Note
If the CLASS operand is omitted in a JOB statement, the CLASS parameter of the JOB is set to the value of the CLASS key in the JOB section from the tjclrun subject under OpenFrame Configuration. For more information about the tjes subject's configuration items, refer to OpenFrame Configuration Guide.
Example
The following example specifies the JOB CLASS as A.
//JOB1 JOB CLASS=A
Specifies the condition that determines whether the corresponding STEP will be executed by comparing the condition with the return code of JOB STEP.
If the COND operand is used, the specified code is compared with the return code of STEP, whenever each STEP is terminated. If the condition is met, JOB is terminated regardless of whether to execute a STEP. If multiple conditions are specified with the COND operand, the condition of COND is determined to have been met if any one of them is met.
OpenFrame has a feature which is similar to the COND operand. This feature checks the return code of STEP in the PGM_NAME, PGM_TYPE section of the rc section under OpenFrame Configuration and handles errors. Since return codes of programs that are executed during rehosting to Unix may be different from return codes in mainframe, the rc subject is used to identify more efficiently any errors occurring in STEP.
Since the settings of subjects in OpenFrame Configuration take precedence over the settings of the COND operand, if the STEP is processed as an error by the rc subject's settings, the next STEP is terminated without being executed even if the STEP is supposed to be subsequently executed by the COND condition.
For more information about the rc subject's configuration items, refer to OpenFrame Configuration Guide.
The following is a description of the COND operand.
Syntax
COND = ((code,operator),...)
Field | Description |
---|---|
code | Specifies a condition code to be compared with the return code of JOB STEP. It is an unsigned integer. |
operator | Specifies one of the following operators.
|
Note
The number of conditions can be up to 8. The ninth or later conditions are ignored. If only one condition is specified, the outermost parentheses can be omitted.
When the COND operand is used both in a JOB statement and an EXEC statement, if the condition of the JOB statement is met, the condition of the EXEC statement is not taken into account.
The COND operand's values are not syntax checked.
Example
The following specifies that JOB continues to be executed only when the return code is 0.
//JOB1 JOB COND=(0,NE)
The following specifies that JOB is terminated only when the return code is 4, 8, or 12.
//JOB1 JOB COND=((4,EQ),(8,EQ),(12,EQ))
The following specifies that JOB continues to be executed only when the return code is 0 through 12.
//JOB1 JOB COND=(12,LT)
The following specifies that JOB continues to be executed only when the return code is 4 through 12.
//JOB1 JOB COND=((4,GT),(12,LT))
Syntax checked, but not used in OpenFrame.
Syntax
GROUP = value
Field | Description |
---|---|
value | Specifies a symbolic name having one through eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
LINES = {value } {(value,CANCEL) } {(value,DUMP) } {(value,WARNING)}
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 999999. |
Syntax checked, but not used in OpenFrame.
Syntax
MEMLIMIT = {valueM|valueG|valueT|valueP} {NOLIMIT}
Field | Description |
---|---|
valueM | Specifies an unsigned integer between 0 and 99999. |
valueG | Specifies an unsigned integer between 0 and 99999. |
valueT | Specifies an unsigned integer between 0 and 99999. |
valueP | Specifies an unsigned integer between 0 and 16384. |
Specifies the value "*" when specifying SYSOUT=* in a DD statement within a JOB.
Syntax
MSGCLASS = class
Field | Description |
---|---|
class | Specifies an output class with one character between A and Z or 0 and 9. |
Note
If the MSGCLASS operand is omitted in a JOB statement, MSGCLASS is set to the value of the MSGCLASS key in the JOB section of the tjclrun subject under OpenFrame Configuration. For more information about the subject's configuration items, refer to OpenFrame Configuration Guide.
Example
The following specifies the MSGCLASS as Z.
//JOB1 JOB 8493,KIM,MSGCLASS=Z
Specifies the output level of JOB's system messages.
Syntax
MSGLEVEL = ([값][,{0}]) {1}
Field | Description |
---|---|
[{0} {1}] | Specifies the output level of system messages.
|
Note
If the MSGLEVEL operand is omitted in a JOB statement, MSGLEVEL is set to the value of the MSGLEVEL key in the JOB section of the tjclrun subject under OpenFrame Configuration. For more information about the subject's configuration items, refer to OpenFrame Configuration Guide.
Example
The following specifies MSGCLASS as Z and MSGLEVEL as 1,0.
//JOB1 JOB MSGCLASS=Z,MSGLEVEL=(1,0)
Syntax checked, but not used in OpenFrame.
Syntax
NOTIFY = {nodename.userid} {userid }
Field | Description |
---|---|
nodename | Specifies a symbolic name having between one and eight characters. |
userid | Specifies a symbolic name having between one and eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
PAGES = {value } {(value,CANCEL) } {(value,DUMP) } {(value,WARNING)}
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 99999999. |
Specifies a password. This operand is used along with the USER operand in a JOB statement. Therefore, without the USER operand, this operand is ignored. When the USER operand is specified without this operand, the system determines that TACF surrogate user is used.
For more information about the TACF surrogate user, refer to "3.1.13 Security" in OpenFrame TJES Guide.
The following describes the PASSWORD operand.
Syntax
PASSWORD = password
Field | Description |
---|---|
password | Specifies a password for a user of TACF, which is the security module of OpenFrame. It has between one and eight alphanumeric characters. |
Example
The following example specifies USER and PASSWORD as KIM and tmaxsoft, respectively.
//JOB1 JOB USER=KIM,PASSWORD=tmaxsoft
The following example specifies USER as KIM, but does not set PASSWORD. Therefore, the TACF surrogate user is used.
//JOB1 JOB USER=KIM
Specifies a performance group in which JOB is included during execution. OpenFrame uses NICE values according to the performance group numbers specified in OpenFrame Configuration.
OpenFrame uses a performance group number by replacing it with UNIX's NICE value. If the PERFORM operand is used, Runner changes a NICE value in a STEP program by replacing a performance group number with a NICE value.
If PERFORM is specified both in a JOB statement and a STEP statement, PERFORM specified in the corresponding STEP is applied in the STEP, and PERFORM specified in the JOB statement is applied in other STEPs.
Syntax
PERFORM = performance group number
Field | Description |
---|---|
performance group number | Specifies a performance group number with an unsigned integer of between 1 and 999. |
Note
To use the NICE feature instead of the PERFORM operand, set the VALUE of the USE_PERFORM key in the PERFORM section of the tjclrun subject under OpenFrame Configuration. For more information about the tjclrun subject, refer to OpenFrame Configuration Guide.
Since changing NICE values requires superuser privileges, you need to set setuid for Runner. For information, refer to 'setuid root tjclrun' in "Chapter 3. JOB Execution" of OpenFrame TJES Guide.
Example
The following example specifies PERFORM as 100.
//JOB1 JOB PERFORM=100
Specifies a priority for JOB. The priority is used for scheduling along with JOB CLASS, with higher numbers having higher priority.
Scheduler decides the order of execution for JOBs that have the same CLASS, depending on the value of the PRTY operand. If multiple JOBs have the same priority, the JOB that is submitted first is executed first. The priority of a JOB is elevated over time according to the aging policy. For information about the processing of priorities, refer to the VALUE of the PRTYHIGH and PRTYLOW keys in the SCHEDULING section of the tjes subject under OpenFrame Configuration.
For more information about the tjes subject, refer to OpenFrame Configuration Guide.
Syntax
PRTY = priority
Field | Description |
---|---|
priority | Specifies the priority of JOB with an unsigned integer between 1 and 15. |
Note
To use this operand, set the VALUE of the PRTYJOB key in the SCHEDULING section of the tjes subject under OpenFrame Configuration to YES.
Example
The following example specifies PRTY as 5.
//JOB1 JOB PRTY=5
Syntax checked, but not used in OpenFrame.
Syntax
REGION = {valueK | valueM}
Field | Description |
---|---|
valueK | Specifies an unsigned integer between 0 and 2096128. |
valueM | Specifies an unsigned integer between 0 and 2047. |
Specifies the STEP where the JOB terminated during execution restarts. If this operand is used, the terminated JOB restarts in the specified STEP. If there are multiple STEPs that have the specified name, JOB restarts in the first STEP with the specified name. If a non-existent STEP is specified, FLUSH occurs.
Syntax
RESTART = {*} {STEP name } {stepname.procstepname}
Field | Description |
---|---|
asterisk(*) | Specifies the restarting STEP as the first STEP. |
STEP name | Specifies the restarting STEP name with a symbolic name having up to eight characters. |
stepname.procstepname | Specifies the procedure STEP name and another STEP name within the restarting procedure. (Refer to the following example) |
Example
The following example specifies RESTART as an asterisk (*).
//JOB1 JOB RESTART=*
The following example specifies RESTART as STEP3.
//JOB1 JOB RESTART=STEP3
The following example specifies the STEP name within the procedure along with the procedure STEP name.
//JOB1 JOB RESTART=(STEP3.PSTEP4)
Syntax checked, but not used in OpenFrame.
Syntax
SECLABEL = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
SCHENV = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to 16 characters. |
Specifies the SYSTEM parameter values.
Syntax
SPARM = '[SYSTEM parameter]=[value]]'
Field | Description |
---|---|
SYSTEM parameter | Specifies a SYSTEM parameter. Currently, only DATE and TIME, which are used to set JCL execution date and time, are supported. |
value | The DATE parameter is specified in the following formats
The TIME parameter is specified in the format of HH:MM:SS. |
Example
The following example specifies the date and time as April 1, 2010 and 12:24:30 respectively in the DATE parameter of SPARM.
//JOB1 JOB CLASS=A,MSGCLASS=X,SPARM='DATE=2010.04.01,TIME=12:24:30'
Specifies the maximum CPU usage time for a JOB. When exceeding the specified CPU usage time, the JOB is terminated in FLUSH.
Syntax
TIME = {([minutes],[seconds])} {1440 } {NOLIMIT } {MAXIMUM } {0 }
Field | Description |
---|---|
minutes | Specifies the CPU usage time in minutes with an unsigned integer between 0 and 357912. |
seconds | Specifies the CPU usage time in seconds with an unsigned integer between 0 and 59 |
1440 | Indicates an unlimited value. No limit on the CPU usage time. |
NOLIMIT | Indicates an unlimited value as with 1440. No limit on the CPU usage time. |
0 | Indicates an unlimited value as with 1440. No limit on the CPU usage time. |
MAXIMUM | Indicates 357912 minutes. |
Note
Parentheses may be omitted when specifying only minutes.
If not specified, use the VALUE of the TIME key in the JOB section of the tjclrun subject under OpenFrame Configuration. If no value specified, 0 is the default value. For more information about the tjclrun subject, refer to OpenFrame Configuration Guide.
There may be up to 5 seconds of deviation since tjclrun checks the CPU usage time every 5 seconds.
If TIME=1440 is specified on JOB statement, all TIME values and basic TIME values on EXEC statement are invalidated. All steps in the job will have no CPU time limit, such as specifying TIME=1440 or TIME=NOLIMIT.
Example
The following example specifies TIME in JOB1 as 10 seconds.
//JOB1 JOB CLASS=A,MSGCLASS=A,TIME=(,10) //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
The following example specifies TIME in JOB1 as 2 minutes.
//JOB1 JOB CLASS=A,MSGCLASS=A,TIME=2 //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
The following example specifies TIME in JOB1 as MAXIMUM.
//JOB1 JOB CLASS=A,MSGCLASS=A,TIME=MAXIMUM //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
Specifies the date or time values used to run a job.
Syntax
//{xxcyyddd} {xxdhhmm} {xxYDnn}
Field | Description |
---|---|
xx | Two-character prefix to use TIME CONTROLLER. |
c | Century indicator. 0 represents 20th century and 1 indicates 21st century. |
yy | Two-digit year without indicating century. Valid values are 00 through 99. |
ddd | Three-digit Julian day. Valid values are 001 through 366. |
d | Time and minutes to offset the current date.
|
hh | Actual hour. Valid values are 00 through 23. |
mm | Actual minute. Valid values are 00 through 59. |
Y | Required literal to specify year offset. |
D | Year to offset the current time.
|
nn | Number of years to offset the current date. |
Note
The VALUE of the TIME_CONTROLLER_PREFIX key in the OPTION section of the tjclrun subject under OpenFrame Configuration must be set to YES. If NO or no value specified, it is not available.
The VALUE of the key in the OPTION section of the tjclrun subject under OpenFrame Configuration must have a two-character prefix.
For more information about the tjclrun subject, refer to OpenFrame Configuration Guide.
Examples
The following example specifies the year as 2030.
//JOB1 JOB 000000000,'//TCP10' //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
The following example specifies the date as 20201231.
//JOB1 JOB 000000000,'//TC120365' //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
The following example specifies the system time plus 1 hour.
//JOB1 JOB 000000000,'//TCP0100' //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
Specifies a JOB processing type. OpenFrame supports only HOLD, JCLHOLD, JEM, and SCAN.
JCL is submitted in the following order.
JCL is entered.
The entered JCL is parsed to be syntax checked.
The following are checked for the basic syntax, the locations of JOB control statements, keywords for each control statement, values for the keywords, and continued specifications.
Procedures used by the entered JCL are copied to SPOOL and converted to be syntax checked.
Scheduling is handled.
The following is a description for the TYPRUN opeand.
Syntax
TYPRUN = {COPY} {HOLD} {JCLHOLD} {JEM} {SCAN}
Field | Description |
---|---|
COPY | Syntax checked, but not used in OpenFrame. |
HOLD | JCL is parsed and converted, but not scheduled. It is set to the HOLD state. It can be checked with the PS or PSJOB command in TJESMGR. To schedule the JCL, use the START command in TJESMGR. |
JCLHOLD | JCL is only parsed. It is set to the JCLHOLD state. JOB can be checked if it is in the W[HOLD] state by using the TJESMGR PS or PSJOB commands in the [Batch] menu of OpenFrame Manager. To convert and schedule the JCL, use the START command of TJESMGR. |
JEM | Checks for existence of programs, datasets, and dataset catalog defined in the JCL, and then writes any logical errors to SYSMSG. If there is no error, it ends with Done (M00000). If there is an error, it ends with Done (M00001). This is used to check for logical errors in the JCL without executing the JOB. The JOB specified as the operand is scheduled and processed by the runner. |
SCAN | JCL is parsed and converted, but not scheduled. The result report is recorded in SYSMSG, and then JCL is terminated and set to DONE state (D00000). This operand is used only to check if the JOB can be submitted and to specify not to schedule the JCL. |
Note
If the TYPRUN operand is not used, JCL is processed for submission and scheduled.
Examples
The following example specifies TYPRUN as SCAN.
//JOB1 JOB CLASS=A,MSGCLASS=A,TYPRUN=SCAN //STEP1 EXEC PGM=IEFBR14 //SYSOUT DD SYSOUT=* //
The following is the result recorded in SYSMSG.
------------------------------------------------------------------------------ ** JCL SCAN start ** ------------------------------------------------------------------------------ 1 //JOB1 JOB CLASS=A,MSGCLASS=A,TYPRUN=SCAN 2 //STEP1 PGM=IEFBR14 3 //SYSOUT DD SYSOUT=* // ------------------------------------------------------------------------------ ** JCL SCAN finish ** ------------------------------------------------------------------------------
The following example of running TYPRUN as SCAN returns a JCL parsing error.
//JOB1 JOB CLASS=A,MSGCLASS=A,TYPRUN=SCAN //STEP1 EXEC PGM=IEFBR14, this comma is wrong. //SYSOUT DD SYSOUT=* //
The following is the result recorded in SYSMSG.
1 //JOB1 JOB CLASS=A,MSGCLASS=A,TYPRUN=SCAN 2 //STEP1 EXEC PGM=IEFBR14, this comma is wrong. 3 //SYSOUT DD SYSOUT=* // Syntax Error [Line:2;Column: ;Keyword: ;Message:Expected continuation not received]
The following example of running TYPRUN as JEM returns JCL parsing errors. The IEFBR141 program specified in STEP01 and DD02 set as SHR in STEP02 do not exist.
//JEMTEST JOB TYPRUN=JEM //STEP01 EXEC PGM=IEFBR141 //DD01 DD DSN=TMAX.JEM.DATASET,DISP=(MOD,DELETE) //STEP02 EXEC PGM=IEFBR14 //DD02 DD DSN=TMAX.JEM.DATASET,DISP=SHR //STEP03 EXEC PGM=IEFBR14 //DD03 DD DSN=TMAX.JEM.DATASET,DISP=MOD
The following is the result recorded in SYSMSG.
JOBID=JOB00028 JOBPOS=0 RUNPID=8998 JEMTEST JEM (test) ============================================================================== ---------------------------- STEP01 EXEC PGM step ---------------------------- EXEC PGM=IEFBR141 (JEM mode) (JRN0143F) no program file(IEFBR141) exist - check JCL JOBLIB, JCL STEPLIB, and environment PATH ---------------------------- STEP02 EXEC PGM step ---------------------------- EXEC PGM=IEFBR14 (JEM mode) (JRN2008E) [OLDDD02] Dataset 'TMAX.JEM.DATASET' does not exists. ---------------------------- STEP03 EXEC PGM step ---------------------------- EXEC PGM=IEFBR14 (JEM mode) ============================================================================== (JRN2010I) JEM RUN skip enqueue for output processing ok (JRN2017I) JEM RUN total error count : 2 ---------------------------- JEM PROCESS FINISHED ----------------------------
Specifies a user. It is used along with the PASSWORD operand to authenticate a TACF user and to check resource permissions.
If JCL is submitted, the system checks a TACF user. If the USER operand is used, the authentication (execution user) is checked by comparing the password specified with the PASSWORD operand. If the USER operand is not used, the authentication (SUBMIT user) is checked with the USER who submitted the JCL.
If the USER operand is used, and the PASSWORD operand is not used, the authentication (surrogate user) is checked by using the TACF surrogate user.
In Runner, permission is checked against the authenticated execution user, SUBMIT user, or surrogate user. The Resources for which the permissions need to be checked are all data sets and programs used in JOB. If a user wants to check the permissions for a specific resource, the resource must be registered in TACF. If the resource is a data set, it must be registered in DATASET CLASS. If the resource is a program, it must be registered in UTILITY CLASS.
For more information about the TACF surrogate user, refer to "3.1.13 Security" in OpenFrame TJES Guide.
The following is a description of the USER operand.
Syntax
USER = user
Field | Description |
---|---|
user | Specifies a TACF user. TACF is OpenFrame's security module. It is a symbolic name of between one and eight symbolic characters. |
Note
The option to check the permissions on DATASET and UTILITY can be set to the VALUE of the CHECK_DSAUTH and CHECK_UTAUTH keys in the TACF section of the tjclrun subject under OpenFrame Configuration. For more information about the subject, refer to OpenFrame Configuration Guide.
Examples
The following example specifies USER and PASSWORD as KIM and tmaxsoft, respectively.
//JOB1 JOB USER=KIM,PASSWORD=tmaxsoft
The following example specifies USER as KIM, but does not set PASSWORD. Therefore, the TACF surrogate user is used.
//JOB1 JOB USER=KIM
An OUTPUT statement specifies attributes of a SYSOUT data set for output processing.
Syntax
//name OUTPUT△¹keyword operand[,keyword operand]...△¹[comments]
Field | Description |
---|---|
name | Specifies a name from column 3 after "//." It cannot be omitted and is used when the corresponding OUTPUT statement is referenced in a DD statement when using the OUTPUT operand. |
OUTPUT | Specifies the OUTPUT operation. Write one or more empty spaces and then "OUTPUT" after an OUTPUT name. |
keyword operand[,keyword operand] | Specifies keyword operands after "OUTPUT" followed by one or more empty spaces. The order of the keyword operands does not matter. Refer to Operand for descriptions of each operand. |
[comments] | Used after operands followed by one or more empty spaces. Comments can be described up to column 71. |
The following are descriptions of each operand. For more information about each operand, refer to the respective section.
Keyword Operand
Operand | Description |
---|---|
Specifies the address to which a SYSOUT data set is passed. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the name of a building associated with a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a table to set the output character set and size of data sets to be printed. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the output class of a SYSOUT data set. Used only when no class is specified to the SYSOUT parameter in a DD statement. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a copy count of a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the ID of a department associated with an output data set. | |
Specifies a print destination of a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies an FCB name. | |
Specifies the film OVERLAY identification name when a certain template and range is printed on a paper in advance. | |
Specifies a member of FORMDEF. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a template number of a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies one or more email addresses of blind carbon copy (BCC) recipients. | |
Specifies one or more email addresses of carbon copy (CC) recipients. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the name or other identifiers of the sender of an email. | |
Specifies one or more email addresses of recipients. | |
Specifies a copy-modification module name for a SYSOUT data set and the number order for a table specified with the CHARS operand. | |
Specifies a name associated with a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies output dispositions for a SYSOUT data set. | |
Specifies the name of the back overlay of a page to print. | |
Specifies the name of the front overlay of a page to print. | |
Syntax checked, but not used in OpenFrame. | |
Specifies a member of PAGEDEF. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies an email address to which recipients can reply. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the time during which a successfully received data set is retained. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the room ID to a page-delimiter for printing a SYSOUT data set. | |
Syntax checked, but not used in OpenFrame. | |
Syntax checked, but not used in OpenFrame. | |
Specifies the output title to be printed on a page-delimiter for printing a SYSOUT data set. | |
Specifies whether to include the table reference code (TRC) in the logical record for each output row of a SYSOUT data set. | |
Specifies the universal character set. | |
Specifies the user-defined data. | |
Specifies the name for a USERLIB data set. | |
Syntax checked, but not used in OpenFrame. | |
Specifies an external printing module. |
Specifies an address to which a SYSOUT data set is passed.
Syntax
ADDRESS = (address value[,address value]...)
Field | Description |
---|---|
address value | Specifies an address to which the output is sent, in a text string. The maximum length of an address is 60 bytes long and up to ten addresses can be included. |
Note
To send the ADDRESS information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies addresses to send a SYSOUT data set as '1234 Main Street' and 'ABCD'.
//OUT1 OUTPUT ADDRESS=('1234 Main Street','ABCD') //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Specifies the name of a building associated with a SYSOUT data set.
Syntax
BUILDING = value
Field | Description |
---|---|
BUILDING name | Specifies the name of a building associated with the output, in a text string. The maximum length of the value is 60 bytes. |
Note
To send the BUILDING information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the name of a building associated with a SYSOUT data set as 'ABC Tower'.
//OUT1 OUTPUT BUILDING='ABC Tower' //OUT DD SYSOUT=G,OUTPUT=*.OUT1
Specifies a table to set the output character set and size of data sets to be printed.
Syntax
CHARS = (table name[,table name]...)
Field | Description |
---|---|
table name | Specifies the name of a table to set the output character set and size for printing a data set, in a text string composed of one to four alphanumeric characters. Up to four table names can be specified. If there is only one table to specify, parentheses are not needed. |
Note
To send the CHARS information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a table to set the output character set and size of a data set as TBL1 and TBL2.
//OUT1 OUTPUT CHARS=(TBL1,TBL2) //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame
Syntax
CKPTLINE = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 32767. |
Syntax checked, but not used in OpenFrame
Syntax
CKPTPAGE = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 32767. |
Syntax checked, but not used in OpenFrame
Syntax
CKPTSEC = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 32767. |
Specifies the output class of a SYSOUT data set. It is applied only when no class is specified to the SYSOUT parameter in a DD statement.
Syntax
CLASS = output class
Field | Description |
---|---|
output class | Specifies a single character between A and Z or 0 and 9. |
Note
If the class is specified to the SYSOUT parameter in a DD statement, that class is primarily applied. The CLASS operand is applied only when no class is specified.
Example
The following example specifies the output class of a SYSOUT data set as B.
//OUT1 OUTPUT CLASS=B //OUT DD SYSOUT=*,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
COLORMAP = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
COMPACT = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
COMSETUP = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
CONTROL = {PROGRAM | SINGLE | DOUBLE | TRIPLE}
Specifies a copy count of a SYSOUT data set.
Syntax
COPIES= ([copy count][,group copy count...])
Field | Description |
---|---|
copy count | Specifies the copy count of a SYSOUT data set as an unsigned integer between 1 and 255. When specifying the copy count alone, parentheses can be omitted. (Default value: 1) |
group copy count | Specifies the group copy count by page of a SYSOUT data set as an unsigned integer between 1 and 255. Up to eight group copy counts can be specified. |
Note
To send the COPIES information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a copy count of a SYSOUT data set as 10.
//OUT1 OUTPUT COPIES=10 //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
DATACK = {BLOCK | UNBLOCK | BLKCHAR | BLKPOS}
Specifies the ID of a department associated with an output data set.
Syntax
DEPT = department ID
Field | Description |
---|---|
department ID | Specifies the ID of a department associated with an output data, in a text string of up to 60 bytes. |
Note
To send the DEPT information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the ID of a department associated with an SYSOUT data set as 'FINANCE'.
//OUT1 OUTPUT DEPT='FINANCE' //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies a print destination of a SYSOUT data set.
Syntax
DEST = print destination
Field | Description |
---|---|
print destination | Specifies a print destination of a SYSOUT data set. |
Note
To send the DEST information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a print destination of a SYSOUT data set as BCCOMP.
//OUT1 OUTPUT DEST=BCCOMP //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
DUPLEX = {NO | N | NORMAL | TUMBLE}
Specifies an FCB name.
Syntax
FCB = FCB name
Field | Destination |
---|---|
FCB name | Specifies an FCB name with one to four symbolic characters. |
Note
To send the FCB information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies an FCB name as AA33.
//OUT1 OUTPUT FCB=AA33 //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies the film OVERLAY identification name when a certain template and range is printed on a paper in advance.
Syntax
FLASH = film identification name (film identification name[(,number of copies)])
Field | Description |
---|---|
film identification name | Specifies the film OVERLAY identification name with one to four symbolic characters. |
number of copies | Specifies the number of copies with an unsigned integer between 1 and 255. (Default value: 0) |
Note
To send the FLASH information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a film OVERLAY identification name as FLM1.
//OUT1 OUTPUT FLASH=FLM1 //OUT DD SYSOUT=A,SYSOUT=*.OUT1
Specifies a member of FORMDEF.
Syntax
FORMDEF = member
Field | Description |
---|---|
member | Specifies the name of a FORMDEF member with one to six symbolic characters. However, the period (.) cannot be used. |
Note
To send the FORMDEF information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a FORMDEF member as JJPRT.
//OUT1 OUTPUT FORMDEF=JJPRT //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Specifies a template number of a SYSOUT data set.
Syntax
FORMS = Template number
Field | Description |
---|---|
template number | Specifies a template number of a SYSOUT data set with one to eight symbolic characters. However, the period (.) cannot be used. |
Note
To send the FORMS information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a template number of a SYSOUT data set as 5.
//OUT1 OUTPUT FLASH=FLM1,FORMS=5 //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
GROUPID = value
Field | Description |
---|---|
value | Specifies a symbolic name with one to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
INDEX = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 31. |
Syntax checked, but not used in OpenFrame.
Syntax
INTRAY = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 255. |
Syntax checked, but not used in OpenFrame.
Syntax
LINDEX = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 31. |
Syntax checked, but not used in OpenFrame.
Syntax
LINECT = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 255. |
Specifies one or more email addresses of blind carbon copy (BCC) recipients.
Syntax
MAILBCC = (email address[,email address]...)
Field | Description |
---|---|
email address | Specifies email addresses to receive an output as blind carbon copy. The maximum length of an address is 60 bytes long and up to ten addresses can be included. |
Note
To send the MAILBCC information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies email addresses for blind carbon copying a SYSOUT data set output.
//OUT1 OUTPUT MAILBCC=('michael@companya.com','jane@companyb.net') //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies one or more email addresses of carbon copy (CC) recipients.
Syntax
MAILCC = (email address[[,email address[]...)
Field | Description |
---|---|
email address[ | Specifies email addresses to receive an output as carbon copy. The maximum length of an address is 60 bytes long and up to ten addresses can be included. |
Note
To send the MAILCC information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies email addresses for carbon copying a SYSOUT data set output.
//OUT1 OUTPUT MAILCC='robert@companyc.com' //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies the name or other identifiers of the sender of an email.
Syntax
MAILFROM = value
Field | Description |
---|---|
value | Specifies the name or other identifiers of the sender of an email, in a text string of up to 60 bytes. |
Note
To send the MAILFROM information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the identifier of the sender of an email as 'Young R. Sender'.
//OUT1 OUTPUT MAILFROM='Young R. Sender' //OUT DD SYSOUT=K,OUTPUT=*.OUT1
Specifies one or more email addresses of recipients.
Syntax
MAILTO = (email address[,email address]...)
Field | Description |
---|---|
email address | Specifies email addresses to receive an output copy. The maximum length of an address is 60 bytes, and up to ten addresses can be included. |
Note
To send the MAILTO information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies an email address to receive a SYSOUT data set output.
//OUT1 OUTPUT MAILTO='hong@companyd.com' //OUT DD SYSOUT=T,OUTPUT=*.OUT1
Specifies a copy-modification module name for a SYSOUT data set and the number order for a table specified with the CHARS operand.
Syntax
MODIFY = module name ([module name][,table number])
Field | Description |
---|---|
module name | Specifies a copy-modification name for a SYSOUT data set, with one to four symbolic characters. |
table number | Specifies the order for a table specified with the CHARS operand, with an unsigned integer between 0 and 3. |
Note
To send the MODIFY information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a copy-modification module name as EDIT and TBL2 among tables specified as the CHARS operand.
//OUT1 OUTPUT COPIES=(3,3),CHARS=(TBL1,TBL2),MODIFY=(EDIT,1) //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies a name associated with a SYSOUT data set.
Syntax
NAME = name
Field | Description |
---|---|
name | Specifies a name associated with a SYSOUT data set, in a text string of up to 60 bytes. |
Note
To send the NAME information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a name associated with a SYSOUT data set.
//OUT1 OUTPUT NAME='K. Smith' //OUT DD SYSOUT=D,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
NOTIFY = {nodename.userid} {userid } {([node1.]userid1,[node2.]userid2,...)}
Field | Description |
---|---|
nodename | Specifies a symbolic name having up to eight characters. |
userid | Specifies a symbolic name having up to eight characters. |
Syntax checked, but not used in OpenFrame.
Syntax
OUTBIN = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 1 and 65535. |
Specifies output dispositions for a SYSOUT data set.
Syntax
OUTDISP = ([WRITE][,WRITE]) [HOLD] [,HOLD]) [KEEP] [,KEEP]) [LEAVE][,LEAVE]) [PURGE][,PURGE]) [,]
Parameters 1
Specifies how to dispose new OUTPUT that is created as a SYSOUT data set, when the JOB is normally terminated (not ABEND).
Field | Description |
---|---|
WRITE | Indicates that OUTPUT must be schedule-printed. After a printer solution is called, OUTPUT is removed. |
HOLD | Waits until the user releases OUTPUT. |
KEEP | Same as WRITE. However, OUTPUT is not removed after being printed, and its status becomes LEAVE. |
LEAVE | Same as HOLD. However, if the user releases a SYSOUT data set from the HOLD state, the status of the SYSOUT data set becomes KEEP. |
PURGE | Removes OUTPUT from OUTPUTQ. |
Parameters 2
Specifies how to dispose new OUTPUT that is created as a SYSOUT data set when JOB is abnormally terminated (ABEND). Uses the same options as Parameters 1.
If a parameter 2 is omitted, a parameter 1 is used. If a parameter 1 is omitted and a parameter 2 is specified, the parameter 1 is set to WRITE by default.
Note
If OUTDISP is not specified, the VALUE of the key set by CLASS in the OUTCLASS section of the tjes subject under OpenFrame Configuration is used. If no CLASS is specified there, OUTDISP is set to PURGE. For more information about how to set the tjes subject, refer to OpenFrame Configuration Guide.
The CLASS of OUTPUT is specified by the SYSOUT operand in a DD statement.
Example
The following example specifies OUTDISP.
//OUT1 OUTPUT OUTDISP=(WRITE,PURGE) //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies the name of the back overlay of a page to print.
Syntax
OVERLAYB = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Note
To send the OVERLAYB information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the back overlay name as 'MYOVLY'.
//OUT1 OUTPUT OVERLAYB=MYOVLY //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies the name of the back overlay of a page to print.
Syntax
OVERLAYF = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to eight characters. |
Note
To send the OVERLAYF information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the front overlay name as 'MYOVLY'.
//OUT1 OUTPUT OVERLAYF=MYOVLY //OUT DD SYSOUT=J,OUTPUT=*.OUT1
Specifies a member of PAGEDEF.
Syntax
PAGEDEF = member
Field | Description |
---|---|
member | Specifies a PAGEDEF name with one to six symbolic characters except for the period (.). |
Note
To send the PAGEDEF information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the PAGEDEF member as SSPGE.
//OUT1 OUTPUT PAGEDEF=SSPGE //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
PIMSG = {YES | NO} {(YES[,msg-count])} {(NO[,msg-count]) }
Field | Description |
---|---|
msg-count | Specifies an unsigned integer between 0 and 999. |
Syntax checked, but not used in OpenFrame.
Syntax
PORTNO = value
Field | Description |
---|---|
msg-count | Specifies an unsigned integer between 1 and 65535. |
Syntax checked, but not used in OpenFrame.
Syntax
PRMODE = value
Field | Description |
---|---|
value | Specifies a symbolic name with up to eight characters except for the period (.). |
Syntax checked, but not used in OpenFrame.
Syntax
PRTERROR = {DEFAULT | QUIT | HOLD}
Syntax checked, but not used in OpenFrame.
Syntax
PRTOPTNS = value
Field | Description |
---|---|
value | Specifies a symbolic name with up to sixteen characters except for the period (.). |
Syntax checked, but not used in OpenFrame.
Syntax
PRTQUEUE = value
Field | Description |
---|---|
value | Specifies a symbolic name with up to 127 characters. |
Syntax checked, but not used in OpenFrame.
Syntax
PRTY = value
Field | Description |
---|---|
value | Specifies a three-character symbolic name. |
Specifies an email address to which recipients can reply.
Syntax
REPLYTO = email address
Field | Description |
---|---|
email address | Specifies an email address to receive a reply in a text string with a length of up to 60 bytes. |
Note
To send the REPLYTO information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the email address as reply@companye.net.
//OUT1 OUTPUT REPLYTO='reply@companye.net' //OUT DD SYSOUT=*,OUTPUT=*.OUT1
Specifies the time during which a successfully sent data set is retained.
Syntax
RETAINS = {value}
Field | Description |
---|---|
value | Specifies a symbolic name. |
Note
To send the RETAINS information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the retention time of a successfully sent SYSOUT data set as one hour.
//OUT1 OUTPUT RETAINS='0001:00:00' //OUT DD SYSOUT=P,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame.
Syntax
RETAINF = {hhhh:mm:ss | FOREVER}
Field | Description |
---|---|
hhhh | Specifies an unsigned integer between 0 and 9999. |
mm | Specifies an unsigned integer between 0 and 59. |
ss | Specifies an unsigned integer between 0 and 99. |
Syntax checked, but not used in OpenFrame.
Syntax
RETRYL = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 32767. |
Syntax checked, but not used in OpenFrame.
Syntax
RETRYT = hhhh:mm:ss
Field | Description |
---|---|
hhhh | Specifies an unsigned integer between 0 and 9999. |
mm | Specifies an unsigned integer between 0 and 59. |
ss | Specifies an unsigned integer between 0 and 99. |
Specifies the room ID to a page-delimiter for printing a SYSOUT data set.
Syntax
ROOM = room ID
Field | Description |
---|---|
room ID | Specifies a room ID associated with a SYSOUT data set, in a text string with a length of up to 60 bytes. |
Note
To send the ROOM information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the room ID of a SYSOUT as 'Main Hall'.
//OUT1 OUTPUT ROOM='Main Hall' //OUT DD SYSOUT=Y,OUTPUT=*.OUT1
Syntax checked, but not used in OpenFrame
Syntax
THRESHLD = value
Field | Description |
---|---|
value | Specifies an unsigned integer between 0 and 99999999. |
Specifies the output title to be printed on a page-delimiter for printing a SYSOUT data set.
Syntax
TITLE = value
Field | Description |
---|---|
value | Specifies the output title printed on a page-delimiter for an output of a SYSOUT data set, in a string with the length of up to 60 bytes. |
Note
To send the TITLE information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the OUTPUT TITLE value as 'ANNUAL REPORT'.
//OUT1 OUTPUT TITLE='ANNUAL REPORT' //OUT DD SYSOUT=O,OUTPUT=*.OUT1
Specifies whether to include the table reference code (TRC) in the logical record for each output row of a SYSOUT data set.
Syntax
TRC = {YES | Y | NO | N}
Field | Description |
---|---|
YES(Y) | NO(N) | Sets the option to include TRC to YES (Y) or NO (N). |
Note
To send the TRC information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies that TRC is not included in the logical record for each output row of a SYSOUT data set.
//OUT1 OUTPUT TRC=NO //OUT DD SYSOUT=W,OUTPUT=*.OUT1
Specifies the universal character set.
Syntax
UCS = value
Field | Description |
---|---|
value | Specifies a symbolic name having up to four characters. |
Note
To send the UCS information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies the universal character set as A11.
//OUT1 OUTPUT UCS=A11 //OUT DD SYSOUT=N,OUTPUT=*.OUT1
Specifies the user-defined data set.
Syntax
USERDATA = (value[,value]...)
Field | Description |
---|---|
value | Specifies the user-defined data in a text string with a length of up to 60 bytes. Maximum sixteen values can be specified. |
Note
To send the USERDATA information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies USERDATA.
//OUT1 OUTPUT USERDATA=('Installation data','USERKEY1=User','ABC') //OUT DD SYSOUT=V,OUTPUT=*.OUT1
Specifies the name for a USERLIB data set.
Syntax
USERLIB = {data set name} {(data set name1,data set name2,...data set name8)}
Field | Description |
---|---|
data set name | Specifies a name to be used in USERLIB with up to 44 characters. For any information about the name format, refer to OpenFrame Data Set Guide. |
Note
To send the USERLIB information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies a data set name as TMAX.DATASET.
//OUT1 OUTPUT FORMS=5,FORMDEF=JJPRT,USERLIB=TMAX.DATASET //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Specifies an external printing module.
Syntax
WRITER = name
Field | Description |
---|---|
name | Specifies a symbolic name having one to eight characters. |
Note
To send the WRITER information for printing to an external printer module, OpenFrame saves the information after completion of the JOB. Whether the information is used depends on the necessity of an external printer module.
Example
The following example specifies WRITER as MYPGM.
//OUT1 OUTPUT WRITER=MYPGM //OUT DD SYSOUT=A,OUTPUT=*.OUT1
Indicates the end of a procedure. It must be used at the end of an input stream procedure, but it may be omitted from a catalog procedure.
Syntax
//[PEND name]△¹PEND△[comments]
Field | Description |
---|---|
[PEND name] | Specifies a name from column 3 after "//." Can be omitted. |
PEND | Specifies the operation PEND. Write one or more empty spaces and then "PEND" after a PEND name. If the name is omitted, the operation can specified after "//" without any empty spaces. |
[comments] | Used after operands, following one or more empty spaces. |
Indicates the start of a procedure. There two types of procedures as follows:
Type | Description |
---|---|
Input stream procedure | A temporary procedure that can be used only in a JOB entered as an input stream. After a JOB statement, a PROC statement can be used at any positions before the next JOB statement. In the case of input stream procedures, the end of a procedure must be indicated with a PEND statement. |
Catalog procedure | A cataloged procedure that can be called by any JOB. |
Syntax
//[PROC name]△¹PROC△¹[symbolic parameter=[value]...△¹[comments]]
Field | Description |
---|---|
PROC name | Specifies a name from column 3 after "//." A PROC name must be specified for an input stream procedure with a symbolic name. It can be omitted for a catalog procedure. A procedure name that is used when a catalog procedure is called by an EXEC statement is a member name in library in which procedures are cataloged. |
PROC | Specifies the operation PROC. Write one or more empty spaces and then "PROC" after a name. If the name is omitted, the operation is used after "//" followed by one or more empty spaces. |
[symbolic parameter=[value]] | Specifies symbolic parameters after "PROC" followed by one or more empty spaces. Operands of an EXEC statement cannot be used as symbolic parameters. For more details about symbolic parameters, see Symbolic Parameter following this table. |
[comments] | Used after symbolic parameters followed by one or more empty spaces. If there is no symbolic parameter, comments cannot be used. |
Values of symbolic parameters used in a procedure must be specified, with one to eight characters. If a symbolic parameter is defined and the value is not specified, the system determines that the parameter is set to NULL. If a symbolic parameter is defined in an EXEC statement that calls a procedure, the same symbolic parameter is overridden and another symbolic parameter is added.
A symbolic parameter is used in a control statement in a procedure as follows:
An ampersand (&) precedes a parameter.
The system replaces "&symbolic parameter" by the value of the symbolic parameter.
The end of a parameter can be specified as follows:
An empty space, a period (.), a comma (,), parenthesis, "\n" or single quotation (') indicate the end of a parameter.
In the following example, "ABC" is recognized as a symbolic parameter since is is followed by a comma (,).
//STEP1 EXEC PGM=&ABC,PARM=8
If a period (.) is used to indicate the end of a symbolic parameter, the period is included in the value of the symbolic parameter.
In the following example, "&ABC." is replaced by TMAX because it is followed by a period (.), so that the value of PGM becomes "TMAXSOFT."
//PROC PROC ABC=TMAX //STEP1 EXEC PGM=&ABC.SOFT,PARM=8
If there are multiple symbolic parameters that can be replaced, the longest parameter is used.
In the following example, both "&ABC" and "&ABCD" are symbolic parameters. Among them, "&ABCD" is used because it is longer, and the value of PGM becomes "tmaxEFG."
//PROC PROC ABC=TMAX,ABCD=tmax //STEP1 EXEC PGM=&ABCDEFG,PARM=8
A symbolic parameter cannot be replaced in the following cases.
A parameter preceded by two ampersands ("&&symbolic parameter") is not replaced. If a parameter is preceded by three ampersands ("&&&symbolic parameter"), the format becomes "&&replaced value."
If no symbolic parameter is defined to be replaced, no replacement occurs.
Specifies values of symbolic parameters used in JCL.
//[name]△¹SET△¹symbolic parameter=value[,symbolic parameter=value]...△¹[comments]
Field | Description |
---|---|
name | Specifies a name from column 3 after "//." Can be omitted. |
SET | Specifies the operation SET. Write one or more empty spaces and then "SET" after a name. If the name is omitted, the operation is used after "//" followed by one or more empty spaces. |
symbolic parameter= value[,symbolic parameter= value]… | Specifies symbolic parameters after "PROC" followed by one or more empty spaces. For more details about symbolic parameters, see Symbolic Parameter following this table. |
[comments] | Used after symbolic parameters followed by one or more empty spaces. |
Values of symbolic parameters used in a procedure to be called, or in JCL, must be specified with symbolic characters except the period (.). If a symbolic parameter is defined and the value is not specified, the system determines that the parameter is set to NULL.
Even if there are symbolic parameters specified with a SET statement, when the same parameters are specified in an EXEC statement or a PROC statement to be called, the parameters specified in an EXEC or PROC statement are used.
A symbolic parameter is used in a control statement of JCL as follows:
An ampersand(&) precedes a parameter. The system replaces "&symbolic parameter" by the value of the parameter.
The end of a symbolic parameter can be specified as follows:
An empty space, a period (.), a comma (,), parenthesis, "\n" or single quotation (') indicate the end of a parameter.
In the following example, "ABC" is recognized as a symbolic parameter since is is followed by a comma (,).
//STEP1 EXEC PGM=&ABC,PARM=8
If a period (.) is used to indicate the end of a symbolic parameter, the period is included in the value of the symbolic parameter.
In the following example, "&ABC." is replaced by TMAX because it is followed by a period (.), so that the value of PGM becomes "TMAXSOFT."
// SET ABC=TMAX //STEP1 EXEC PGM=&ABC.SOFT,PARM=8
If there are multiple symbolic parameters that can be replaced, the longest parameter is used.
In the following example, both "&ABC" and "&ABCD" are symbolic parameters. Among them, "&ABCD" is used because it is longer, and the value of PGM becomes "tmaxEFG."
// SET ABC=TMAX,ABCD=tmax //STEP1 EXEC PGM=&ABCDEFG,PARM=8
Symbolic parameters which are used in a SET statement or an EXEC (or PROC) statement are handled as follows:
A symbolic parameter specified with a SET statement is used in a procedure only when there is no same parameter in an EXEC or PROC statement. If the same parameter is specified, the value of the parameter specified in an EXEC or PROC statement is used.
A symbolic parameter specified with a SET statement is used in JCL until the same parameter is specified with another SET statement.
A symbolic parameter specified with a SET statement in a procedure is used only in the corresponding procedure.
The following example shows how to replace the value of "&ABC."
JCL // SET ABC=1 //STEP1 EXEC PROCTEST,ABC=2 -- In PROCTEST PSTEP1 step, PARM parameter's value is 2 //STEP2 EXEC PGM=TEST,PARM=&ABC -- PARM parameter's value is 1 //STEP3 EXEC PROCTEST -- In PROCTEST PSTEP1 step, PARM parameter's value is 1
PROCTEST //PROCTEST PROC //PSTEP1 EXEC PGM=TEST,PARM=&ABC
A symbolic parameter cannot be replaced in the following cases.
A parameter preceded by two ampersands ("&&symbolic parameter") is not replaced. If a symbolic parameter is preceded by three ampersands ("&&&symbolic parameter"), the format becomes "&&replaced value."
If no parameter is defined to be replaced, no replacement occurs.
Transmits data to another node. Syntax checked, but not used in OpenFrame. To avoid any syntax error, only in-stream data between an XMIT statement and the delimiter statement is processed.
Syntax
//[name]△¹XMIT operand[,operand...]△[* comments]
Field | Description |
---|---|
operand | Specifies one of the following: DEST, DLM, SUBCHARS |
Example
The following example uses an XMIT statement.
//JOB1 JOB //X1 XMIT DEST=LOCAL . . (records to be transmitted) . /*
Indicates the end of JOB. After NULL, all data are ignored until the next JOB statement appears.
Syntax
//
Indicates the end of in-stream data by being placed right after the last line of in-stream data.
If there is instream data (a statement that does not start with // or /*) without a DD statement ("DD *" or "DD DATA") that indicates the beginning of instream data, the system automatically creates the following statement to take the instream data from SYSIN DD.
//SYSIN DD *
Syntax
/*[comments]
Field | Description |
---|---|
[comments] | Describes comments from column 3 after "/*." Writing comments from column 4 is recommended because comments written from column 3 may be recognized as a JES2 statement like "/*PRIORITY." |
Describes comments. Comments can be introduced anywhere except between in-stream data. When inserted, the in-stream data is deemed to end at the point where the comment is inserted, and the subsequent in-stream data is registered with a new SYSIN DD.
In OpenFrame, a statement starting with "##" is also specially processed as a comment. However, in-stream data starting with "##" is processed as data.
Syntax
//*[comments]
Field | Description |
---|---|
[comments] | Described starting from column 4 after "//*". To write comments in multiple lines, the first three columns must be always "//*". |