JCL Control Statements
This chapter describes JCL control statements and their operands.
1. Overview
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. |
2. CNTL Statement
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
3. DD Statement
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.
CONCATENATED DD and Procedure STEP
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 //
Operand
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.
3.1. Asterisk (*) and DATA
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=*
3.2. ACCODE
Syntax checked, but not used in OpenFrame.
-
Syntax
ACCODE = value
Field Description value
A symbolic name having between one and eight characters.
3.4. AVGREC
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
3.5. BLKSIZE
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
3.6. BLKSZLIM
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.
3.8. CCSID
Syntax checked, but not used in OpenFrame.
-
Syntax
CCSID = value
Field Description value
Specifies an unsigned integer between 1 and 65535.
3.9. CHARS
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)
3.11. CNTL
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.
3.12. COPIES
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))
3.13. DATACLAS
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
3.14. DCB
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.
-
PS: Physical sequential data sets.
-
PSU: Physical sequential data sets that include location-dependent information.
-
PO: Partitioned data sets.
-
POU: Partitioned data sets that include location-dependent information.
-
DA: Direct access data sets.
-
DAU: Direct access data sets that include location-dependent information.
-
IS: Indexed sequential data sets.
-
ISU: Indexed sequential data sets that include location-dependent information.
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.
PAGESIZE=value
Specifies the number of rows to retrieve at once when reading VSAM data sets in the READ mode. OpenFrame-specific parameter.
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.
-
3.15. DDNAME
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) //
3.16. DEST
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
3.17. DISP
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)
3.18. DLM
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 ...
3.19. DSID
Syntax checked, but not used in OpenFrame.
-
Syntax
DSID = {id} {(id[,V])}
Field Description id
Specifies a symbolic name with up to eight characters.
3.20. DSNAME/DSN
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
3.21. DSNTYPE
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
3.22. DUMMY
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
3.24. EXPDT
Specifies the expiration date of a data set. Valid only for newly created data sets.
-
Syntax
EXPDT = {yyddd|yyyy/ddd}
Field Description {yyddd}
-
yy: 2-digit year. (Range: 0 to 99, recognized as 1900s)
-
ddd: 3-digit day. (Range: 1 to 366)
{yyyy/ddd}
-
yyyy: 4-digit year. (Range: 1900 to 2099)
-
ddd: 3-digit day. (Range: 1 to 366)
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
3.25. FCB
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.
3.27. FLASH
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)
3.29. HOLD
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.
-
YES: Printing of SYSOUT data sets is set to HOLD.
-
NO: Printing of SYSOUT data sets is set to WRITE.
-
-
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
3.30. KEYLEN
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)
3.31. KEYOFF
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)
3.32. LABEL
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.
-
yyyy: 4-digit year. (Range: 1900 to 2099)
-
yy: 2-digit year. (Range: 0 to 99, recognized as 1900s)
-
ddd: 3-digit day. (Range: 1 to 366)
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.
-
nnnn: An unsigned integer between 0 and 9999. NONE if specified as 0 and Dec, 31, 1999 if specified as 9999.
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
3.33. LGSTREAM
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 (.).
3.34. LIKE
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
3.35. LRECL
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)
3.36. MGMTCLAS
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
3.37. MODIFY
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)
3.38. OUTLIM
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.
3.39. OUTPUT
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.
-
*.name: When an OUTPUT statement to reference is placed in between a JOB statement and the first STEP statement, or in the same STEP
-
*.STEP name.name: When an OUTPUT statement to reference is placed in another STEP
-
*.STEP name.procedure STEP name.name: When an OUTPUT statement to reference is placed within a procedure STEP in STEP
-
-
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.
3.40. PATH
Specifies a Unix file path. This parameter operates only when using the TSO OCOPY command.
-
Syntax
PATH = 'file-path'
3.41. PATHDISP
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.
-
3.42. PATHMODE
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:
-
Owner class
-
SIRUSR: Grants the read permission to the file owner.
-
SIWUSR: Grants the write permission to the file owner.
-
SIXUSR: Grants the search permission to the file owner if the file is a directory, or the execute permission to the file owner if the file is not directory.
-
SIRWXU: Grants the read, write and search permission to the file owner if the file is a directory, or the read, write and execute permission to the file owner of the file is not a directory.
-
-
Group class
-
SIRGRP: Grants the read permission to the file group class users.
-
SIWGRP: Grants the write permission to the file group class users.
-
SIXGRP: Grants the search permission to the file group class users if the file is a directory, or the execute permission to the file group class users if the file is not a directory.
-
SIRWXG: Grants the read, write and search permission to the file group class users if the file is a directory, or the read, write and execute permission to the file group class users if the file is not a directory.
-
-
Other classes
-
SIROTH: Grants the read permission to other classes' users.
-
SIWOTH: Grants the write permission to other classes' users.
-
SIXOTH: Grants the search permission to other classes' users if the file is a directory, or the execute permission to other classes' users if the file is not a directory.
-
SIRWXO: Grants the read, write and search permission to other classes' users if the file is a directory, or the read, write and execute permission if the file is not a directory.
-
-
3.43. PATHOPTS
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:
-
Opening option
-
ORDONLY: Opens the file as read-only.
-
OWRONLY: Opens the file as write-only.
-
ORDWR: Opens the file as read/write.
-
-
Status option
-
OAPPEND: Writes data from the end of the file.
-
OCREAT: Creates a file if no file exists, or opens an existing file. If the specified directory does not exist, no file is created.
-
OEXCL: Creates a file if no file exists, or returns an error and fails to allocate a file to the JOB STEP if the file already exists. If OCREAT is specified, this option is ignored.
-
ONOCTTY: Specifies that if PATH specifies a terminal device, the terminal device does not become a process control terminal.
-
ONONBLOCK: Does not wait and returns immediately if the file has no data to read.
-
OSYNC: Returns after writing completes.
-
OTRUNC: Overwrite the existing file.
-
-
3.45. RECFM
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
3.47. REFDD
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
3.48. RETPD
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
3.52. SPACE
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) //
3.54. STORCLAS
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
3.56. SYMBOLS
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 /*
3.57. SYSOUT
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
3.60. UNIT
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
3.61. VOLUME/VOL
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)
4. Special DD Statement
This section describes DD statements using a special DD name. OpenFrame considers only the following DD statements as special DD statements.
4.1. SYSIN DD
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
4.2. SYSOUT DD and SYSPRINT DD
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 *
4.3. JOBLIB DD and STEPLIB 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 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 *
4.4. JOBCAT DD and STEPCAT 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 *
5. ENDCNTL Statement
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
6. EXEC Statement
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.
Operand
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.
Operand Description Specifies the name of a program to be executed in the STEP.
Specifies the name of a procedure to be executed in the STEP.
-
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.
6.2. ADDRSPC
Syntax checked, but not used in OpenFrame.
-
Syntax
ADDRSPC[.procedure STEP name] = {VIRT} {REAL}
6.3. CCSID
Syntax checked, but not used in OpenFrame.
-
Syntax
CCSID = value
Field Description value
Specifies an unsigned integer between 1 and 65535.
6.4. COND
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.
-
EQ: Equal to the return code.
-
NE: Different from the return code.
-
GT: Greater than the return code.
-
GE: Greater than or equal to the return code.
-
LT: Smaller than the return code.
-
LE: Smaller than or equal to the return code.
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.
-
EVEN: Whether or not the previous STEP is normally terminated, if the condition is met, the current STEP is executed. If the condition is not met, the current STEP is not executed. If only EVEN is specified, it is determined that all conditions were not met.
-
ONLY: If the previous STEP is normally terminated, the next STEP is not executed. If not, whether the next STEP is executed is determined by comparing the condition. If only ONLY is specified when a STEP is abnormally terminated, it is determined that all conditions were not met.
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)
6.5. DYNAMNBR
Syntax checked, but not used in OpenFrame.
-
Syntax
DYNAMNBR[.procedure STEP name] = value
Field Description value
Specifies an unsigned integer between 0 and 3273.
6.6. MEMLIMIT
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.
6.7. PARM
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'
6.8. PGM
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.
|
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
6.9. PROC
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
Procedure STEP Name
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)
6.10. PERFORM
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
6.11. RD
Syntax checked, but not used in OpenFrame.
-
Syntax
RD[.procedure STEP name] = {R | RNC | NR |NC}
6.12. REGION
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.
6.13. RLSTMOUT
Syntax checked, but not used in OpenFrame.
-
Syntax
RLSTMOUT[.procedure STEP name] = value
Field Description value
Specifies an unsigned integer between 0 and 9999.
6.14. SPARM
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.
-
YYYY.MM.DD: YYYY means a four-digit year number (ranging from 1900 to 2099).
-
YY.MM.DD: YY means a two-digit year number (ranging from 0 to 99, recognized as 1900s).
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'
6.15. TIME
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
6.16. Symbolic Parameter
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
7. IF/THEN/ELSE/ENDIF Statement
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.
Conditions
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.
-
8. INCLUDE Statement
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:
-
If a JCLLIB statement is used before an INCLUDE statement, members are searched according to the order of PDS data sets specified in the JCLLIB statement.
-
If a *PROCLIB statement (JES2 statement) is used before an INCLUDE statement, a member is specified through a DD name described with the PROCLIB parameter of the *PROCLIB statement. The DD name described with the PROCLIB parameter of the *PROCLIB statement is used as a keyword in the PROCLIB section of the tjes subject in OpenFrame Configuration, and a member is searched according to the order of PDS data sets found by using the DD name.
-
A member is searched from the PDS data set SYS1.PROCLIB.
[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.
9. JCL Command Statement
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.
Command
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. |
9.1. S
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.
10. JCLLIB 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.
-
A member is searched in the order of PDS data sets specified in a JCLLIB statement.
-
If a *PROCLIB statement (JES2 statement) is used, a member is specified through a DD name described with the PROCLIB parameter of the *PROCLIB statement. The DD name described with the PROCLIB parameter of the *PROCLIB statement is used as a keyword in the PROCLIB section of the tjes subject in OpenFrame Configuration. A member is searched according to the order of PDS data sets found by using the DD name.
-
A member is searched from among the PDS data set SYS1.PROCLIB.
[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.
11. JOB Statement
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.
Operand
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.
11.2. BYTES
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.
11.3. CARDS
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.
11.4. CCSID
Syntax checked, but not used in OpenFrame.
-
Syntax
CCSID = value
Field Description value
Specifies an unsigned integer from 0 through 65535.
11.5. CLASS
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.
|
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
11.6. COND
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.
-
EQ: Equal to the return code.
-
NE: Not equal to the return code.
-
GT: Greater than the return code.
-
GE: Greater than or equal to the return code.
-
LT: Less than the return code.
-
LE: Less than or equal to the return code.
-
-
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))
11.7. GROUP
Syntax checked, but not used in OpenFrame.
-
Syntax
GROUP = value
Field Description value
Specifies a symbolic name having one through eight characters.
11.9. LINES
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.
11.10. MEMLIMIT
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.
11.11. MSGCLASS
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
11.12. MSGLEVEL
Specifies the output level of JOB’s system messages.
-
Syntax
MSGLEVEL = ([값][,{0}]) {1}
Field Description [{0} {1}]
Specifies the output level of system messages.
-
0: Outputs only error messages from among system messages.
-
1: Outputs error messages and data set information messages such as LOCK and ALLOCATE from among 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)
11.13. NOTIFY
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.
11.14. PAGES
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.
11.15. PASSWORD
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
11.16. PERFORM
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
11.17. PRTY
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
11.19. REGION
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.
11.20. RESTART
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)
11.21. SECLABEL
Syntax checked, but not used in OpenFrame.
-
Syntax
SECLABEL = value
Field Description value
Specifies a symbolic name having up to eight characters.
11.22. SCHENV
Syntax checked, but not used in OpenFrame.
-
Syntax
SCHENV = value
Field Description value
Specifies a symbolic name having up to 16 characters.
11.23. SPARM
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
-
YYYY.MM.DD: YYYY means a four-digit year number ranging from 1900 to 2099.
-
YY.MM.DD: YY means a two-digit year number ranging from 0 to 99,which is recognized as 1900s.
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'
11.24. TIME
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=* //
11.25. TIMECONTROLLER
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.
-
P: Increments hhmm to the actual system time value.
-
M: Decrements hhmm to the actual time value.
-
F: Sets the system time to the specified hour and minute values (hhmm). Subsequent time requests time values that are elapsed from the specified system time.
-
A: Uses the static time set in hhmm.
-
E: The same function as P.
-
W: The same as M.
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.
-
P: Increments the year value.
-
M: Decrements the year value.
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=* //
11.26. TYPRUN
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 ----------------------------
11.27. USER
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
12. OUTPUT Statement
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.
Operand
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.
12.1. ADDRESS
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
12.3. BUILDING
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
12.5. CHARS
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
12.6. CKPTLINE
Syntax checked, but not used in OpenFrame
-
Syntax
CKPTLINE = value
Field Description value
Specifies an unsigned integer between 0 and 32767.
12.7. CKPTPAGE
Syntax checked, but not used in OpenFrame
-
Syntax
CKPTPAGE = value
Field Description value
Specifies an unsigned integer between 1 and 32767.
12.8. CKPTSEC
Syntax checked, but not used in OpenFrame
-
Syntax
CKPTSEC = value
Field Description value
Specifies an unsigned integer between 1 and 32767.
12.9. CLASS
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
12.10. COLORMAP
Syntax checked, but not used in OpenFrame.
-
Syntax
COLORMAP = value
Field Description value
Specifies a symbolic name having up to eight characters.
12.11. COMPACT
Syntax checked, but not used in OpenFrame.
-
Syntax
COMPACT = value
Field Description value
Specifies a symbolic name having up to eight characters.
12.12. COMSETUP
Syntax checked, but not used in OpenFrame.
-
Syntax
COMSETUP = value
Field Description value
Specifies a symbolic name having up to eight characters.
12.13. CONTROL
Syntax checked, but not used in OpenFrame.
-
Syntax
CONTROL = {PROGRAM | SINGLE | DOUBLE | TRIPLE}
12.14. COPIES
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
12.15. DATACK
Syntax checked, but not used in OpenFrame.
-
Syntax
DATACK = {BLOCK | UNBLOCK | BLKCHAR | BLKPOS}
12.17. DEPT
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
12.18. DEST
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
12.21. FCB
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
12.22. FLASH
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
12.23. FORMDEF
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
12.25. FORMS
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
12.27. GROUPID
Syntax checked, but not used in OpenFrame.
-
Syntax
GROUPID = value
Field Description value
Specifies a symbolic name with one to eight characters.
12.28. INDEX
Syntax checked, but not used in OpenFrame.
-
Syntax
INDEX = value
Field Description value
Specifies an unsigned integer between 1 and 31.
12.29. INTRAY
Syntax checked, but not used in OpenFrame.
-
Syntax
INTRAY = value
Field Description value
Specifies an unsigned integer between 1 and 255.
12.31. LINDEX
Syntax checked, but not used in OpenFrame.
-
Syntax
LINDEX = value
Field Description value
Specifies an unsigned integer between 1 and 31.
12.32. LINECT
Syntax checked, but not used in OpenFrame.
-
Syntax
LINECT = value
Field Description value
Specifies an unsigned integer between 1 and 255.
12.33. MAILBCC
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
12.34. MAILCC
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
12.36. MAILFROM
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
12.37. MAILTO
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
12.38. MODIFY
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
12.39. NAME
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
12.40. NOTIFY
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.
12.45. OUTBIN
Syntax checked, but not used in OpenFrame.
-
Syntax
OUTBIN = value
Field Description value
Specifies an unsigned integer between 1 and 65535.
12.46. OUTDISP
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
12.47. OVERLAYB
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
12.48. OVERLAYF
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
12.50. PAGEDEF
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
12.51. PIMSG
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.
12.52. PORTNO
Syntax checked, but not used in OpenFrame.
-
Syntax
PORTNO = value
Field Description msg-count
Specifies an unsigned integer between 1 and 65535.
12.53. PRMODE
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 (.).
12.55. PRTERROR
Syntax checked, but not used in OpenFrame.
-
Syntax
PRTERROR = {DEFAULT | QUIT | HOLD}
12.56. PRTOPTNS
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 (.).
12.57. PRTQUEUE
Syntax checked, but not used in OpenFrame.
-
Syntax
PRTQUEUE = value
Field Description value
Specifies a symbolic name with up to 127 characters.
12.58. PRTY
Syntax checked, but not used in OpenFrame.
-
Syntax
PRTY = value
Field Description value
Specifies a three-character symbolic name.
12.59. REPLYTO
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
12.61. RETAINS
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
12.62. RETAINF
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.
12.63. RETRYL
Syntax checked, but not used in OpenFrame.
-
Syntax
RETRYL = value
Field Description value
Specifies an unsigned integer between 0 and 32767.
12.64. RETRYT
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.
12.65. ROOM
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
12.67. THRESHLD
Syntax checked, but not used in OpenFrame
-
Syntax
THRESHLD = value
Field Description value
Specifies an unsigned integer between 0 and 99999999.
12.68. TITLE
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
12.69. TRC
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
12.70. UCS
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
12.71. USERDATA
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
12.72. USERLIB
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
12.74. WRITER
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
13. PEND Statement
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.
14. PROC Statement
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.
Symbolic Parameter
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.
15. SET Statement
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. |
Symbolic Parameter
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.
16. XMIT Statement
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) . /*
17. NULL Statement
Indicates the end of JOB. After NULL, all data are ignored until the next JOB statement appears.
-
Syntax
//
18. Delimiter Statement
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."
19. Comment Statement
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 "//*".