ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/XSPDRVXT.htm

1109 lines
35 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Print Driver Exit Program</title>
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Begin Header Records ========================================== -->
<!-- Print SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
<!--End Header Records -->
<!--Edited by Kersten Nov 2001 -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Print Driver Exit Program</h2>
<div class="box" style="width: 80%;">
<br>
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="TOP" width="10%">1</td>
<td align="LEFT" valign="TOP" width="50%">Process option</td>
<td align="LEFT" valign="TOP" width="20%">Input</td>
<td align="LEFT" valign="TOP" width="20%">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="TOP">2</td>
<td align="LEFT" valign="TOP">Option specific input information to print
driver</td>
<td align="LEFT" valign="TOP">Input</td>
<td align="LEFT" valign="TOP">Char(*)</td>
</tr>
<tr>
<td align="center" valign="TOP">3</td>
<td align="LEFT" valign="TOP">Length of option specific input information</td>
<td align="LEFT" valign="TOP">Input</td>
<td align="LEFT" valign="TOP">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="TOP">4</td>
<td align="LEFT" valign="TOP">Option specific output information from print
driver</td>
<td align="LEFT" valign="TOP">Output</td>
<td align="LEFT" valign="TOP">Char(*)</td>
</tr>
<tr>
<td align="center" valign="TOP">5</td>
<td align="LEFT" valign="TOP">Length of option specific output information</td>
<td align="LEFT" valign="TOP">Input</td>
<td align="LEFT" valign="TOP">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;QSYSINC Member Name: ESPDRVXT<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>This Print Driver exit program defines how a user-defined print driver exit
program must be written in order to be used with the i5/OS open writer
program. When a user has enabled a print driver exit for a particular device, a
writer started to that device opens the writer as its main processing
program</p>
<p>This open writer program handles the scheduling of spooled files to print,
and relies on the Print Driver exit program to complete all device specific
tasks.</p>
<p>A typical scenario is:</p>
<ul>
<li>Printer writer is started by an operator.</li>
<li>The writer calls the print driver with the initialize (10) process option.
<p>The print driver initializes its environment.</p>
</li>
<li>The writer selects the first eligible file to process.
<p>The writer calls the print driver with the process file (20) process option.
The name of the spooled file is passed in the input information. After the file
has been processed by the print driver, control returns to the writer.</p>
</li>
<li>The writer waits for x seconds for another file to become available.
<p>The number of seconds (x) to wait is returned by the print driver in the
idle time field of the output information from the print driver parameter. If a
file is not available, the writer calls the print driver with the idle (30)
process option.</p>
</li>
</ul>
<br>
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
<!-- Instead, use the commented out coding below to indicate NONE. -->
<h3>Authorities and Locks</h3>
<!-- Use this if there are no authorities and locks. -->
<p>None.</p>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Process option</strong></dt>
<dd>INPUT; BINARY(4)
<p>The action for the Print Driver exit program to take. This information is
filled in by the writer. The first option should be initialize (10). This is
done when the writer is started.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap><em>10 (Initialize)</em></td>
<td align="left" valign="top">The print driver sets any initial information
with this option.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>20 (Process file)</em></td>
<td align="left" valign="top">A spooled file is available to print. The spooled
file name and other information is passed in the option specific input
information to driver exit program.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>21 (Reprocess file)</em></td>
<td align="left" valign="top">The print driver was interrupted while being
called by the process file option (20). The print driver determines the
appropriate action by using the Extract Writer Status (QSPEXTWI) API. The print
driver can be interrupted only if the allow interrupts field was specified as
*YES (in the Option specific output information parameter) and a spooled file
was deleted, held with OPTION(*IMMED), or restarted (CHGSPLFA RESTART()).</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>30 (Idle)</em></td>
<td align="left" valign="top">The writer calls the print driver after x seconds
to inform the print driver that there is not a ready file on the output queue.
The print driver can take the opportunity to end existing connections. The idle
timer (x) value is filled in by the print driver when the writer calls the
print driver with the initialize (10) process option.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>40 (Writer held)</em></td>
<td align="left" valign="top">The process has been held. The print driver does
cleanup to ensure the proper start of the writer when it is released.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>50 (Terminate)</em></td>
<td align="left" valign="top">The writer is ending. The print driver does
cleanup.</td>
</tr>
</table><br>
</dd>
<dt><strong>Option specific input information to print driver</strong></dt>
<dd>INPUT; CHAR(*)
<p>Information which is input to the Print Driver exit program from the open
writer program. For the format and description of this information, see <a
href="#HDROPTINP">Option Specific Input Information to Print Driver</a>.</p>
</dd>
<dt><strong>Length of option specific input information</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the option specific input information specified in the option
specific input information to print driver parameter.</p>
</dd>
<dt><strong>Option specific output information from print driver</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>Information which is output from the Print Driver exit program to the open
writer program. For the format and description of this information, see <a
href="#HDROPTOUT">Option Specific Output Information from Print Driver</a>.</p>
</dd>
<dt><strong>Length of option specific output information</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the option specific output information to return in the option
specific output information from the print driver parameter.</p>
</dd>
</dl>
<br>
<h3><a name="HDROPTINP">Option Specific Input Information to Print
Driver</a></h3>
<p>The following table shows the structure for the option specific input
information parameter. For more details about the fields in the following
table, see <a href="#HDRFIELDI">Field Descriptions</a>.<br>
</p>
<p><strong><a name="TBLXYZ2">Structure of the Option Specific Input Information
Parameter</a></strong></p>
<table border width="80%">
<tr>
<th align="CENTER" valign="BOTTOM" colspan="2">Offset</th>
<th align="LEFT" valign="BOTTOM" rowspan="2">Type</th>
<th align="LEFT" valign="BOTTOM" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="BOTTOM">Dec</th>
<th align="center" valign="BOTTOM">Hex</th>
</tr>
<tr>
<td align="CENTER" valign="TOP" width="10%">0</td>
<td align="CENTER" valign="TOP" width="10%">0</td>
<td align="LEFT" valign="TOP" width="20%">CHAR(16)</td>
<td align="LEFT" valign="TOP" width="60%">Writer handle</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">16</td>
<td align="CENTER" valign="TOP">10</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Writer name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">26</td>
<td align="CENTER" valign="TOP">1A</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Printer device name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">36</td>
<td align="CENTER" valign="TOP">24</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Writer output queue name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">46</td>
<td align="CENTER" valign="TOP">2E</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Writer output queue library name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">56</td>
<td align="CENTER" valign="TOP">38</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Writer message queue name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">66</td>
<td align="CENTER" valign="TOP">42</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Writer message queue library name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">76</td>
<td align="CENTER" valign="TOP">4C</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Align file</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">86</td>
<td align="CENTER" valign="TOP">56</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Spooled file handle</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">96</td>
<td align="CENTER" valign="TOP">60</td>
<td align="LEFT" valign="TOP">CHAR(16)</td>
<td align="LEFT" valign="TOP">Internal job identifier</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">112</td>
<td align="CENTER" valign="TOP">70</td>
<td align="LEFT" valign="TOP">CHAR(16)</td>
<td align="LEFT" valign="TOP">Internal spooled file identifier</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">128</td>
<td align="CENTER" valign="TOP">80</td>
<td align="LEFT" valign="TOP">CHAR(26)</td>
<td align="LEFT" valign="TOP">Qualified job name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">154</td>
<td align="CENTER" valign="TOP">9A</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Spooled file name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">164</td>
<td align="CENTER" valign="TOP">A4</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Spooled file number</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">168</td>
<td align="CENTER" valign="TOP">A8</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Starting page number</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">172</td>
<td align="CENTER" valign="TOP">AC</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Drawer for separator pages</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">176</td>
<td align="CENTER" valign="TOP">B0</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Number of job separators</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">180</td>
<td align="CENTER" valign="TOP">B4</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Number of file separators</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">184</td>
<td align="CENTER" valign="TOP">B8</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Termination type</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">188</td>
<td align="CENTER" valign="TOP">BC</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">Current writer form type</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">
198</td>
<td align="CENTER" valign="TOP">C6</td>
<td align="LEFT" valign="TOP">CHAR(8)</td>
<td align="LEFT" valign="TOP">Job system name</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">206</td>
<td align="CENTER" valign="TOP">CE</td>
<td align="LEFT" valign="TOP">CHAR(7)</td>
<td align="LEFT" valign="TOP">Spooled file create date</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">213</td>
<td align="CENTER" valign="TOP">D5</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">Reserved</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">214</td>
<td align="CENTER" valign="TOP">D6</td>
<td align="LEFT" valign="TOP">CHAR(6)</td>
<td align="LEFT" valign="TOP">Spooled file create time</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">220</td>
<td align="CENTER" valign="TOP">DC</td>
<td align="LEFT" valign="TOP">CHAR(23)</td>
<td align="LEFT" valign="TOP">Reserved</td>
</tr>
</table>
<br>
<h3><a name="HDRFIELDI">Field Descriptions</a></h3>
<p><strong>Align file.</strong> Specifies how to control the forms
alignment.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*WTR</em></td>
<td align="left" valign="top">The writer keeps track of the output that is
printed and issues a forms alignment message whenever it determines that forms
may need to be aligned.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*FILE</em></td>
<td align="left" valign="top">The forms alignment message is issued for every
file that has *YES specified for the align page prompt.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*FIRST</em></td>
<td align="left" valign="top">The forms alignment message is issued only for
the first file printed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SKIP</em></td>
<td align="left" valign="top">The forms alignment message is skipped for the
next file.</td>
</tr>
</table>
<p><strong>Current writer form type.</strong> The form type the writer is
currently printing.</p>
<p><strong>Drawer for separator pages.</strong> The paper drawer to be selected
when printing the job and file separators.</p>
<p><strong>Internal job identifier.</strong> The internal job identifier of the
job that created the spooled file.</p>
<p><strong>Internal spooled file identifier.</strong> The internal spooled file
identifier of the spooled file being processed.</p>
<p><strong>Job system
name.</strong> The name of the system where the job that created the spooled
file ran. </p>
<p><strong>Number of file separators.</strong> The number of the file
separators to be printed.</p>
<p><strong>Number of job separators.</strong> The number of the job separators
to be printed.</p>
<p><strong>Printer device name.</strong> The name of the printer device.</p>
<p><strong>Qualified job name.</strong> The qualified job name for the job that
created the file.</p>
<p><strong>Reserved.</strong> Reserved to maintain compatibility with the
writer transform exit and the Host Print Transform (QWPZHPTR) API.</p>
<p><strong>Spooled file create
date.</strong> The date the spooled file was created on the system in the
CYYMMDD format. See field Date file opened in API QUSRSPLA under field
descriptions for more information on the date format.</p>
<p><strong>Spooled file create time.</strong> The time the spooled file was
created on the system in the HHMMSS format. See field Time file opened in API
QUSRSPLA under field descriptions for more information on the time format.</p>
<p><strong>Spooled file handle.</strong> The handle for the spooled file to be
printed.</p>
<p><strong>Spooled file name.</strong> The name of the spooled file being
processed.</p>
<p><strong>Spooled file number.</strong> The number of the spooled file being
processed.</p>
<p><strong>Starting page number.</strong> The number of the page to start
printing.</p>
<p><strong>Termination type.</strong> The type of termination for the
writer.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>1 (normal)</em></td>
<td align="left" valign="top">The writer ended normally.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2 (immediate)</em></td>
<td align="left" valign="top">The writer ended immediately.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3 (abnormal)</em></td>
<td align="left" valign="top">The writer ended abnormally.</td>
</tr>
</table>
<p><strong>Writer handle.</strong> The handle to the writer job.</p>
<p><strong>Writer name.</strong> The name of the writer.</p>
<p><strong>Writer message queue library name.</strong> The name of the library
in which the writer message queue resides.</p>
<p><strong>Writer message queue name.</strong> The name of the message queue to
which the writer issues messages.</p>
<p><strong>Writer output queue library name.</strong> The name of the library
in which the output queue resides.</p>
<p><strong>Writer output queue name.</strong> The name of the output queue from
which the writer is processing spooled files.</p>
<p><a href="#TBLTXYZ">Fields Defined for the Option Specific Input Information
Parameter</a> presents, in the same order, all the fields previously described
in the <a href="#TBLXYZ2">Structure of the Option Specific Input Information
Parameter</a>. Each entry indicates if a field is defined for a particular
process option as defined by the process option parameter. Possible values are
Y for yes, and N for no.<br>
</p>
<p><strong><a name="TBLTXYZ">Fields Defined for the Option Specific Input
Information Parameter</a></strong></p>
<table border>
<!-- cols="20 10 10 10 10 10 10 20" -->
<tr>
<th align="LEFT" valign="BOTTOM">Field</th>
<th align="CENTER" valign="BOTTOM">Initialize (10)</th>
<th align="CENTER" valign="BOTTOM">Process file (20)</th>
<th align="CENTER" valign="BOTTOM">Re- process (21)</th>
<th align="CENTER" valign="BOTTOM">Idle (30)</th>
<th align="CENTER" valign="BOTTOM">Writer held (40)</th>
<th align="CENTER" valign="BOTTOM">Terminate (50)</th>
<th align="LEFT" valign="BOTTOM">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer handle</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">For use with new writer APIs.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">Name specified on STRPRTWTR command.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Printer device name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">The name of the printer the writer is started
to.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer output queue name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">The name of the output queue that the writer is
processing.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer output library name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">The library in which the writer output queue
resides.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer message queue name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">Name of the message queue for the started
writer.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Writer message queue library name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">Name of the library in which the message queue
resides.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Align file</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">Value from STRPRTWTR command.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Spooled file handle</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">For use with new writer APIs.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Internal job identifier</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">For use with existing spool APIs.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Internal spooled file identifier</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">For use with existing Spool APIs.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Qualified job name</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Job owning spooled file</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Spooled file name</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Name of spooled file being processed</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Spooled file number</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Number of spooled file being processed</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Starting page number</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Page at which to start printing</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Drawer for separator pages</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Paper drawer for separator pages</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Number of job separators</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Number of job separators to print</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Number of file separators</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Number of file separators to print</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Termination type</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="LEFT" valign="TOP">This is how the writer has been ended (normal,
immediate, or abnormal for unrecoverable error).</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Current writer form type</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Form type writer is currently processing.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">
Job system name</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Name of the system the job resides on.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Spooled file create date</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Date the spooled file was created.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Reserved</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Reserved for compatibility.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Spooled file create time</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Time the spooled file was created.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDROPTOUT">Option Specific Output Information from Print
Driver</a></h3>
<p>The following table shows the structure for the option specific output
information parameter. For more details about the fields in the following
table, see <a href="#HDRFIELDO">Field Descriptions</a>.</p>
<p><strong><a name="TBLXYZ3">Structure of the Option Specific Output
Information Parameter</a></strong></p>
<table border width="80%">
<tr>
<th align="CENTER" valign="BOTTOM" colspan="2">Offset</th>
<th align="LEFT" valign="BOTTOM" rowspan="2">Type</th>
<th align="LEFT" valign="BOTTOM" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="BOTTOM">Dec</th>
<th align="center" valign="BOTTOM">Hex</th>
</tr>
<tr>
<td align="CENTER" valign="TOP" width="10%">0</td>
<td align="CENTER" valign="TOP" width="10%">0</td>
<td align="LEFT" valign="TOP" width="20%">BINARY(4)</td>
<td align="LEFT" valign="TOP" width="60%">Error code</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">4</td>
<td align="CENTER" valign="TOP">4</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Initial status</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">8</td>
<td align="CENTER" valign="TOP">8</td>
<td align="LEFT" valign="TOP">BINARY(4)</td>
<td align="LEFT" valign="TOP">Idle timer</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">12</td>
<td align="CENTER" valign="TOP">C</td>
<td align="LEFT" valign="TOP">CHAR(1)</td>
<td align="LEFT" valign="TOP">Allow interrupt</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">13</td>
<td align="CENTER" valign="TOP">D</td>
<td align="LEFT" valign="TOP">CHAR(3)</td>
<td align="LEFT" valign="TOP">Reserved</td>
</tr>
<tr>
<td align="CENTER" valign="TOP">16</td>
<td align="CENTER" valign="TOP">10</td>
<td align="LEFT" valign="TOP">CHAR(10)</td>
<td align="LEFT" valign="TOP">LAN driver name</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRFIELDO">Field Descriptions</a></h3>
<p><strong>Allow interrupt.</strong> Whether to allow the writer to interrupt
the print driver. This determines whether Hold spooled file (HLDSPLF) with
option *IMMED, Delete spooled file (DLTSPLF), or Change spooled file attributes
(CHGSPLFA) changing the Restart printing (RESTART) parameter causes the print
driver to be interrupted before it returns to the writer normally. If the print
driver program allows interrupts, it is necessary that the print driver program
is written such that it is able to resume processing following an
interruption.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Do not allow interrupts.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Allow interrupts.</td>
</tr>
</table>
<p><strong>Error code.</strong> The error code returned by the print driver
after each call.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">No error occurred.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Writer ending normally</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Writer ending immediately</td>
</tr>
<tr>
<td align="left" valign="top"><em>10</em></td>
<td align="left" valign="top">Processing of the file was interrupted (Note:
This error code should be used when the driver program has detected a Hold
Writer (HLDWTR) command with option *PAGEEND or *CNTRLD, and wishes to continue
processing the spooled file after the writer is released.)</td>
</tr>
</table>
<p><strong>Idle timer.</strong> The number of seconds to allow between spooled
files. A value of 0 indicates that no calls are made to the print driver with
the Idle (30) process option.</p>
<p><strong>Initial status.</strong> The initial status for the spooled file
selected by the writer.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>1 (pending)</em></td>
<td align="left" valign="top">The spooled file is being converted.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2 (writing)</em></td>
<td align="left" valign="top">The spooled file is being selected by the
writer.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3 (sending)</em></td>
<td align="left" valign="top">The spooled file is being sent to a remote
system</td>
</tr>
</table>
<p><strong>LAN driver name.</strong> The name of the LAN driver to process the
spooled files.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><a href="#TBLXYZ1">Fields Defined for the Option Specific Output Information
Parameter</a> presents, in the same order, all the fields previously described
in the <a href="#TBLXYZ3">Structure of the Option Specific Output Information
Parameter</a>. Each entry indicates if a field is used with a particular
process option as defined by the Process Option parameter. Possible values are
Y for yes, and N for no.<br>
</p>
<p><strong><a name="TBLXYZ1">Fields Defined for the Option Specific Output
Information Parameter</a></strong></p>
<table border>
<!-- cols="18 10 10 11 10 10 11 20" -->
<tr>
<th align="LEFT" valign="BOTTOM">Field</th>
<th align="CENTER" valign="BOTTOM">Initialize (10)</th>
<th align="CENTER" valign="BOTTOM">Process file (20)</th>
<th align="CENTER" valign="BOTTOM">Re-process (21)</th>
<th align="CENTER" valign="BOTTOM">Idle (30)</th>
<th align="CENTER" valign="BOTTOM">Writer held (40)</th>
<th align="CENTER" valign="BOTTOM">Terminate (50)</th>
<th align="LEFT" valign="BOTTOM">Description</th>
</tr>
<tr>
<td align="LEFT" valign="TOP">Error code</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">This indicates if the driver exit program has
encountered an error. A value 0 indicates no error. A value of 1 causes the
writer to wait for all current print requests to complete, and then call the
print driver with an normal termination. A value of 2 causes the writer to
immediately call the print driver with an immediate termination type. A value
of 10 causes the writer to call the print driver with a reprocess file (21)
process option for the currently active file.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Initial status</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Specifies the initial status of spooled files
that are selected for processing by the writer.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Idle timer</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Specifies the time to wait in seconds before
calling the print driver with the Idle (30) process option. A value of 0
indicates that no calls are made with the Idle process option.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">Allow interrupt</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Allows the writer to interrupt the print driver
during a call from the writer to the print driver.</td>
</tr>
<tr>
<td align="LEFT" valign="TOP">LAN driver name</td>
<td align="CENTER" valign="TOP">Y</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="CENTER" valign="TOP">N</td>
<td align="LEFT" valign="TOP">Specifies the name of the local area network
(LAN) and the name of the printer driver it is started to.</td>
</tr>
</table>
<br>
<hr>
Exit program introduced: V3R7
<hr>
<table cellpadding="2" cellspacing="2" align="center">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"print1.htm">Print APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</body>
</html>