Adding parameters from OUTPUT JCL statement
JES combines the parameters from the sysout DD statement and one OUTPUT JCL to write the sysout data set. If a parameter appears on both statements, JES uses the parameter from the DD statement.
Note that if an OUTPUT JCL statement contains both JESDS and CLASS parameters, this CLASS will override the MSGCLASS parameter on the JOB statement for the specified JES data sets.
Multiple references: A sysout DD statement can reference more than one OUTPUT JCL statement. For each reference to an OUTPUT JCL statement, JES processes the sysout data set using the parameters of the DD statement combined with the parameters from one of the OUTPUT JCL statements.
//JOB1 JOB ,'DEPT. 25'
//OUT1 OUTPUT COPIES=8,DEST=FRANCE
//OUT2 OUTPUT COPIES=2,FORMS=A,DEFAULT=YES
//STEP1 EXEC PGM=DEMENT
//OUT3 OUTPUT DEFAULT=YES,COPIES=5,DEST=REMULAC
//INPUT DD DSN=RHINO
//MFK1 DD SYSOUT=A
//MFK2 DD SYSOUT=B,OUTPUT=*.OUT1 - The system processes the output from DD statement MFK1 using the options on the OUTPUT statement OUT3 (1) because MFK1 does not contain an OUTPUT parameter and (2) because OUT3 contains DEFAULT=YES and is in the same step as MFK1. MFK1 cannot implicitly reference the job-level default statement OUT2 because of step-level default statement OUT3. If STEP1 had not contained OUT3, MFK1 would have referenced statement OUT2.
- The system processes the output from DD statement MFK2 according to the processing options on the job-level OUTPUT JCL statement OUT1 because DD statement MFK2 explicitly references OUT1 using the OUTPUT parameter. Note that the system ignores the processing options on all default OUTPUT JCL statements (OUT2 and OUT3).
//EXAMP JOB MSGCLASS=A
//OUT1 OUTPUT DEFAULT=YES,DEST=COMPLEX7,FORMS=BILLING,
// CHARS=(AOA,AOB),COPIES=2
//OUT2 OUTPUT DEFAULT=YES,DEST=COMPLEX1
//STEP1 EXEC PGM=ORDERS
//R1 DD SYSOUT=A
//R2 DD SYSOUT=A
//STEP2 EXEC PGM=BILLING
//OUT3 OUTPUT DEFAULT=YES,DEST=COMPLEX3
//B1 DD SYSOUT=A
//B2 DD SYSOUT=A,OUTPUT=(*.OUT3,*.OUT2)
//STEP3 EXEC PGM=REPORTS
//OUT4 OUTPUT FORMS=SHORT,DEST=COMPLEX1
//RP1 DD SYSOUT=A
//RP2 DD SYSOUT=A,OUTPUT=(*.STEP2.OUT3,*.OUT1)
// This example shows how the position of the OUTPUT JCL statement affects the processing of the sysout data sets.
- DEFAULT=YES is specified on OUTPUT JCL statements OUT1 and OUT2, and
- there is no OUTPUT JCL statement with DEFAULT=YES within STEP1.
- The OUTPUT parameter is not specified on DD statements R1 and R2.
- DEFAULT=YES is specified on OUTPUT JCL statement OUT3 and OUTPUT JCL statement OUT3 is within the job step STEP2.
- The OUTPUT parameter is not specified on DD statement B1.
- OUTPUT JCL statement OUT3 is within STEP2; therefore, the system ignores the DEFAULT=YES specification on job-level OUTPUT JCL statements OUT1 and OUT2 when processing DD statement B1.
- Both of the OUTPUT JCL statements are explicitly referenced from the SYSOUT statement. Explicitly-referenced OUTPUT JCL statements can be in any previous procedure or step, before the DD statement in the current step, or at the job-level.
- Note that default OUTPUT JCL statement OUT1 is ignored when processing the data set defined by DD statement B2 because B2 explicitly references OUTPUT JCL statements OUT3 and OUT2.
- DEFAULT=YES is specified on OUTPUT JCL statements OUT1 and OUT2, and
- no OUTPUT JCL statement with DEFAULT=YES is coded within STEP3.
- The OUTPUT parameter is not specified on DD statement RP1.
In STEP3, DD statement RP2 is processed using OUTPUT statements OUT3 and OUT1. You can explicitly reference an OUTPUT JCL statement in another step if you use a fully qualified reference, such as the reference to OUTPUT statement OUT3 used on DD statement RP2.
You may explicitly reference an OUTPUT JCL statement with DEFAULT=YES coded, such as the reference to OUT1 from DD statement RP2. The system ignores the DEFAULT parameter and uses the remaining processing options according to the normal rules that apply when coding explicit references.
//STEP1 EXEC PGM=MFK
//OUT1 OUTPUT COPIES=6,DEST=NY,FORMS=BILLS
//OUT2 OUTPUT COPIES=2,DEST=KY,FORMS=LOG
//REF1 DD SYSOUT=A,OUTPUT=(*.OUT1,*.OUT2) In the example, two sets of output are created from DD statement REF1. One of the sets will go to NY and have six copies printed on the form defined as BILLS. The other set will go to KY and have two copies printed on the form defined as LOG.