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

1811 lines
58 KiB
HTML

<!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>Writer Transform 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>Writer Transform Exit Program</h2>
<div class="box" style="width: 95%;">
<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 transform
exit</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 to
transform exit</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">Spooled file data buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Length of spooled file data buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Option specific output information from transform
exit</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Length of option specific output information from
transform exit</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Length of option specific output information
available from transform exit</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Transformed data buffer</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">10</td>
<td align="left" valign="top">Length of transformed data buffer</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">11</td>
<td align="left" valign="top">Length of transformed data available</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;QSYSINC Member Name: ESPTRNXT<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Writer Transform exit program describes the interface between a
user-defined transform exit program (transform exit) and an i5/OS printer
writer (writer).</p>
<p><strong>Note:</strong> This exit interface can also be used for remote
writers and on the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
<p>A transform exit program can be enabled by an operator when a writer is
started to an output queue. The writer handles the scheduling of spooled files
to print, and relies on the transform exit program to complete transforming of
the data necessary to print the file. The data is processed by the writer as
DEVTYPE(*USERASCII).</p>
<p>For informational purposes, the example below is provided to show the
interaction between the printer writer and the transform exit program.</p>
<ol>
<li>Printer writer is started by an operator.
<p>This ties a specific output queue to a specific printer. In this case, the
printer is capable of accepting the Printer Control Language (PCL) data
stream.</p>
</li>
<li>The writer calls the transform exit program with the initialize (10)
process option.
<p>The transform exit program creates its work spaces and returns to the writer
a successful return code.</p>
</li>
<li>The writer selects the first eligible file to process.
<p>The writer calls the transform exit program with the process file (20)
process option. The name and identifier of the spooled file are passed in the
input information.</p>
<p>The transform exit program determines if it will transform the file, returns
to the writer a successful return code and an indication whether it will
transform the file.</p>
</li>
<li>The writer calls the transform exit program with the transform data process
option (30).
<p>The writer calls the transform exit program, passing the data to transform.
The transform exit program transforms the data and passes it back to the
writer. This step happens repeatedly, until the entire spooled file has been
passed to the transform exit program.</p>
</li>
<li>The writer calls the transform exit program with the end file process
option (40).
<p>The transform exit program returns to the writer any remaining data to be
sent to the printer.</p>
</li>
<li>The writer selects the next eligible spooled file from the output queue.
<p>Steps starting with the process file option are repeated.</p>
</li>
<li>The operator ends the printer writer.
<p>The writer calls the transform exit program with the terminate process
option (50). The transform exit program cleans up any work spaces that it has
created and returns to the writer.</p>
</li>
</ol>
<p>The transform program should be capable of handling the case where the
program could lose control while processing a spooled file.</p>
<p><strong>Note:</strong> This could happen when the spooled file being
processed is held using the Hold Spooled File (HLDSPLF) command, deleted using
the Delete Spooled File (DLTSPLF) command, or a restart page specified using
the Change Spooled File Attributes (CHGSPLA) command.</p>
<p>When this happens, the transform program will be called with the end file
(40) process option. The transform program is expected to be able to continue
processing normally.</p>
<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 transform 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 transform exit program 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 are passed in the Option specific input
information parameter to the transform exit program. The transform exit program
decides whether to transform the data and sets the Transform file field in the
output information structure. The transform exit may pass data to the writer.
This data is treated as open time commands and is sent to the printer before
the spooled file is printed.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>30 (Transform data)</em></td>
<td align="left" valign="top">The writer calls the transform exit program after
reading one or more buffers of data from the spooled file. The data is in the
Spooled file data buffer. This process is repeated for a spooled file until all
data has been processed. Alignment data could also be returned.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>40 (End file)</em></td>
<td align="left" valign="top">The writer calls the transform exit to inform the
transform exit that all data for the spooled file has been passed. No data is
passed on this call. The transform exit may pass additional data to the writer
as an append to the end of the printed data.
<p>This option is used even if the transform exit did not transform the spooled
file.</p>
</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>50 (Terminate)</em></td>
<td align="left" valign="top">The writer is ending. The transform exit will do
cleanup.</td>
</tr>
</table><br>
</dd>
<dt><strong>Option specific input information to transform exit</strong></dt>
<dd>INPUT; CHAR(*)
<p>Information which is input to the transform exit program from the writer.
For the format and description of this information, see <a href=
"#HDRtopTINP">Option Specific Input Information to Transform Exit
Program</a>.</p>
</dd>
<dt><strong>Length of option specific input information to transform
exit</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the option specific input information specified in the Option
specific input information to transform exit program parameter.</p>
</dd>
<dt><strong>Spooled file data buffer</strong></dt>
<dd>INPUT; CHAR(*)
<p>The spooled file data to be transformed by the transform exit program.</p>
<p>The space is created and destroyed by the writer.</p>
</dd>
<dt><strong>Length of spooled file data buffer</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the spooled file data specified in the Spooled file data
buffer parameter.</p>
</dd>
<dt><strong>Option specific output information from transform
exit</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>Information which is output from the transform exit program to the writer.
For the format and description of this information, see <a href=
"#HDRtopTOUT">Option Specific Output Information From Transform Exit</a>.</p>
</dd>
<dt><strong>Length of option specific output information from transform
exit</strong></dt>
<dd>INPUT; BINARY(4)
<p>The size, in bytes, of the option specific output information buffer.</p>
</dd>
<dt><strong>Length of option specific output information available from
transform exit</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>The length of the option specific output information available. If this
length is less than or equal to the length of the option specific output
information, all available information has been returned. If this length is
greater than the length of the option specific output information, only data up
to the length provided is returned in the option specific output information
buffer.</p>
</dd>
<dt><strong>Transformed data buffer</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>Spooled file data which has been transformed by the transform exit program.
The data in this buffer will be sent by the writer to the printer. It will not
be validity checked or syntax checked by the writer. If the print data is not a
valid data stream for the device, errors will be returned from the device. The
data is processed by the writer as DEVTYPE(*USERASCII).</p>
<p>Alignment data, if requested, is also returned in the transformed data
buffer. The lengths and offsets of the alignment information is returned in the
option specific output information. For the format and description of this
information, see <a href="#HDRtopTOUT">Option Specific Output Information From
Transform Exit</a>.</p>
<p>The space is created and destroyed by the writer.</p>
</dd>
<dt><strong>Length of transformed data buffer</strong></dt>
<dd>INPUT; BINARY(4)
<p>The size, in bytes, of the transformed data buffer.</p>
</dd>
<dt><strong>Length of transformed data available</strong></dt>
<dd>OUTPUT; BINARY(4)
<p>The length of the transformed data that is available to be returned in the
transformed data buffer. If this length is less than or equal to the length of
the transform data buffer, all available information has been returned. If this
length is greater than the length of the transformed data buffer, only data up
to the length provided was returned in the transformed data buffer.</p>
</dd>
</dl>
<p><a href="#TBLA1">Parameters Used by the Printer Writer or Transform Exit
Program</a> presents, in the same order, all the required parameters previously
described. Each entry indicates if a parameter is to be used by the writer or
transform exit program. Possible values are Y and N.<br>
</p>
<p><strong><a name="TBLA1">Parameters Used by the Printer Writer or Transform
Exit Program</a></strong></p>
<table border cellpadding="5">
<!-- cols="20 10 10 10 10 10 30" -->
<tr>
<th align="left" valign="BOTTOM">Parameter</th>
<th align="center" valign="BOTTOM">Initialize (10)</th>
<th align="center" valign="BOTTOM">Process file (20)</th>
<th align="center" valign="BOTTOM">Transform data (30)</th>
<th align="center" valign="BOTTOM">End file (40)</th>
<th align="center" valign="BOTTOM">Terminate (50)</th>
<th align="left" valign="BOTTOM">Description</th>
</tr>
<tr>
<td align="left" valign="top">Process option</td>
<td align="center" valign="top">10</td>
<td align="center" valign="top">20</td>
<td align="center" valign="top">30</td>
<td align="center" valign="top">40</td>
<td align="center" valign="top">50</td>
<td align="left" valign="top"><br>
</td>
</tr>
<tr>
<td align="left" valign="top">Option specific input information to transform
exit</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">See description of this parameter.</td>
</tr>
<tr>
<td align="left" valign="top">Length of option specific input information</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">Length of option specific input information</td>
</tr>
<tr>
<td align="left" valign="top">Spooled file data buffer</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">Contains data only on spooled data to transform
option.</td>
</tr>
<tr>
<td align="left" valign="top">Length of spooled file data buffer</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The length of spooled data buffer.</td>
</tr>
<tr>
<td align="left" valign="top">Option specific output information from transform
exit</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">See description of this parameter.</td>
</tr>
<tr>
<td align="left" valign="top">Length of option specific output information</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">Length of option specific output information</td>
</tr>
<tr>
<td align="left" valign="top">Length of option specific output information
available</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 number of bytes of option specific output
information that is available. If this is greater than the length of the
buffer, only information that can fit in the option specific output information
buffer will be returned.</td>
</tr>
<tr>
<td align="left" valign="top">Transformed data buffer</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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">This buffer can contain data to send to the
device before the transformed data (Start of file option) or after the
transformed data (End of file option), as well as transformed data (Spooled
data to transform option).</td>
</tr>
<tr>
<td align="left" valign="top">Length of transformed data buffer</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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">The size, in bytes, of the transformed data
buffer.</td>
</tr>
<tr>
<td align="left" valign="top">Length of transformed data available</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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">The number of bytes of transformed data that is
available.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRtopTINP">Option Specific Input Information to Transform Exit
Program</a></h3>
<p>The following table shows the structure for the option specific information
input parameter. For more details about the fields in the following table see,
<a href="#HDRTFIELDI">Field Descriptions</a>.</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">Reserved</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">CHAR(12)</td>
<td align="left" valign="top">Reserved</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">End file type</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(1)</td>
<td align="left" valign="top">Return alignment data</td>
</tr>
<tr>
<td align="center" valign="top">199</td>
<td align="center" valign="top">C7</td>
<td align="left" valign="top">CHAR(5)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">204</td>
<td align="center" valign="top">CC</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of complete pages</td>
</tr>
<tr>
<td align="center" valign="top">208</td>
<td align="center" valign="top">D0</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Workstation customizing object name</td>
</tr>
<tr>
<td align="center" valign="top">218</td>
<td align="center" valign="top">DA</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Workstation customizing object library</td>
</tr>
<tr>
<td align="center" valign="top">228</td>
<td align="center" valign="top">E4</td>
<td align="left" valign="top">CHAR(15)</td>
<td align="left" valign="top">Manufacturer type and model</td>
</tr>
<tr>
<td align="center" valign="top">
243</td>
<td align="center" valign="top">F3</td>
<td align="left" valign="top">CHAR(31)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">274</td>
<td align="center" valign="top">112</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">282</td>
<td align="center" valign="top">11A</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">289</td>
<td align="center" valign="top">121</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">290</td>
<td align="center" valign="top">122</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Spooled file create time</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRTFIELDI">Field Descriptions</a></h3>
<p><strong>Current writer form type.</strong> The form type the writer is
currently printing.</p>
<p>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
<p><strong>End file type.</strong> The type of ending for the file.</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">Processing of the file ends normally.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2 (immediate)</em></td>
<td align="left" valign="top">Processing of the file ends immediately.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3 (page end)</em></td>
<td align="left" valign="top">Processing of the file ends at the end of the
current page.</td>
</tr>
</table>
<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>Manufacturer type and model.</strong> The manufacturer, type and
model for a printer using transform support.</p>
<p><strong>Number of complete pages.</strong> The number of complete pages that
are contained in the data to be transformed.</p>
<p><strong>Printer device name.</strong> The name of the printer device.</p>
<p><strong>Qualified job name.</strong> The qualified job name of the job that
created the spooled file.</p>
<p><strong>Reserved.</strong> This field is reserved.</p>
<p><strong>Return alignment data.</strong> Whether the transform should return
data to the caller which can be used for alignment purposes.</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 return alignment information.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Return alignment information.</td>
</tr>
</table>
<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>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</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>Termination type.</strong> The type of termination by the
writer:</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>Workstation customizing object library.</strong> The library
containing the workstation customizing object.</p>
<p><strong>Workstation customizing object name (WSCST).</strong> The name of an
object that consists of a table of attributes used to customize a given ASCII
device.</p>
<p><strong>Writer handle.</strong> The handle to the writer job.</p>
<p>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
<p><strong>Writer message queue library name.</strong> The name of the library
in which the writer message queue resides.</p>
<p>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
<p><strong>Writer message queue name.</strong> The name of the message queue to
which the writer issues messages.</p>
<p>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
<p><strong>Writer name.</strong> The name of the writer.</p>
<p>This field is set to blanks when the transform exit program is called from
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</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="#TBLA2">Fields Used by the Option Specific Input Information
Parameter</a> presents, in the same order, all the fields previously described
in the option specific input information table. Each entry indicates if a field
is defined for a particular option. Possible values are Y and N.<br>
</p>
<p><strong><a name="TBLA2">Fields Used by the Option Specific Input Information
Parameter</a></strong></p>
<table border cellpadding="5">
<!-- cols="20 10 10 10 10 10 30" -->
<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">Transform data (30)</th>
<th align="center" valign="BOTTOM">End file (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="left" valign="top">For use with 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="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="left" valign="top">Device name of the printer.</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="left" valign="top">The name of the output queue that the writer is
processing.</td>
</tr>
<tr>
<td align="left" valign="top">Writer output 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="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="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="left" valign="top">Name of the library in which the message queue
resides.</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="left" valign="top">Reserved to preserve consistency with the print
driver exit.</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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">For use with future 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">Y</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">Y</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">Y</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">Y</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">Y</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">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="left" valign="top">Reserved to preserve consistency with the print
driver exit.</td>
</tr>
<tr>
<td align="left" valign="top">End file 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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">Type of end for spooled file.</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">Y</td>
<td align="left" valign="top">The type of termination by the writer.</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">Y</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">Return alignment information</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="left" valign="top">Returns alignment information along with
transformed data.</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="left" valign="top">Reserved to preserve consistency with the print
driver exit.</td>
</tr>
<tr>
<td align="left" valign="top">Number of complete pages</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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 number of complete pages in the
data to be transformed.</td>
</tr>
<tr>
<td align="left" valign="top">Workstation customizing object name</td>
<td align="center" valign="top">N</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">The name of an object that consists of a table of
attributes used to customize a given ASCII device.</td>
</tr>
<tr>
<td align="left" valign="top">Workstation customizing object library</td>
<td align="center" valign="top">N</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">The library containing the workstation
customization object.</td>
</tr>
<tr>
<td align="left" valign="top">Manufacturer type and model</td>
<td align="center" valign="top">N</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">The manufacturer, type and model for a printer
using transform support.</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="left" valign="top">Reserved to maintain compatibility with the Host
Print Transform (QWPZHPTR) API.</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">Y</td>
<td align="center" valign="top">N</td>
<td align="left" valign="top">Name of system job is located.</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">Y</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="left" valign="top">Reserved to maintain compatibility with the Host
Print Transform (QWPZHPTR) API.</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">Y</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="HDRtopTOUT">Option Specific Output Information From Transform
Exit</a></h3>
<p>The following table shows the structure for the option specific information
output parameter. This structure is used to pass information from the transform
exit program to the writer. For more details about the fields in the following
table see, <a href="#HDRTFIELDO">Field Descriptions</a>.<br>
</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%">Return code</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Transform file</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="center" valign="top">5</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Pass input data</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Send single copy</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="center" valign="top">7</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Send open time commands</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Done transforming file</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="center" valign="top">9</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to vertical positioning commands</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of vertical positioning commands</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to print data</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of print data</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to carriage return commands</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of carriage return commands</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to form feed commands</td>
</tr>
<tr>
<td align="center" valign="top">40</td>
<td align="center" valign="top">28</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of form feed commands</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Carriage return commands</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Form feed commands</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRTFIELDO">Field Descriptions</a></h3>
<p><strong>Carriage return commands.</strong> The carriage return commands
contain the data stream commands which can be used to do end of line processing
for alignment purposes.</p>
<p><strong>Done transforming file.</strong> Indicates the transform exit
program requires no further data to process the current file. This field is
ignored when the pass input data field is set to 0.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top">0</td>
<td align="left" valign="top">Continue calling the transform exit program with
the transform data (30) option.</td>
</tr>
<tr>
<td align="left" valign="top">1</td>
<td align="left" valign="top">The next call to the transform exit program will
be with the end file (40) option.</td>
</tr>
</table>
<p><strong>Form feed commands.</strong> The form feed commands contain the data
stream commands which can be used to do end of page processing for alignment
purposes.</p>
<p><strong>Length of carriage return commands.</strong> The length, in bytes,
of the carriage return commands. The carriage return commands are returned in
the output specific information.</p>
<p><strong>Length of form feed commands.</strong> The length, in bytes, of the
form feed commands. The form feed commands are returned in the output specific
information.</p>
<p><strong>Length of print data.</strong> The length, in bytes, of the print
data for the first line of data on the page. This includes any horizontal
positioning which is done in the first line.</p>
<p><strong>Length of vertical positioning commands.</strong> The length, in
bytes, of the vertical positioning commands that are returned in the
transformed data buffer.</p>
<p><strong>Offset to carriage return commands.</strong> Offset to the carriage
return commands in the output specific information. The carriage return
commands contain the data stream commands which can be used to do end of line
processing for alignment purposes.</p>
<p><strong>Offset to form feed commands.</strong> Offset to the form feed
commands in the output specific information. The form feed commands contain
data stream commands which can be used to do end of page processing for
alignment purposes.</p>
<p><strong>Offset to print data.</strong> Offset to the first line of the print
data for the page in the transformed data buffer. This first line can be
printed for alignment purposes.</p>
<p><strong>Offset to vertical positioning commands.</strong> Offset to the
vertical positioning commands in the transformed data buffer.</p>
<p><strong>Pass input data.</strong> Whether the writer passes the input data
to the transform exit program.</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">The writer will pass the input data to the
transform exit program.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The writer will not pass the input data to the
transform exit program.</td>
</tr>
</table>
<p><strong>Return code.</strong> The return code returned by the transform exit
after each call.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<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>non zero</em></td>
<td align="left" valign="top">An error occurred.</td>
</tr>
</table>
<p>When the return code indicates that an error has occurred, the following is
performed by the writer:</p>
<ul>
<li>Initialize error
<p>The next call to the transform exit program is the terminate process
option.</p>
</li>
<li>Start of file error
<p>The next call to the transform exit program is the end file process
option.</p>
</li>
<li>Spooled file data transform error
<p>The next call to the transform exit program is the end file process
option.</p>
</li>
<li>End of file error
<p>The next call to the transform exit program is the terminate process</p>
</li>
<li>Terminate
<p>There are no additional calls to the transform exit program for this printer
writer.</p>
</li>
</ul>
<p><strong>Send open time commands.</strong> Indicates if the open time
commands returned by the transform exit program on the process file (20) call
are sent before the spooled file prints.</p>
<p>This value is ignored when transform file is set to 0 or 1. In this case,
the data returned on the process file (20) call will always be sent before the
spooled file prints.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The printer writer decides if the open time
commands should be sent</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Send the open time commands before this spooled
file prints. The commands vary with the spooled file attributes.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Do not send any open time commands.</td>
</tr>
</table>
<p><strong>Send single copy.</strong> Indicates if the transform exit program
is called with process options 20, 30, and 40 for each copy requested.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The transform exit program is called for each
copy requested to print.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The transform exit program is called with the 20,
30, and 40 process option sequence only once for each spooled file.</td>
</tr>
</table>
<p><strong>Transform file.</strong> Whether the spooled file data will be
transformed.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">The spooled file data cannot be transformed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The spooled file data will be transformed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The spooled file data is in its final form.</td>
</tr>
</table>
<p><a href="#TBLA3">Fields Used by the Option Specific Output Information
Parameter</a> presents, in the same order, all the fields in previously
described in the option specific output information table. Each entry indicates
if a field is used with a particular process option. Possible values are Y and
N.<br>
</p>
<p><strong><a name="TBLA3">Fields Used by the Option Specific Output
Information Parameter</a></strong></p>
<table border cellpadding="5">
<!-- cols="20 10 10 10 10 10 30" -->
<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">Transform data (30)</th>
<th align="center" valign="BOTTOM">End file (40)</th>
<th align="center" valign="BOTTOM">Terminate (50)</th>
<th align="left" valign="BOTTOM">Description</th>
</tr>
<tr>
<td align="left" valign="top">Return 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="left" valign="top">Indicates if the transform exit program was
successful in completing the specified option.</td>
</tr>
<tr>
<td align="left" valign="top">Transform file</td>
<td align="center" valign="top">N</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">Allows the transform exit program to end the
processing of a file, with either the Process File option.</td>
</tr>
<tr>
<td align="left" valign="top">Pass input data</td>
<td align="center" valign="top">N</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">Allows the transform exit program to specify
whether the writer will provide the input data or the transform exit program
will read the data directly from the file.</td>
</tr>
<tr>
<td align="left" valign="top">Send single copy</td>
<td align="center" valign="top">N</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">Allows the transform exit program to convert a
file once, even if there are multiple copies requested. In the case of multiple
copies requested, the transform exit program inserts the proper commands to
print multiple copies.</td>
</tr>
<tr>
<td align="left" valign="top">Send open time commands</td>
<td align="center" valign="top">N</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">Allows the transform exit program to specify if
the system-generated initial (open time) commands are sent to the printer
before the file prints.</td>
</tr>
<tr>
<td align="left" valign="top">Done transforming file</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">For the spooled file currently being processed,
it allows the transform exit program to stop the writer from calling the
transform exit program with any additional process option 30 calls.</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="left" valign="top">Reserved to preserve consistency with the print
driver exit.</td>
</tr>
<tr>
<td align="left" valign="top">Offset to vertical positioning commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The offset to the vertical positioning commands
in the transformed data buffer. When alignment information has been requested,
vertical positional commands are also returned in the transformed data
buffer.</td>
</tr>
<tr>
<td align="left" valign="top">Length of vertical positioning commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The length of the vertical positioning commands
that are returned the transformed data buffer. This can be used in alignment
processing.</td>
</tr>
<tr>
<td align="left" valign="top">Offset to print data</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The offset to the print data for the first line
of the page. This can be used for alignment processing.</td>
</tr>
<tr>
<td align="left" valign="top">Length of print data</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The length of print data for the first line of
data for a page. This can be used for alignment processing.</td>
</tr>
<tr>
<td align="left" valign="top">Offset of carriage return commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">Offset to the carriage return commands in the
output specific information. The carriage return commands are data stream
commands that can be used to do end of line processing for alignment
purposes.</td>
</tr>
<tr>
<td align="left" valign="top">Length of carriage return commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The length of the carriage return commands.</td>
</tr>
<tr>
<td align="left" valign="top">Offset of form feed commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">Offset to the form feed commands in the output
specific information. The form feed commands are data stream commands that can
be used to do end of page processing for alignment purposes.</td>
</tr>
<tr>
<td align="left" valign="top">Length of form feed commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The length of the form feed commands.</td>
</tr>
<tr>
<td align="left" valign="top">Carriage return commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The carriage return commands are data stream
commands that can be used to do end of line processing for alignment
purposes.</td>
</tr>
<tr>
<td align="left" valign="top">Form feed commands</td>
<td align="center" valign="top">N</td>
<td align="center" valign="top">N</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">The form feed commands are data stream commands
that can be used to do end of page processing for alignment purposes.</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>