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

2918 lines
90 KiB
HTML
Raw Permalink 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>Retrieve Product Information (QSZRTVPR) API</title>
<!-- Begin Header Records ========================================== -->
<!-- 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. -->
<!-- QSZRTVPR SCRIPT A converted by B2H R4.1 (346) (CMS) by KENTALA -->
<!-- at RCHVMW2 on 7 Oct 1998 at 20:33:29 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- 050914 roch Change System Manager product title -->
<!-- Edited by Kersten Jan 02 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="Top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Retrieve Product Information (QSZRTVPR) API</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%">Receiver variable</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Length of receiver variable</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Format name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Product information</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">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Optional Parameter:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">6</td>
<td align="left" valign="top" width="50%">Product information format name</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(8)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Retrieve Product Information (QSZRTVPR) API returns information about a
software product. The information is requested by specifying a product ID,
release level, option number, and load ID; not by specifying an object name.
The Display Software Resources (DSPSFWRSC) command and the Select Product
(QSZSLTPR) API will obtain a list of installed products about which you can
retrieve information.</p>
<p>You can use this API to:</p>
<ul>
<li>Retrieve general information about a product load, including whether the
product load is installed or not.</li>
<li>Retrieve the library list of a product load.</li>
<li>Retrieve the folder list of a product load.</li>
<li>Retrieve the object list of a product load.</li>
<li>Retrieve the directory list of a product load.</li>
<li>Retrieve the software agreement document names list of a product load.</li>
<li>Retrieve the list of option and load ID pairs that are valid for a product
ID and release combination. This is based on what is listed in the product
definition (*PRDDFN) for that product ID and release combination.</li>
<li>Retrieve information from a product definition, including:
<ul>
<li>The copyright information.</li>
<li>The release date.</li>
<li>The message file name and library.</li>
<li>Whether the product allows multiple releases.</li>
<li>The message ID for each option.</li>
<li>Whether each option allows dynamic naming.</li>
</ul>
</li>
<li>Retrieve the current release level of the operating system.</li>
<li>Retrieve the previous release level of the operating system.</li>
<li>Retrieve a list of valid release levels of the operating system from a
given release level through the currently installed release level.</li>
<li>Retrieve the primary language ID of a product.</li>
</ul>
<p><strong>Note:</strong> The Retrieve Object Description (QUSROBJD) API can be
used to retrieve product information from the object description of an object.
The product ID and release level from the object description is returned by
QUSROBJD in format OBJD0300.</p>
<br>
<h3>Authorities and Locks</h3>
<dl>
<dt><em>Product Availability Authority</em></dt>
<dd>None<br>
<br>
</dd>
<dt><em>Product Availability Lock</em></dt>
<dd>*SHRRD
<p>The product availability object resides in the QUSRSYS library.</p>
</dd>
<dt><em>Product Definition Authority</em></dt>
<dd>None<br>
<br>
</dd>
<dt><em>Product Load Authority</em></dt>
<dd>None</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable to receive the requested information.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable in bytes. The value specified must be at
least 8.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The content and format of the information returned.</p>
<p>The possible format names are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">PRDR0100</td>
<td align="left" valign="top">Returns basic information about the product load.
For more information, see <a href="#HDRRTVP100">PRDR0100 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0200</td>
<td align="left" valign="top">Returns a list of the principal and additional
libraries for this product load, along with the basic information. Exit program
names and other related information are also returned. For more information,
see <a href="#HDRRTVP200">PRDR0200 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0300</td>
<td align="left" valign="top">Returns a list of the folders for this product
load, along with the basic information. For more information, see <a href=
"#HDRRTVP300">PRDR0300 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0400</td>
<td align="left" valign="top">Returns a list of the packaged objects for this
product load, along with the basic information. For more information, see <a
href="#HDRRTVP400">PRDR0400 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0500</td>
<td align="left" valign="top">Returns the information that was entered when the
product definition object was created. This includes a record for each option
listed in the product definition (*PRDDFN) for that product ID and release
level. For more information, see <a href="#HDRRTVP500">PRDR0500
Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0600</td>
<td align="left" valign="top">Returns a list of option and load ID pairs that
are valid for the specified product ID and release level. This is based on what
is listed in the product definition (*PRDDFN) for that product ID and release.
For more information, see <a href="#HDRRTVP600">PRDR0600 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0700</td>
<td align="left" valign="top">Returns a list of release levels of the operating
system. The list starts with the release level passed in by the caller and
includes all releases of the operating system through the currently installed
release. For more information, see <a href="#HDRRTVP700">PRDR0700
Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0800</td>
<td align="left" valign="top">Returns a list of product home directories and
product directories for this product load, along with the basic information.
For more information, see <a href="#HDRRTVP800">PRDR0800 Format</a>.
</td>
</tr>
<tr>
<td align="left" valign="top">PRDR0900</td>
<td align="left" valign="top">Returns a list of software agreement document
names for this product load, along with the basic product load information.
For more information, see <a href="#HDRRTVP900">PRDR0900 Format</a>.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Product information</strong></dt>
<dd>INPUT; CHAR(*)
<p>The structure that contains values for which product information is to be
retrieved. The structure provided depends on which product information format
is requested. For more information, see <a href="#HDRPVOLIN">Product
Information Format</a>.</p>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the
structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3>Optional Parameter</h3>
<dl>
<dt><strong>Product information format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The content and format of the product information parameter.</p>
<p>The possible format names follow:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>PRDI0100</em></td>
<td align="left" valign="top">The product ID, release level, product option,
and load ID. This is the default value when this parameter is not present. For
more information, see <a href="#HDRRTVP10I">PRDI0100 Format</a>.</td>
</tr>
<tr>
<td align="left" valign="top"><em>PRDI0200</em></td>
<td align="left" valign="top">Everything in format PRDI0100 plus the CCSID that
the directory names for format PRDR0800 are to be returned in. For more
information, see <a href="#HDRRTVP20I">PRDI0200 Format</a>.</td>
</tr>
</table>
<br>
</dd>
</dl>
<h3><a name="HDRPVOLIN">Product Information Format</a></h3>
<p>Information passed in the product information parameter can be in one of the
following formats. For detailed descriptions of each field, see <a href=
"#HDRPVOLFD">Field Descriptions</a>.</p>
<br>
<h4><a name="HDRRTVP10I">PRDI0100 Format</a></h4>
<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(7)</td>
<td align="left" valign="top" width="60%">Product ID</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="center" valign="top">7</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release level</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="center" valign="top">D</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Product option</td>
</tr>
<tr>
<td align="center" valign="top">17</td>
<td align="center" valign="top">11</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Load ID</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP20I">PRDI0200 Format</a></h4>
<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(7)</td>
<td align="left" valign="top" width="60%">Product ID</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="center" valign="top">7</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release level</td>
</tr>
<tr>
<td align="center" valign="top">13</td>
<td align="center" valign="top">D</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Product option</td>
</tr>
<tr>
<td align="center" valign="top">17</td>
<td align="center" valign="top">11</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Load ID</td>
</tr>
<tr>
<td align="center" valign="top">27</td>
<td align="center" valign="top">1B</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</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">Length of product information parameter</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">CCSID for returned directory
or software agreement document
names</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRPVOLFD">Field Descriptions</a></h3>
<p><strong>CCSID for returned directory
or software agreement document names.
</strong>
When PRDR0800 format is specified, this is the
CCSID in which the directory names should be returned.
When PRDR0900 format is specified, this is the
CCSID in which software agreement document names
should be returned.
If this field is zero or 65535, the directory
or software agreement document
names are returned in the job default CCSID.</p>
<p><strong>Length of product information parameter.</strong> The total number
of bytes specified on the product information parameter. The value specified
must be from 36 through 256.</p>
<p><strong>Load ID.</strong> The load ID for which information is being
requested. Load IDs are 4 characters in length; for example, 2924 is the load
ID for an English national language version (NLV).</p>
<p>You can use this special value for the load ID:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CODE</em></td>
<td align="left" valign="top">The load ID of the code load for the given
product ID, release level, and option.</td>
</tr>
</table>
<p><strong>Product ID.</strong> The product ID for which information is being
requested.</p>
<p>You can use this special value for the product ID:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*OPSYS</em></td>
<td align="left" valign="top">The product ID for the operating system for the
specified release level. The product ID depends on the release level
specified.</td>
</tr>
</table>
<p><strong>Product option.</strong> The option number for which information is
being requested. Use 0000 for the base option. Valid values are 0000 through
0099, where each character is a digit.</p>
<p><strong>Release level.</strong> The release level for which information is
being requested. The release level must be a valid special value, or the
release level must be in the format VxRxMy. Valid values for x are 0 through 9.
Valid values for y are 0 through 9 and A through Z.</p>
<p>You can use these special values for the release level:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CUR</em></td>
<td align="left" valign="top">Uses the release level of the currently installed
operating system.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ONLY</em></td>
<td align="left" valign="top">Uses the only release level for which a product
load (*PRDLOD) is found. If loads are found for multiple release levels, an
error (CPF0C30) will occur.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*PRV</em></td>
<td align="left" valign="top">Uses the previous release with modification level
0 of the operating system.<br>
<p>Examples follow:</p>
<p>Example 1: If the current release level is V2R1M0, specifying *PRV for the
release level parameter returns V1R3M0.</p>
<p>Example 2: If the current release level is V2R1M1, specifying *PRV for the
release level parameter returns V1R3M0, not V2R1M0.</p>
<p>Example 3: If the current release level is V2R2M0, specifying *PRV for the
release level parameter returns V2R1M0.</p>
<p><strong>Note:</strong> In these examples, the current release level values
are used to show how *PRV is determined; this API did not exist before
V2R3M0.</p>
</td>
</tr>
</table>
<p><strong>Reserved.</strong> This field must contain hexadecimal zeros.</p>
<br>
<h3><a name="HDRRTVPINF">Format of the Returned Information</a></h3>
<p>Information returned in the receiver variable parameter can be in one of the
following formats. For detailed descriptions of the fields for each format, see
<a href="#HDRRTVPFD">Field Descriptions</a>.</p>
<br>
<h4><a name="HDRRTVP100">PRDR0100 Format</a></h4>
<p>If the product load is not known to the system, an error (CPF0C1F) will
occur.</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%">Bytes returned</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">Bytes available</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">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Product ID</td>
</tr>
<tr>
<td align="center" valign="top">19</td>
<td align="center" valign="top">13</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release level</td>
</tr>
<tr>
<td align="center" valign="top">25</td>
<td align="center" valign="top">19</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Product option</td>
</tr>
<tr>
<td align="center" valign="top">29</td>
<td align="center" valign="top">1D</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Load ID</td>
</tr>
<tr>
<td align="center" valign="top">33</td>
<td align="center" valign="top">21</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Load type</td>
</tr>
<tr>
<td align="center" valign="top">43</td>
<td align="center" valign="top">2B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Symbolic load state</td>
</tr>
<tr>
<td align="center" valign="top">53</td>
<td align="center" valign="top">35</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Load error indicator</td>
</tr>
<tr>
<td align="center" valign="top">63</td>
<td align="center" valign="top">3F</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Load state</td>
</tr>
<tr>
<td align="center" valign="top">65</td>
<td align="center" valign="top">41</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Supported flag</td>
</tr>
<tr>
<td align="center" valign="top">66</td>
<td align="center" valign="top">42</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Registration type</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">CHAR(14)</td>
<td align="left" valign="top">Registration value</td>
</tr>
<tr>
<td align="center" valign="top">82</td>
<td align="center" valign="top">52</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to additional information</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Primary language load identifier</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Minimum target release</td>
</tr>
<tr>
<td align="center" valign="top">98</td>
<td align="center" valign="top">62</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Minimum VRM of *BASE required by option</td>
</tr>
<tr>
<td align="center" valign="top">104</td>
<td align="center" valign="top">68</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Requirements met between base and option
value</td>
</tr>
<tr>
<td align="center" valign="top">105</td>
<td align="center" valign="top">69</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Level</td>
</tr>
<tr>
<td align="center" valign="top">108</td>
<td align="center" valign="top">6C</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP200">PRDR0200 Format</a></h4>
<p>If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.</p>
<p>The fields following the library records field define that array. The number
of entries in the array is the number of primary libraries for this load.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="6" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Secondary language library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of primary libraries</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to library records</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Library records</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="10" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to library
records field and the offset to next library record field.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to next library record</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Primary library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Installed library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library authority</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library create authority</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Postoperation exit program name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of preoperation exit program names</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(10)</td>
<td align="left" valign="top">Preoperation exit program names</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP300">PRDR0300 Format</a></h4>
<p>If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.</p>
<p>The fields following the folder records field define an entry in that array.
The number of entries in the array is the number of primary folders for this
load.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of primary folders</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one folder record</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to folder records</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Folder records</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="3" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to folder
records field and the length of one folder record field.</td>
<td align="left" valign="top">CHAR(63)</td>
<td align="left" valign="top">Primary folder</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(63)</td>
<td align="left" valign="top">Installed folder</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP400">PRDR0400 Format</a></h4>
<p>If the product load has not been packaged, an error (CPF0C1F) will occur.
There may have been PTF activity for this product load. If so, this list might
not contain all the objects that would be saved by the Save Licensed Program
(SAVLICPGM) command. Error CPF0C1B is returned if this format is requested for
the base option of the operating system.</p>
<p>The fields following the object records field define an entry in that array.
The number of entries in the array is the number of objects packaged for this
load.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of objects</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one object record</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to object records</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Object records</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to object
records field and the length of one object record field.</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Installed library name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP500">PRDR0500 Format</a></h4>
<p>If the product definition for the specified product ID and release level
does not exist, an error (CPF0C1F) will occur. Error CPF0C1B is returned if
this format is requested without specifying product option 0000 and load ID
*CODE. Product option 0000 must be specified for this format even though the
information returned is then for all options.</p>
<p>The fields following the option records field define an entry in that array.
The number of entries in the array is the number of product options for this
product and release.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="13" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow multiple releases</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Release date century</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Release date</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Copyright first year</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Copyright current year</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file object name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file library name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of option records</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one option record</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to option records</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow mixed releases</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Option records</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to option
records field and the length of one option record field.</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Product option</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Allow dynamic naming</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Product option message ID</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Minimum required VRM of option</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP600">PRDR0600 Format</a></h4>
<p>Error CPF0C1F occurs if the product definition does not exist. Error CPF0C1B
is returned if this format is requested without specifying product option 0000
and load ID *CODE.</p>
<p>The fields following the load records field define an entry in that array.
The number of entries in the array is the number of loads for this product and
release.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="5" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of load records</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one load record</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to load records</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Load records</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="3" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to load
records field and the length of one load record field.</td>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Product option</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(4)</td>
<td align="left" valign="top">Load ID</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP700">PRDR0700 Format</a></h4>
<p>When this format is requested, valid values for the release level field are
V1R3M0 and all release levels for which the operating system was made available
through the currently installed release level of the operating system.</p>
<p>If the release level field is not a valid value, an error (CPF0C1C) will
occur. Error CPF0C1B is returned if this format is requested without specifying
the product option as 0000, product ID as *OPSYS, and load ID as *CODE.</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%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">04</td>
<td align="center" valign="top">04</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">08</td>
<td align="center" valign="top">08</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of releases returned</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">0C</td>
<td align="left" valign="top">CHAR(4)</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">ARRAY of CHAR(6)</td>
<td align="left" valign="top">Release level (for each returned operating system
release level)</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP800">PRDR0800 Format</a></h4>
<p>If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.</p>
<p>The product home directory is a grouping mechanism. It is designed to be the
parent directory for several product directory paths. The directory information
array will contain an entry for each primary full path for the load. This entry
will have offsets to the primary and installed path names and the public object
authorities for the directory.</p>
<p>All offsets within this structure will be set to 0 when the offset would be
beyond the end of the receiver variable.</p>
<p>The following information is included to help clarify the use of format
PRDR0800.</p>
<p>The primary full path being used in this example is <em>/QSom/Class</em>.
The primary product home directory portion of this path is <em>/QSom</em>. The
product directory is <em>Class</em>. These three pieces of information are
returned as character array <em>/QSom/Class</em>.</p>
<p>For example, if <em>/QSom/Class</em> were 1000 bytes from the beginning of
the receiver variable, the offset to primary full path name field would be
1000. To find the primary product home directory name, an offset of 1000 would
be used as well. The length of primary full path name field would be 11. The
length of primary product home directory name field would be 5. The offset to
primary product directory name field would be 1006. The length of the primary
product directory name would be: the length of primary full path name field
plus the offset to primary full path name field minus the offset to primary
product directory name field (11&nbsp;+&nbsp;1000&nbsp;-&nbsp;1006
=&nbsp;5&nbsp;bytes).</p>
<p>Each product directory associated with a product load will have a directory
information array entry. This directory information array entry contains the
information to access the different parts of the character string explained
above.</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="6" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of primary full paths</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one directory information entry</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to directory information array</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">CCSID of returned directories</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Error indicator on CCSID conversion</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="13" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
directory information array.</td>
<td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Directory information array</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of primary full path name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to primary full path name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of primary product home directory
name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to primary product directory name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of installed full path name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to installed full path name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of installed product home directory
name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to installed product directory name</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of public object authorities
available</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to public object authority array</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Public data authority</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2">The decimal and hexadecimal offsets
are determined by using the value in the offset to primary full path name.</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Primary full path name (contains the primary
product home directory name and the primary product directory name)</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2">The decimal and hexadecimal offsets
are determined by using the value in the offset to installed full path
name.</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Installed full path name (contains the installed
product home directory name and the installed product directory name)</td>
</tr>
<tr>
<td align="left" valign="top" colspan="2">The decimal and hexadecimal offsets
are determined by using the value in the offset to public object authority
array.</td>
<td align="left" valign="top">ARRAY of CHAR(10)</td>
<td align="left" valign="top">Public object authorities array</td>
</tr>
</table>
<br>
<br>
<h4><a name="HDRRTVP900">PRDR0900 Format</a></h4>
<p>If the *PRDLOD object does not exist, an error (CPF0C1F) will occur.</p>
<p>The software agreement document names list will contain an entry for each
software agreement document name that is associated with this product load.
Each entry will include the document name only. Entries will not include the
full Integrated File System (IFS) path name. Entries will not include a
translated language suffix.
</p>
<p>
Software agreement documents will be stored in a subdirectory of the software
agreement repository. For IBM packaged product loads this repository is
<em>/QIBM/ProdData/LicenseDoc/</em>. For non-IBM packaged product loads this
repository is <em>/QIBM/UserData/LicenseDoc/</em>. Refer to the QSRCRTPL API
for more information regarding the location of software agreement documents.
</p>
<p>All offsets within this structure will be set to 0 when the offset would be
beyond the end of the receiver variable.
</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(*)</td>
<td align="left" valign="top" width="60%">Everything from format PRDR0100</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="7" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
additional information field of format PRDR0100.</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of software agreement document names available</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of software agreement document names returned</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of one software agreement document name record</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to software agreement document names array</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">CCSID of returned software agreement document names</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Error indicator on CCSID conversion</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="left" valign="top" rowspan="4" colspan="2">The decimal and
hexadecimal offsets are determined by using the value in the offset to
software agreement document array.</td><td align="left" valign="top">ARRAY of CHAR(*)</td>
<td align="left" valign="top">Software agreement document names array</td>
</tr>
<tr>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of software agreement document name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Software agreement document name</td>
</tr>
<tr>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRRTVPFD">Field Descriptions</a></h3>
<p><strong>Allow dynamic naming.</strong> Whether the names of product
libraries and root folders for this product option can be dynamically changed
without causing a product error.</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">Cannot be dynamically named.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Can be dynamically named.</td>
</tr>
</table>
<p><strong>Allow multiple releases.</strong> Whether this product can be
installed at a release level different from the current release level without
installing over the current release.</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">This product cannot be installed at a release
level different from the current release level without installing over the
current release.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">This product can be installed at a release level
different from the current release level without installing over the current
release.</td>
</tr>
</table>
<p><strong>Allow mixed releases.</strong> Whether this product allows mixed
releases between its *BASE and options.</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 *BASE option and other options of this
product cannot be at different release levels.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The *BASE option and other options of this
product can be at different release levels.</td>
</tr>
</table>
<p><strong>Bytes available.</strong> The number of bytes of data available to
be returned to the user.</p>
<p><strong>Bytes returned.</strong> The number of bytes returned to the user.
This is the lesser of the number of bytes available and the length of the
receiver variable.</p>
<p><strong>CCSID of returned directories.</strong> The value of the CCSID in
which the directories were returned. This will be the requested CCSID if the
error indicator on CCSID conversion field is 0.</p>
<p><strong>CCSID of returned software agreement document names.</strong>
The value of the CCSID in which the software agreement document names were
returned. This will be the requested CCSID if the error indicator on the
CCSID conversion field is 0.
</p>
<p><strong>Copyright current year.</strong> The value specified for the
copyright current year when the product definition for this product load was
created. If no copyright current year was specified when the product definition
was created, the copyright current year is blank.</p>
<p><strong>Copyright first year.</strong> The value specified for the copyright
first year when the product definition for this product load was created. If no
copyright first year was specified when the product definition was created, the
copyright first year is blank.</p>
<p><strong>Directory information array.</strong> An array that contains an
element for each primary full path. The length of an element is specified by
length of one directory information entry. The number of elements is the number
of primary full paths.</p>
<p><strong>Error indicator on CCSID conversion.</strong>
Whether the CCSID conversion to the requested CCSID was successful. If the
requested CCSID conversion fails, the CCSID in which the
entry names are returned is
identified in either the
<strong>CCSID of returned directories names </strong>
field or the
<strong>CCSID of returned software agreement document names </strong>
field depending on which format was specified.
</p>
<p>Possible values follow:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">CCSID conversion was successful</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">CCSID conversion failed</td>
</tr>
</table>
<p><strong>Folder records.</strong> An array in which each entry includes the
primary folder, installed folder, and reserved fields.</p>
<p><strong>Installed folder.</strong> This can be one of the following:</p>
<ul>
<li>The name of the folder specified as the development folder when the load
was created.</li>
<li>The name given to the primary folder when the product was installed.</li>
</ul>
<p><strong>Installed full path name.</strong> The installed full path name for
the associated primary full path. It contains a directory name in the CCSID
that is indicated in the CCSID of returned directories field. The installed
full path contains the installed product home directory concatenated with a
slash (/), which is concatenated with the installed product directory name. The
length of the product directory is the length of the installed full path plus
the offset to the installed full path minus the offset to the installed product
directory name.</p>
<p><strong>Installed library name.</strong> For a library record, this can be
one of the following:</p>
<ul>
<li>The name of the library specified as the development library when the load
was created.</li>
<li>The name given to the primary library when the product was installed.</li>
</ul>
<p>For an object record, the name of the library where the object should exist.
The object might not exist in this library if the object had been deleted, or
the library had been renamed.</p>
<p><strong>Length of installed full path name.</strong> The number of bytes in
this installed full path name.</p>
<p><strong>Length of installed product home directory name.</strong> The number
of bytes in the installed product home directory.</p>
<p><strong>Length of one directory information entry.</strong> The number of
bytes in each directory information array entry.</p>
<p><strong>Length of one folder record.</strong> The number of bytes in each
folder record.</p>
<p><strong>Length of one load record.</strong> The number of bytes in each load
record.</p>
<p><strong>Length of one object record.</strong> The number of bytes in each
object record.</p>
<p><strong>Length of one option record.</strong> The number of bytes in each
option record.</p>
<p><strong>Length of primary full path name.</strong> The number of bytes in
this primary full path name.</p>
<p><strong>Length of primary product home directory name.</strong> The number
of bytes in the primary product home directory.</p>
<p><strong>Length of software agreement document name.</strong>
The number of bytes in this software agreement document name.
This will always be smaller than the length of one software agreement
document name record.
</p>
<p><strong>Length of one software agreement document name record.</strong>
The number of bytes for each software agreement document name record.
</p>
<p><strong>Level.</strong> The level identifier of the product for which
information was returned. The format is Lxx. The returned value is blank for
all products other than the operating system and Licensed Internal Code.</p>
<p><strong>Library authority.</strong> The public authority given to the
library by the Restore Licensed Program (RSTLICPGM) command when this load is
installed if the library does not exist. This field will be blank if the
product load has not been successfully packaged.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *ALL.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *USE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHANGE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *CHANGE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCLUDE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *EXCLUDE.</td>
</tr>
</table>
<p><strong>Library create authority.</strong> The create authority set for this
library by the Restore Licensed Program (RSTLICPGM) command when this load is
installed if the library does not exist. This field will be blank if the
product load has not been successfully packaged.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *ALL.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *USE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHANGE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *CHANGE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCLUDE</em></td>
<td align="left" valign="top">The library is created with the public authority
set to *EXCLUDE.</td>
</tr>
</table>
<p><strong>Library records.</strong> An array in which each entry includes the
following fields:</p>
<ul>
<li>Offset to next library record</li>
<li>Primary library name</li>
<li>Installed library</li>
<li>Library type</li>
<li>Library authority</li>
<li>Library create authority</li>
<li>Postoperation exit program name</li>
<li>Number of preoperation exit program names</li>
<li>Preoperation exit program names</li>
<li>Reserved</li>
</ul>
<p><strong>Library type.</strong> The type of library created by the Restore
Licensed Program (RSTLICPGM) command when this load is installed if the library
does not exist. This field will be blank if the product load has not been
successfully packaged.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*PROD</em></td>
<td align="left" valign="top">The library created is a production library.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*TEST</em></td>
<td align="left" valign="top">The library created is a test library.</td>
</tr>
</table>
<p><strong>Load error indicator.</strong> Whether there is a known error for
this load.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ERROR</em></td>
<td align="left" valign="top">An error was found the last time that the state
of this load was checked or updated. For example, a restore, delete, or save
licensed program function might be in progress or might not have completed. The
state of a load can be checked using the Check Product Option (CHKPRDOPT)
command. See the <a href="../rbam6/rbam6clmain.htm">Control Language (CL)</a>
information in the iSeries Information Center for information on the CHKPRDOPT
command.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">No error was found the last time that the state
of this load was checked or updated.</td>
</tr>
<tr>
<td align="left" valign="top"></td>
<td align="left" valign="top"><strong>Note:</strong> This does not mean that
the product is necessarily installed. Refer to the symbolic load state field to
determine if the load is installed or not.</td>
</tr>
</table>
<p><strong>Load ID.</strong> The load ID of the product load for which
information was returned. For the load records, the load ID field returns the
load IDs that have been specified when the product definition was created.</p>
<p><strong>Load records.</strong> An array for which each entry includes the
product option, load ID, and a reserved field.</p>
<p><strong>Load state.</strong> The state of the load for which information was
returned.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>10</em></td>
<td align="left" valign="top">The load is defined. The product load object for
this load does not exist. When a product definition is created, a code load is
defined for each product option, and language loads can be defined.</td>
</tr>
<tr>
<td align="left" valign="top"><em>20</em></td>
<td align="left" valign="top">The product load object for this load exists.
Before it can be saved using the Save Licensed Program (SAVLICPGM) command, it
must be packaged with one of the following:<br>
<ul>
<li>The Package Product Option (PKGPRDOPT) command.</li>
<li>The Package Product Option (QSZPKGPO) API.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>3E</em></td>
<td align="left" valign="top">A Restore Licensed Program (RSTLICPGM) command
did not complete successfully. A preoperation exit program failed. The product
being replaced had been packaged, but not installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3F</em></td>
<td align="left" valign="top">A RSTLICPGM command failed. A preoperation exit
program did not fail. The product being replaced had been packaged, but not
installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>30</em></td>
<td align="left" valign="top">The product load object for this load has been
packaged with the PKGPRDOPT command or the QSZPKGPO API.</td>
</tr>
<tr>
<td align="left" valign="top"><em>32</em></td>
<td align="left" valign="top">The product load object for this load has been
packaged with the PKGPRDOPT command or the QSZPKGPO API. One of the following
occurred:<br>
<ul>
<li>A development library or folder was renamed, but the product does not allow
dynamic naming. (A product specifies whether or not it allows dynamic naming
when the product definition object is created.)</li>
<li>The product definition or product load for a packaged load was renamed or
moved to another library.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>33</em></td>
<td align="left" valign="top">The product load object for this load has been
packaged with the PKGPRDOPT command or the QSZPKGPO API. However, an object was
found to be damaged the last time that the CHKPRDOPT command or SAVLICPGM
command was used for this load.</td>
</tr>
<tr>
<td align="left" valign="top"><em>34</em></td>
<td align="left" valign="top">The product load object for this load has been
packaged with the PKGPRDOPT command or the QSZPKGPO API. One of the following
occurred:<br>
<ul>
<li>An attempt was made to delete the product load using the delete licensed
program function and the function failed.</li>
<li>A packaged object was missing the last time that the CHKPRDOPT command or
SAVLICPGM command was used for this load.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>35</em></td>
<td align="left" valign="top">A RSTLICPGM command is in progress. The product
being replaced had been packaged, but not installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>38</em></td>
<td align="left" valign="top">A Delete Licensed Program (DLTLICPGM) command is
in progress. The product being deleted had been packaged, but not
installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>50</em></td>
<td align="left" valign="top">A RSTLICPGM command is in progress. The product
being replaced had been installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>53</em></td>
<td align="left" valign="top">A DLTLICPGM command is in progress. The product
being deleted had been installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>59</em></td>
<td align="left" valign="top">This product is an IBM-supplied product, and it
is not compatible with the currently installed release level of the operating
system. An error occurred when the product was restored or when the operating
system was installed. The IBM-supplied product is at a release level earlier
than V2R2M0, which is not supported by the SAVLICPGM command.</td>
</tr>
<tr>
<td align="left" valign="top"><em>6E</em></td>
<td align="left" valign="top">A RSTLICPGM command did not complete
successfully. A preoperation exit program failed. The product being replaced
had been installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>6F</em></td>
<td align="left" valign="top">A RSTLICPGM command failed. The failure was not a
preoperation exit program or postoperation exit program. The product being
replaced had been installed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>60</em></td>
<td align="left" valign="top">The product load (*PRDLOD) object for this load
was loaded onto the system by the RSTLICPGM command.</td>
</tr>
<tr>
<td align="left" valign="top"><em>61</em></td>
<td align="left" valign="top">The product load (*PRDLOD) object for this load
was loaded onto the system by the RSTLICPGM command, but a postoperation exit
program failed.</td>
</tr>
<tr>
<td align="left" valign="top"><em>62</em></td>
<td align="left" valign="top">An installed library or folder was renamed, but
the product does not allow dynamic naming. (A product specifies whether or not
it allows dynamic naming when the product definition object is created.)</td>
</tr>
<tr>
<td align="left" valign="top"><em>63</em></td>
<td align="left" valign="top">The product load (*PRDLOD) object for this load
was installed by the RSTLICPGM command, but an object is damaged.</td>
</tr>
<tr>
<td align="left" valign="top"><em>64</em></td>
<td align="left" valign="top">The product load (*PRDLOD) object for this load
was installed by the RSTLICPGM command, but one of the following occurred:<br>
<ul>
<li>An object was found to be missing when the CHKPRDOPT command or the
SAVLICPGM command was used.</li>
<li>An error occurred while the DLTLICPGM command was being used.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>67</em></td>
<td align="left" valign="top">The CHKPRDOPT command was used for this product
load, but the postoperation exit program failed or indicated that an error was
found.</td>
</tr>
<tr>
<td align="left" valign="top"><em>90</em></td>
<td align="left" valign="top">The product load was installed successfully. If
an object was missing or was damaged, and the problem was corrected, using the
CHKPRDOPT command sets the state back to 90.</td>
</tr>
</table>
<p><strong>Load type.</strong> The type of load for which information was
returned.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*CODE</em></td>
<td align="left" valign="top">The load is a code load.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LNG</em></td>
<td align="left" valign="top">The load is a language load.</td>
</tr>
</table>
<p><strong>Message file library name.</strong> The name of the library for the
message file that contains the messages describing the product and its
options.</p>
<p><strong>Message file object name.</strong> The name of the message file that
contains the messages describing the product and its options.</p>
<p><strong>Minimum target release.</strong> The minimum release of the
operating system to which the Save Licensed Program (SAVLICPGM) command will
allow the product to be saved. The format must be in the format
V<em>x</em>R<em>y</em>M<em>z</em>. Valid values for <em>x</em> and <em>y</em>
are 0 through 9. Valid values for <em>z</em> are 0 through 9 and A through
Z.</p>
<p><strong>Minimum required VRM of option.</strong> The minimum release level
that is allowed for the option that will run with the current level of the
*BASE option for the product. This field is only applicable if mixed releases
are allowed.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*MATCH</em></td>
<td align="left" valign="top">The release of the option matches that of the
*BASE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>VxRyMz</em></td>
<td align="left" valign="top">The release value is in the format
V<em>x</em>R<em>y</em>M<em>z</em>.</td>
</tr>
</table>
<p><strong>Minimum VRM of *BASE required by option.</strong> The minimum
release level that is allowed for the *BASE option that will run with the
current level of the option for the product. This field is only applicable if
mixed releases are allowed and for a load type of *CODE.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*MATCH</em></td>
<td align="left" valign="top">The release of the option matches that of the
*BASE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>VxRyMz</em></td>
<td align="left" valign="top">The release value is in the format
V<em>x</em>R<em>y</em>M<em>z</em>.</td>
</tr>
</table>
<p><strong>Number of load records.</strong> The number of loads for this
product option. The receiver variable may not have been large enough to hold
all the load records. If this happens, this number may be larger than the
number of load records actually returned.</p>
<p><strong>Number of objects.</strong> The number of packaged objects for this
load. The receiver variable may not have been large enough to hold all the
objects. If this happens, this number may be larger than the number of objects
actually returned.</p>
<p><strong>Number of option records.</strong> The number of options for this
product and release level. The receiver variable may not have been large enough
to hold all the option records. If this happens, this number may be larger than
the number of option records actually returned.</p>
<p><strong>Number of preoperation exit program names.</strong> The number of
preoperation exit programs for this load for this primary library. If there are
no preoperation exit programs for this library, this will be 0.</p>
<p><strong>Number of primary folders.</strong> The number of primary folders
for this load. The receiver variable may not have been large enough to hold all
the folder records. If this happens, this number may be larger than the number
of folder records actually returned.</p>
<p><strong>Number of primary full paths.</strong> The number of full paths for
this load. The receiver variable may not have been large enough to hold all the
directory information. If this happens, this number may be larger than the
number of directories actually returned.</p>
<p><strong>Number of primary libraries.</strong> The number of primary
libraries for this load. The receiver variable may not have been large enough
to hold all the library information. If this happens, this number may be larger
than the number of libraries actually returned. The first record contains the
principal primary library information. Subsequent records contain the
information for the additional libraries, if the load has any additional
libraries.</p>
<p><strong>Number of public object authorities available.</strong> The number
of public object authorities associated with a product directory. This will be
set to 0 if the product load has not been successfully packaged.</p>
<p><strong>Number of releases returned.</strong> The number of release levels
returned for format PRDR0700.</p>
<p><strong>Number of software agreement document names available.</strong>
The number of software agreement documents for this load. The receiver
variable may not have been large enough to hold all the software agreement
document names. If this happens, this number may be larger than the number
of software agreement document name records actually returned.
</p>
<p><strong>Number of software agreement document names returned.</strong>
The number of software agreement document name records that were returned to
the user. This is the lesser of the number of software agreement document
names available and the number of software agreement document name records
that the reciever variable could accommodate.
</p>
<p><strong>Object name.</strong> The name of an object for this load.</p>
<p><strong>Object records.</strong> The objects in the object record are
ordered by library. All objects for the principal library are first. Within
each library, the objects are ordered by object type, but with product loads
first and product definitions second, followed by all other object types.</p>
<p>The record has the following fields:</p>
<ul>
<li>Object name</li>
<li>Installed library name</li>
<li>Object type</li>
<li>Reserved</li>
</ul>
<p><strong>Object type.</strong> The symbolic object type of the object.</p>
<p><strong>Offset to additional information.</strong> The offset from the
beginning of the receiver variable to the start of the rest of the information
for a given format. This is to allow for expansion of the basic information.
For format PRDR0100, this is 0.</p>
<p><strong>Offset to directory information array.</strong> The offset from the
beginning of the receiver variable to the start of the directory information
array for format PRDR0800. This is to allow for expansion of the basic
directory information.</p>
<p><strong>Offset to folder records.</strong> The offset from the beginning of
the receiver variable to the start of the first folder record for format
PRDR0300. This is to allow for expansion of the basic folder information.</p>
<p><strong>Offset to installed full path name.</strong> The offset from the
beginning of the receiver variable to the start of the installed full path name
for format PRDR0800. This is to allow for expansion of the basic directory
information.</p>
<p><strong>Offset to installed product directory name.</strong> The offset from
the beginning of the receiver variable to the start of the installed product
directory name for format PRDR0800. This will be the product directory path
that follows the delimiter at the end of the product home directory. This
offset will be equal to the length of the installed full path plus the offset
to the installed full path if there is no product directory. This is to allow
for expansion of the basic directory information.</p>
<p><strong>Offset to library records.</strong> The offset from the beginning of
the receiver variable to the start of the first library record for format
PRDR0200. This is to allow for expansion of the basic library information.</p>
<p><strong>Offset to load records.</strong> The offset from the beginning of
the receiver variable to the start of the first load record for format
PRDR0600. This is to allow for expansion of the basic load information.</p>
<p><strong>Offset to next library record.</strong> The offset from the
beginning of the receiver variable to the start of the next library record for
format PRDR0200. If there are no more library records, then this is 0.</p>
<p><strong>Offset to object records.</strong> The offset from the beginning of
the receiver variable to the start of the first object record for format
PRDR0400. This is to allow for expansion of the basic object information.</p>
<p><strong>Offset to option records.</strong> The offset from the beginning of
the receiver variable to the start of the first option record for format
PRDR0500. This is to allow for expansion of the basic option information.</p>
<p><strong>Offset to primary full path name.</strong> The offset from the
beginning of the receiver variable to the start of the primary full path name
for format PRDR0800. This is to allow for expansion of the basic directory
information.</p>
<p><strong>Offset to primary product directory name.</strong> The offset from
the beginning of the receiver variable to the start of the primary product
directory name for format PRDR0800. This will be the product directory path
that follows the delimiter at the end of the product home directory. This
offset will be equal to the length of the primary full path plus the offset to
the primary full path if there is no product directory. This is to allow for
expansion of the basic directory information.</p>
<p><strong>Offset to public object authority array.</strong> The offset from
the beginning of the receiver variable to the start of the public object
authority array for format PRDR0800. This is to allow for expansion of the
primary product home directory information.</p>
<p><strong>Offset to software agreement document names array.</strong>
The offset from the beginning of the receiver variable to the start of the
software agreement document array for format PRDR0900. This is to allow for
expansion of the software agreement document information.
</p>
<p><strong>Option records.</strong><br>
An array for which each entry includes the following fields:</p>
<ul>
<li>Product option</li>
<li>Allow dynamic naming</li>
<li>Product option message ID</li>
<li>Minimum required VRM of option</li>
<li>Reserved</li>
</ul>
<p><strong>Postoperation exit program name.</strong> The name of the
postoperation exit program for this load for this primary library. If there is
no postoperation exit program for this library, this will be blank.</p>
<p><strong>Preoperation exit program names.</strong> An array of the
preoperation exit programs for this load for this primary library. If there are
no preoperation exit programs for this library, this will be an array of length
0.</p>
<p><strong>Primary folder.</strong> The name of a primary folder for this
load.</p>
<p><strong>Primary full path name.</strong> The name of the primary full path.
It contains a directory name in the CCSID that is indicated in the CCSID of
returned directories field. The primary full path contains the primary product
home directory concatenated with a slash (/), which is concatenated with the
primary product directory name. The length of the product directory is the
length of the primary full path plus the offset to the primary full path minus
the offset to the primary product directory name.</p>
<p><strong>Primary language load identifier.</strong> For code loads, this
field contains the primary language of the product option. This is the National
Language Version (NLV) of the language that is installed in the libraries. It
will be blank if no language is installed in the libraries for the code load.
For language loads (29xx), this field will always be blank.</p>
<p><strong>Primary library name.</strong> The name of the primary library that
was specified when the product load object was created.</p>
<p><strong>Product ID.</strong> The product ID for which information was
returned.</p>
<p><strong>Product option.</strong> The product option for which information
was returned.</p>
<p><strong>Product option message ID.</strong> The message ID associated with
this product option. The message ID was specified when the product definition
was created.</p>
<p><strong>Public data authority.</strong> The public data authority given to
the directory by the Restore Licensed Program (RSTLICPGM) command when this
load is installed if the directory does not exist. If the product load has not
been successfully packaged, this field is blank.</p>
<p>Possible values follow:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top">*RWX</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *RWX.</td>
</tr>
<tr>
<td align="left" valign="top">*RW</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *RW.</td>
</tr>
<tr>
<td align="left" valign="top">*RX</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *RX.</td>
</tr>
<tr>
<td align="left" valign="top">*WX</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *WX.</td>
</tr>
<tr>
<td align="left" valign="top">*R</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *R.</td>
</tr>
<tr>
<td align="left" valign="top">*W</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *W.</td>
</tr>
<tr>
<td align="left" valign="top">*X</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *X.</td>
</tr>
<tr>
<td align="left" valign="top">*EXCLUDE</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *EXCLUDE.</td>
</tr>
<tr>
<td align="left" valign="top">*NONE</td>
<td align="left" valign="top">The directory is created with the public data
authority set to *NONE.</td>
</tr>
</table>
<p><strong>Public object authorities array.</strong> The public object
authority given to the directory by the Restore Licensed Program (RSTLICPGM)
command when this load is installed if the directory does not exist. The number
of elements is the number of public object authorities for this product
directory. If the product load has not been successfully packaged, the number
of public object authorities will be set to 0.</p>
<p>Possible values follow:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *NONE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *ALL.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OBJEXIST</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *OBJEXIST.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OBJMGT</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *OBJMGT.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OBJALTER</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *OBJALTER.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*OBJREF</em></td>
<td align="left" valign="top">The directory is created with the public object
authority set to *OBJREF.</td>
</tr>
</table>
<p><strong>Registration type.</strong> The registration type associated with
the product. The registration type and registration value together make up the
registration ID for the product.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>02</em></td>
<td align="left" valign="top">Registration type *PHONE was specified when the
product load or product definition was created.</td>
</tr>
<tr>
<td align="left" valign="top"><em>04</em></td>
<td align="left" valign="top">The registration value is the same as the
registration value for i5/OS.</td>
</tr>
<tr>
<td align="left" valign="top"><em>08</em></td>
<td align="left" valign="top">Registration type *CUSTOMER was specified when
the product load or product definition was created.</td>
</tr>
</table>
<p><strong>Registration value.</strong> The registration value associated with
the product. The registration type and registration value together make up the
registration ID for the product.</p>
<p><strong>Release date.</strong> Indicates the value specified for the release
date when the product definition for this product load was created. The release
date is in the format <em>yymmdd</em>, where <em>yy</em> equals year,
<em>mm</em> equals month, and <em>dd</em> equals day. If no release date was
specified when the product definition was created, then the release date is
blank.</p>
<p><strong>Release date century.</strong> The century that corresponds to the
release date of the product.</p>
<p>Possible values follow:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Indicates years 19<em>xx</em></td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Indicates years 20<em>xx</em></td>
</tr>
<tr>
<td align="left" valign="top"><em>Blank</em></td>
<td align="left" valign="top">Indicates no release date was specified for the
product.</td>
</tr>
</table>
<p><strong>Release level.</strong> The release level of the product for which
information was returned. For V2R3M0, when format PRDR0700 is requested, the
valid values for this field are *CUR, *PRV, V1R3M0, V2R1M0, V2R1M1, V2R2M0, and
V2R3M0.</p>
<p><strong>Release level (for each returned operating system release
level).</strong> The individual release level returned. One or more may be
returned.</p>
<p><strong>Requirements met between base and option value.</strong> When a
product allows mixed releases between its base and option, certain requirements
must be met. This value represents the reason why the release requirements
between the base and option may or may not be in error.</p>
<p>The 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">There is not enough information available to
determine if the release requirements have been met. This will be the value if
this is a load type of *LANG.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The releases of the *BASE and option meet all
requirements.</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">The release of the option is too old compared to
the *BASE.</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">The release of the *BASE is too old compared to
the option.</td>
</tr>
</table>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Secondary language library name.</strong> The secondary language
library name that was specified when the load was created. If this is a code
load, the secondary language library name is blank.</p>
<p><strong>Software agreement document names array.</strong>
An array in which each entry includes the following fields:</p>
<ul>
<li>Length of this software agreement document name</li>
<li>Software agreement document name</li>
</ul>
<p><strong>Software agreement document name.</strong>
The name of one entry in the software agreement documents list for this
product load. It contains a software agreement document name in the CCSID
that is indicated in the <strong>CCSID of returned software agreement
document names</strong> field.
</p>
<p><strong>Supported flag.</strong> Whether this load is currently supported. A
load can be supported by using the Work with Supported Products (WRKSPTPRD)
command in the System Manager for i5/OS licensed program.</p>
<p>The 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 load is not supported.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The load is supported.</td>
</tr>
</table>
<p><strong>Symbolic load state.</strong> The symbolic state of the load for
which information was returned. This value, in conjunction with the load error
indicator, can be used to determine if the load is installed correctly.</p>
<p>The possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*DEFINED</em></td>
<td align="left" valign="top">The load is defined. The product load object for
this load does not exist. When a product definition is created, a code load is
defined for each product option, and language loads can be defined.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CREATED</em></td>
<td align="left" valign="top">The product load object for this load exists. It
must be packaged with the PKGPRDOPT command before it can be saved using the
SAVLICPGM command.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*PACKAGED</em></td>
<td align="left" valign="top">The product load object for this load has been
packaged with the PKGPRDOPT command.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*DAMAGED</em></td>
<td align="left" valign="top">If this is for an option other than the base
option or for a language load for the base option, the product load object has
been damaged. If this is for the code load for the base option, one of the
following happen:<br>
<ul>
<li>The product definition for this product ID and release level has been
damaged.</li>
<li>The product load object has been damaged.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>*LOADED</em></td>
<td align="left" valign="top">Indicates one of the following:<br>
<ul>
<li>A restore licensed program function is in progress.</li>
<li>A delete licensed program function is in progress.<br>
</li>
<li>The product was created previous to V2R2M0, and there was an error during
the process of converting the product information.</li>
</ul>
</td>
</tr>
<tr>
<td align="left" valign="top"><em>*INSTALLED</em></td>
<td align="left" valign="top">The product load (*PRDLOD) object for this load
was loaded onto the system by the RSTLICPGM command.</td>
</tr>
</table>
<br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td width="15%" valign="top">CPF0C1B E</td>
<td width="85%" valign="top">Requirements between parameters not
satisfied.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C1C E</td>
<td align="left" valign="top">Release level &amp;1 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C1D E</td>
<td align="left" valign="top">Load ID &amp;1 not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C1E E</td>
<td align="left" valign="top">Error occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C1F E</td>
<td align="left" valign="top">Product information not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C30 E</td>
<td align="left" valign="top">Release level *ONLY not valid for product
&amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C4B E</td>
<td align="left" valign="top">Product availability object &amp;2/&amp;1
recovery required.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C4C E</td>
<td align="left" valign="top">Cannot allocate object &amp;1 in library
&amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF0C4D E</td>
<td align="left" valign="top">Error occurred while processing object &amp;1 in
library &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF247E E</td>
<td align="left" valign="top">CCSID &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF24B4 E</td>
<td align="left" valign="top">Severe error while addressing parameter
list.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td align="left" valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C1D E</td>
<td align="left" valign="top">Length specified in parameter &amp;1 not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C19 E</td>
<td align="left" valign="top">Error occurred with receiver variable
specified.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C21 E</td>
<td align="left" valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C24 E</td>
<td align="left" valign="top">Length of the receiver variable is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C39 E</td>
<td align="left" valign="top">Value for reserved field not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C90 E</td>
<td align="left" valign="top">Literal value cannot be changed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8191 E</td>
<td align="left" valign="top">Product definition &amp;4 in &amp;9 damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF8193 E</td>
<td align="left" valign="top">Product load object &amp;4 in &amp;9
damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9838 E</td>
<td align="left" valign="top">User profile storage limit exceeded.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9872 E</td>
<td align="left" valign="top">Program or service program &amp;1 in library
&amp;2 ended. Reason code &amp;3.</td>
</tr>
</table>
<br>
<hr>
<p>API introduced: V2R3</p>
<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=
"sw1.htm">Software Product APIs</a> | <a href="aplist.htm">APIs by
category</a></td>
</tr>
</table>
</body>
</html>