Programming considerations

  1. Change the following information by changing the values in the parameter list:
    1. Copies to be printed (255 maximum)
    2. Pointer to translate table
    3. CCW translate table
  2. Do not produce separator pages if JES2 called this exit for data set select, because printer setup processing has not occurred yet.
  3. To determine if Exit 15 is to produce a data set separator, test bit X015SEPP in condition byte X015COND of the $XPL. If X015SEPP is on, create a separator. If X015SEPP is off, do not create a separator.
    The SEPDS= parameter on the PRT(nnnn), PUN(nnnn), R(nnnn).PR(m), or R(nnnn).PU(m) initialization statements indicates whether the installation wants data set separators created. The operator has the option to change the SEPDS= value by issuing the command $T device with the SEPDS= parameter specified. Before invoking Exit 15, JES2 sets bit X015SEPP to correspond to the current value of the SEPDS= parameter:
    • If SEPDS=YES, JES2 turns on bit X015SEPP.
    • If SEPDS=NO, JES2 turns off X015SEPP.
  4. The data set copy count and copy group count cannot be changed on the separator page call to Exit 15 because setup processing has already occurred. Make these changes during the data set select call to Exit 15.
  5. The data set copy group count affects separator pages this exit produces. JES2 sends the copy to the AFP printer before the calling Exit 15. The printer repeats all pages, including separator pages, on the basis of the copy group count.
  6. If Exit 15 returns a copy count or a copy group count greater than 255, JES2 writes a symptom record to the LOGREC data set to a job log and reset(s) the field(s) in error to 1.
  7. If the spooling capabilities of a remote SNA device (such as the 3790) are operating, use the $SEPPDIR macro to send a peripheral data information record (PDIR) to the device. Use the $GETBUF macro to supply this routine with HASP-type buffers and the $FREEBUF macro to release the buffers after your routine creates the separator.
  8. Use SWBTUREQ REQUEST=RETRIEVE to retrieve any parameters a user specifies on the OUTPUT JCL statement you need to build your separator page. See z/OS MVS Programming: Assembler Services Reference ABE-HSP for more details about using the scheduler JCL facility and the SWBTUREQ macro.
  9. For local printers running in JES mode or for remote printers, the TRANS= parameter on the printer's initialization statement (statement PRT(nnnn) for a local printer, and statement R(nnnn).PR(m) for a remote printer) affects data translation for that printer:
    • If the initialization statement specifies TRANS=YES, JES2 translates each line of output sent to the device regardless of the device type or the setting of the PRINTDEF TRANS= parameter.
    • If the initialization statement specifies TRANS=NO, JES2 does not translate output sent to the device regardless of the device type or the setting of the PRINTDEF TRANS= parameter.
    • If the initialization statement specifies TRANS=DEFAULT or omits TRANS=, and the PRINTDEF statement specifies TRANS=YES, and the device is either a remote printer or a local printer other than an IBM® 3211, IBM 3800, or IBM 3203 printer, JES2 translates each line of output sent to the device. Otherwise, JES2 does not translate output sent to the device.
  10. You can determine whether JES2 invoked Exit 15 to process SYSOUT created by a transaction program by:
    • Determining if field X015DSCT contains the address of a $DSCT
    • Determining if byte JCTFLAG3 is set to JCT3TPI
  11. Locating JCT Control Block Extensions

    You can locate extensions to the job control table ($JCT) control block from this exit using the $JCTXGET macro. For example, you can use these extensions to store job-related information. For more information, see z/OS JES2 Macros.