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 job submitter can also specify other parameters on the DD and OUTPUT JCL statements that the Print Interface subsystem supports.

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
 
  1. 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.
  2. 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.
  3. The Print Interface subsystem writes the transformed data to the sysout data set.
  4. 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
 
  1. 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.
  2. 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.
  3. 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.