Using the Print Interface subsystem
A z/OS® job submitter
can
specify the SUBSYS parameter on the DD JCL statement to request that
the Print Interface subsystem process output data created by the batch
application. SUBSYS subparameters are:
- Name of the Print Interface subsystem
- Name of the printer definition to use
- Infoprint Server job attributes
The Print Interface subsystem transforms data from one format to another (if transforms are requested in the printer definition) and allocates a sysout data set on the JES spool. The Print Interface subsystem can be used to print on any type of printer.
When you create a printer definition to be used with the Print Interface subsystem, you do not need to specify any special fields. Therefore, if you already created a printer definition, no changes are required.
Typically, you create one printer definition for
each printer. However,
when you create printer definitions to be used just with the Print
Interface subsystem, you can simplify administration by creating only
one printer definition for all printers that share attributes. If
you create one printer definition for printing to several printers,
the job submitter must specify the JCL parameters that are required
to direct the output to the desired printer:
- If you create
one PSF printer
definition for all printers that are controlled by PSF, the
job submitter must specify the JCL parameters that correspond to the
JES work-selection criteria for that printer. For example, the output
class and destination name. Example: This example shows the DD and OUTPUT statements that can be used to direct output to a specific PSF printer with a printer definition named anyafpprinter:
//JOB1 JOB … //STEP1 EXEC PGM=USERA //OUTDS1 OUTPUT CLASS=F,DEST=PRT003 //DD1 DD SUBSYS=(AOP1,'anyafpprinter'),OUTPUT=(*.OUTDS1) - If you create one IP PrintWay™ printer
definition for all printers that use the LPR protocol, the job submitter
must specify the printer's host name or IP address and print queue
name. Example: This example shows the DD and OUTPUT statements that can be used to direct output to a specific printer with a printer definition named anypsprinter:
//JOB2 JOB … //STEP1 EXEC PGM=USERA //OUTDS1 OUTPUT DEST='IP:PRINTER1.XYZ.COM',PRTQUEUE='queue' //DD1 DD SUBSYS=(AOP1,'anypsprinter'),OUTPUT=(*.OUTDS1) - If you create one IP PrintWay printer
definition for all printers that use the direct sockets protocol,
the job submitter must specify the printer's host name or IP address
and port number on the OUTPUT JCL statement. Example: This example shows the DD and OUTPUT statements that can be used to direct output to a specific printer with a printer definition named anynetprinter:
//JOB2 JOB … //STEP1 EXEC PGM=USERA //OUTDS1 OUTPUT DEST='IP:PRINTER2.XYZ.COM',PORTNO='2501' //DD1 DD SUBSYS=(AOP1,'anynetprinter'),OUTPUT=(*.OUTDS1)
Guideline: Create one printer
definition
for each printer so that users can use all job submission methods
to print on the printer, including those job submission methods that
do not permit the job submitter to specify the JES output class, destination
name, or IP address. For example, you cannot use the lp command
to specify the JES output class or destination name. And, when the
IP PrintWay basic mode resubmit
for filtering option is used, the printer's host name or
IP address cannot be specified on the OUTPUT JCL statement.
When
the Print Interface subsystem is used, JES always assigns each data
set to a separate JES output group. This is true even if the data
set would otherwise be in the same JES output group as other data
sets in the job step. Therefore, if the printer is controlled by IP PrintWay, these results occur:
- Data sets in the same job step might not print together or might not print in the original order.
- Data sets in the same job step are always sent in separate emails.
- If you currently add a separator page before the first data set in a JES output group, that separator page now prints before each data set.
Related task: Create
a default Infoprint Server
printer definition, as described in Creating the Infoprint Server default printer definition.
Procedure for specifying attributes
When you create a printer
definition to be used with the Print
Interface subsystem, the fields in these sections of the printer definition
have special considerations:
- Main section:
- Printer definition name field: To use the Print Interface subsystem, the job submitter must specify the printer definition name in either the SUBSYS or FSSDATA JCL parameter. This name is case-sensitive. Therefore, the job submitter must enter it exactly as you specify it in the printer definition.
- Use DEST, CLASS, and FORMS for IP PrintWay printer selection field: The Print Interface subsystem ignores this field. The job submitter must specify the name of the printer definition. If none is specified, the Infoprint Server default printer definition is used. For information, see Creating the Infoprint Server default printer definition.
- Allocation section: The job submitter
can
specify JCL parameters and job attributes that correspond to all of
the attributes in this section of the printer definition. Therefore,
these attributes are not required. The JCL parameters and job attributes
that are specified during job submission override the attributes that
are specified in the printer definition. Guideline: Even though the job submitter can specify these same attributes in JCL parameters, specify default values for required JCL parameters, for example:
- In a PSF printer definition, if the JES output class and destination name are JES work-selection criteria for the printer, specify the CLASS and DEST fields. If you do, the job submitter can omit the CLASS and DEST parameters on the OUTPUT JCL statement.
- In an IP PrintWay printer definition, if the JES output class is the JES work-selection criteria for IP PrintWay, specify the CLASS field. If you do, the job submitter can omit the CLASS parameter on the OUTPUT JCL statement.
- Processing section:
- Filter field: Specify transform filters. For information, see Planning printer definitions for transforms.
- Resubmit
for filtering field: IP PrintWay ignores
this field
because the Print Interface subsystem already transformed the data.
Guideline: If you run IP PrintWay basic mode, select this field so that IP PrintWay can transform data sets.
- Maximum document size field: If the transformed data written to the sysout data set exceeds the number of bytes specified in this field, the Print Interface subsystem does not allocate any data sets in the job step and returns a JCL error.
- Maximum copies and xxxx-supported fields: The Print Interface subsystem validates that values in the corresponding JCL parameters and job attributes are supported. If not, the Print Interface subsystem does not allocate any data sets in the job step and returns a JCL error. For more information, see Validating that documents can print as requested.
- NetSpool Options section: NetSpool does not use the Print Interface subsystem. Therefore, the Print Interface subsystem ignores attributes that are specified in this section.
- NetSpool End-of-File section: NetSpool does not use the Print Interface subsystem. Therefore, the Print Interface subsystem ignores attributes that are specified in this section.
- IP PrintWay Options section: The Dataset grouping field does not apply because JES assigns each data set to a different JES output group.
- Protocol section: You must complete the required fields. However, the DEST=IP:, PRTQUEUE, and PORTNO parameters on the OUTPUT JCL statement override the printer's host name or IP address, print queue name, and port number.
Example 1. A PSF printer definition
These ISPF panels show a printer
definition that can be used for
printing to a PSF-controlled printer with the Print Interface subsystem.
Only a portion of some ISPF panels are shown.
PSF Printer Definition
Printer definition name . myafpprinter
Description . _______________________________________________________ (extend)
Location. . . Building 003 (extend)
Component name Custom values
Section (enter to list) (enter to customize)
Allocation => _________________ => *
Processing => _________________ => *
NetSpool options => _________________ => __
NetSpool end-of-file => _________________ => __
NetSpool LU name . ________ LU classes . . __ __ __ __ __ __ (extend)
Allocation
Printer definition name . myafpprinter
Spool allocation values:
CLASS . . . . F GROUPID . . ________
DEST. . . . . PRT003 LINECT. . . ___
⋮
Processing
Printer definition name . myafpprinter
⋮
Supported data formats and associated filters:
Data format: Filter:
/ Line data __________________________________________________ (extend)
/ MO:DCA-P __________________________________________________ (extend)
/ PostScript ps2afp.dll %filter-options -r 300 (extend)
/ Text __________________________________________________ (extend)
/ PCL pcl2afp.dll -c letter_300 %filter-options (extend)
/ PDF ps2afp.dll %filter-options -r 300 (extend)
/ SAP sap2afp.dll %filter-options -r 300 (extend)
/ XML __________________________________________________ (extend)
_ TIFF __________________________________________________ (extend)
_ JPEG __________________________________________________ (extend)
_ Other __________________________________________________ (extend)
⋮
Maximum document size . __________
Maximum copies. . . . . _____
Forms supported . . . . ________ ________ ________ ________ ________
Duplex supported. . . . / Simplex / Duplex / Tumble
Print-error reporting supported . / Character / Position
⋮
Result: A job submitter
can use these
JCL statements to print a PostScript document
on this printer:
//JOB1 JOB ...
//STEP1 EXEC PGM=USERA
//OUTDS1 OUTPUT FORMDEF=MYFDEF,USERLIB=MYLIB
//DD1 DD SUBSYS=(AOP1,'myafpprinter','filter-options="-a io1"'),
// DSNAME=&&MYDATA,OUTPUT=*.OUTDS1
- The Print Interface subsystem accepts line data, AFP data, PCL data, PostScript data, PDF data, SAP data, and XML data. It calls the associated transform if a filter is specified. It passes any transform options, such as the -a option, that were specified in the filter-options attribute in the SUBSYS JCL parameter to the transform.
- The Print Interface subsystem allocates a sysout data set on the JES spool with output class F, destination name PRT003, and data set name MYDATA. JES defaults apply for other output parameters that are not specified in the JCL or in the Allocation section of the printer definition. For example, the JES default form name is used.
- The Print Interface subsystem writes the transformed data to the sysout data set.
- The PSF printer that prints data sets in class F with destination name PRT003 selects the data set from the JES spool and prints it, using form definition F1MYFDEF in library MYLIB to format the data.
Example 2. An IP PrintWay printer definition
These ISPF panels show a printer
definition that can be used for
printing to an IP PrintWay controlled printer that accepts PCL data
with the Print Interface subsystem. Only a portion of some ISPF panels
are
shown.
IP PrintWay Printer Definition
Printer definition name . mypclprinter
Description . _______________________________________________________ (extend)
Location. . . Atlanta (extend)
Component name Custom values
Section (enter to list) (enter to customize)
Allocation => _________________ => *
Processing => _________________ => *
NetSpool options => _________________ => __
NetSpool end-of-file => _________________ => __
IP PrintWay options => _________________ => __
Protocol => _________________ => *
_ Use DEST, CLASS, and FORMS for IP PrintWay printer selection
NetSpool LU name . ________ LU classes . . __ __ __ __ __ __ (extend)
Allocation
Printer definition name . mypclprinter
Spool allocation values:
CLASS . . . . P GROUPID . . ________
DEST. . . . . ________ LINECT. . . ___
⋮
Processing
Printer definition name . mypclprinter
⋮
Supported data formats and associated filters:
Data format: Filter:
/ Line data afpxpcl.dll -c US %filter-options (extend)
/ MO:DCA-P afpxpcl.dll -c US %filter-options (extend)
_ PostScript _______________________________________________________ (extend)
/ Text aopfiltr.so (extend)
/ PCL _______________________________________________________ (extend)
_ PDF _______________________________________________________ (extend)
_ SAP _______________________________________________________ (extend)
_ XML _______________________________________________________ (extend)
_ TIFF _______________________________________________________ (extend)
_ JPEG _______________________________________________________ (extend)
_ Other _______________________________________________________ (extend)
/ Resubmit for filtering
⋮
Maximum document size . __________
Maximum copies. . . . . _____
Forms supported . . . . ________ ________ ________ ________ ________
Duplex supported. . . . / Simplex / Duplex / Tumble
Print-error reporting supported . / Character / Position
⋮
LPR Protocol
Printer definition name . mypclprinter
Operator security profile
. . . ____________________________________________________________
Printer IP address . printer1.xyz.com (extend)
Print queue name . . text (extend)
⋮
Result: A job submitter
can use these
JCL statements to print AFP data
to the printer:
//JOB1 JOB ...
//STEP1 EXEC PGM=USERA
//OUTDS1 OUTPUT FORMDEF=MYFDEF,USERLIB=MYLIB
//DD1 DD SUBSYS=(AOP1,'mypclprinter'),DSNAME=&&MYDATA,
// OUTPUT=*.OUTDS1
- The Print Interface subsystem accepts text data, line data, AFP data, or PCL data and calls the associated transform. The AFP to PCL transform uses form definition F1MYFDEF in library MYLIB to format the data.
- The subsystem allocates a sysout data set on the JES spool in JES output class P with data set name MYDATA. JES defaults are used for output parameters that are not specified in the JCL or in the Allocation section of the printer definition.
- If IP PrintWay is customized to select data sets in output class P, IP PrintWay selects the data set from the JES spool and sends the data to the printer whose address is specified in printer definition mypclprinter.