# //*FORMAT PU statement - IBM-JCL

Purpose

Use the //*FORMAT PU statement to specify to JES3 processing instructions for sysout data sets that are punched. These instructions permit special processing of sysout data sets, such as:

• Multiple destinations.
• Multiple copies of output with different attributes.

Use the //*FORMAT PU statements can be either specific or nonspecific. A specific //*FORMAT PU statement contains a DDNAME parameter that specifies something other than a null value, such as DDNAME=ddname or DDNAME=JESYSMSG. A nonspecific //*FORMAT PU statement contains DDNAME= , with no value (null) specified for the DDNAME parameter.

You can code multiple specific //*FORMAT PU statements for a particular sysout data set to specify special requirements for different copies of the data set. In addition, you can code a //*FORMAT PR statement for the same sysout data set,thereby both printing and punching it.

You can also code multiple nonspecific //*FORMAT PU statements. In this case, the system produces only one copy of each data set, combining any parameter values specified on the statements. If you specify a given parameter on more than one of these statements, the system uses the parameter value specified on the last //*FORMAT PU statement containing that parameter.

Note: The //*FORMAT PU statement applies only to sysout data sets punched by JES3. The statement is ignored for data sets sent to a TSO/E userid or processed by an external writer.

1.Syntax

//*FORMAT PU,DDNAME= {ddname } [,parameter]... {stepname.ddname } parameter]... {stepname.procstepname.ddname}
//*FORMAT PU,DDNAME=[,parameter]...

The parameters are:

CHNSIZE= {DS } {(nnn[,mmm])}
COMPACT=compaction-table-name
COPIES=nnn
DEST= {ANYLOCAL } {device-name } {device-number } {group-name } {nodename[.remote] } {(type[,device-name]) } {(type[,device-number])} {(type[,group-name]) }
EXTWTR=name
FORMS= {STANDARD } {form-name}
INT= {YES} {NO }

The //*FORMAT PU statement consists of the characters //* in columns 1 through 3, FORMAT in columns 4 through 9, and a blank in column 10. PU begins in column 11 or beyond, followed by a comma, and parameters start after the comma and continue through column 72. JES3 ignores columns 73 through 80.

2.Parameter Definition

PU
Indicates that this statement is associated with a sysout data set that is punched.

DDNAME=
DDNAME=ddname
DDNAME=stepname.ddname
DDNAME=stepname.procstepname.ddname

(null)
Specifies that the parameters on this //*FORMAT PU statement are the defaults for the job. These parameters then apply to all of the job’s sysout data sets that are punched except those covered by a //*FORMAT PU statement with a value other than (null) for DDNAME.

Overrides: Parameters coded on a nonspecific //*FORMAT PU statement are overridden by parameters coded on sysout DD statements or by parameters in the JES3 SYSOUT initialization statement.

ddname
stepname.ddname
stepname.procstepname.ddname
Identifies the DD statement that defines the sysout data set to be punched. Use form ddname to indicate all DD statements with the name, ddname, in this job. Use form stepname.ddname to indicate DD statement, ddname, in step, stepname, in this job. Use form stepname.procstepname.ddname to indicate DD statement, ddname, in procedure step, procstepname, of a procedure that is called by a step, stepname, in this job. The ddname must match exactly the ddname on the DD statement. If the identified DD statement does not contain a SYSOUT parameter, JES3 ignores the //*FORMAT PU statement.

Note: If a ddname matches more than one //*FORMAT PU statement, the //*FORMAT PU statement that has more qualifiers for the ddname will override the others.

CHNSIZE=DS CHNSIZE=(nnn[,mmm])
Gives the number of logical records to be transmitted to a work station as a systems network architecture (SNA) chain and indicates whether normal output checkpoints are to be taken for this sysout data set.

Note: This parameter is valid only when transmitting to a SNA work station.

Be careful in selecting subparameters, because each affects performance differently. Sending the data set as a SNA chain provides the best performance, but can cause duplicate data to be written to the output device if an operator intervention is required. The remote operator can eliminate duplicate data by issuing commands to reposition and restart the output writers.

When an end-of-chain indicator is sent in the data set, JES3 takes an output checkpoint. You can provide additional checkpoints for critical data by sending an end-of-chain indicator. For example, when punching bank checks, you can have an output checkpoint taken for each check by specifying each check as a SNA chain.

DS
Indicates that the sysout data set is to be sent as a single SNA chain and that JES3 is not to take normal output checkpoints. DS is the default if the CHNSIZE parameter is omitted.

nnn
Specifies the SNA chain size in pages. nnn is a decimal number from 1 through 255. The size of a page is determined by the value you assign to mmm.

mmm
Specifies the number of logical records in a page. mmm is a decimal number from 1 through 255.

COMPACT=compaction-table-name
Specifies the compaction table for JES3 to use when sending a systems network architecture (SNA) data set to a SNA remote terminal. The compaction-table-name is a symbolic name defined by the installation during JES3 initialization. The name is 1 through 8 alphanumeric characters.

In the following cases, JES3 performs compaction using an installation default table, if defined, or sends the data without compacting it, if no table was defined. In all cases, JES3 writes a message to the console.

• No compaction table is specified.
• The specified compaction table is invalid.
• JES3 cannot find the specified compaction table.

If the remote punch does not support compaction, JES3 ignores the COMPACT parameter and sends the data without compacting it.

COPIES=nnn
Indicates how many copies of the sysout data set are to be punched. nnn is a number from 0 through 255. If you code COPIES=0, JES3 does not punch this data set. If a COPIES parameter is not specified, the default is 1.

DEST=destination
Routes the output from the sysout data set to a punch. This parameter overrides the //*MAIN statement ORG parameter.

If you omit DEST, JES3 assigns the first available punch that is in the origin group and that fulfills all processing requirements. The origin group is the group of punches defined for the local or remote submitting location. If the job originated at a remote job processing (RJP) terminal, JES3 returns the output to the originating terminal group.

If the job was submitted through TSO/E to the NJE network for execution, the default is the node from which the job was submitted, and the destination ANYLOCAL.

ANYLOCAL
Indicates any local punch that is being used for the output class specified in the SYSOUT parameter on the DD statement and that is attached to the global processor.

device-name
Requests a local device by a symbolic name defined by the installation during JES3 initialization. device-name is 1 through 8 alphanumeric or national ($, #, @) characters. device-number Specifies the 3-digit or 4-digit hexadecimal device number. Precede a 4-digit number with a slash (/). A 3-digit number can be specified with or without a slash. group-name Identifies a group of local devices, an individual remote station, or a group of remote stations by a symbolic name defined by the installation during JES3 initialization. group-name is 1 through 8 alphanumeric or national ($, #, @) characters.

nodename
Identifies node by a symbolic name defined by the installation during JES3 initialization. nodename is 1 through 8 alphanumeric or national (\$, #, @) characters.

remote
Identifies a remote work station or VM userid to which the receiving node directs output. remote is 1 through 8 characters.

(type)
Indicates a device classification. type is in the form (gggssss) where ggg is the general device classification and ssss is the specific device classification. The type must be enclosed in parentheses. The type must be defined by the installation during JES3 initialization. For example, type for a 3525 is (PUN3525).

EXTWTR=name
Identifies the external writer that is to process the sysout data set at the destination node. name is 1 through 8 alphanumeric characters and must identify a module defined to the remote JES3 node that is to execute the job.

FORMS=STANDARD
FORMS=form-name
Indicates the forms on which the sysout data set is to be punched.

STANDARD
Indicates the standard form. JES3 uses the standard form specified at JES3 initialization.
form-name
Names the punch forms. form-name is 1 through 8 alphanumeric characters.

INT=YES
INT=NO
Specifies whether or not the output is to be interpreted. If the INT parameter is omitted, the default is NO.

YES
Requests that JES3 try to punch the sysout data set on a 3525 Card Punch (PUN3525I) with a Multiline Card Print feature.
Note: If the DEST parameter does not send output to a 3525I, JES3 ignores INT=YES, if specified.

NO
Requests that the cards not be interpreted.

3.Relationship to Sysout DD and OUTPUT JCL Statements

• JES3 ignores the processing options specified on a default //*FORMAT statement when a sysout DD statement explicitly or implicitly references an OUTPUT JCL statement.
• JES3 ignores the processing options specified on a default OUTPUT JCL statement when a //*FORMAT statement explicitly references a sysout DD statement.
• When a sysout DD statement explicitly references an OUTPUT JCL statement and a //*FORMAT statement explicitly references the same DD statement, the processing options from both the OUTPUT JCL and //*FORMAT statements apply. Two separate sets of output are created from the data set defined by the sysout DD statement; one according to the processing options on the OUTPUT JCL and DD statements, and the other according to the processing options on the //*FORMAT and DD statements.

4.Relationship to //*PROCESS Statement
JES3 accumulates //*FORMAT PU statements within a job and applies them to any JES3 //*PROCESS statement that is normally affected by a //*FORMAT PU statement.

5.Location in the JCL
Place all //*FORMAT PU statements for the job after the JOB statement and before the first EXEC statement.

6.Examples of the //*FORMAT PU Statement

Example

//*FORMAT PU,DDNAME=STEP2.PUNCHOUT,DEST=PU1,FORMS=RED-STRP

This statement requests that one copy of the data set defined by sysout DD statement PUNCHOUT in STEP2 of this job be punched on device PU1. Before processing, the operator is requested to insert RED-STRP cards into the punch.

Example

//*FORMAT PU,DDNAME=STEP1.PUNCHOUT,DEST=DEVA //*FORMAT PU,DDNAME=PUNCHOUT,DEST=DEVB

This statement requests one copy of the data set defined by sysout DD statement PUNCHOUT in STEP1 of this job to be punched on device DEVA and one copy of the data set defined by sysout DD statement PUNCHOUT to be punched on device DEVB. The PUNCHOUT data set for STEP1 is sent to DEVA because the //*FORMAT PU statement with more qualifiers for the same ddname overrides the other. The PUNCHOUT data set for any other step is sent to DEVB.