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

868 lines
25 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 Library Description (QLIRLIBD) 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. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- QLIRLIBD SCRIPT A converted by B2H R4.1 (346) (CMS) by PMHALL at -->
<!-- RCHVMW2 on 7 Oct 1998 at 09:26:40 -->
<!-- Edited by Kersten Jan 02 -->
<!-- Updates from System API Programming book phase-out, July 2002 by JET -->
<!-- Change history - the revision tagging used for changes relating to DCR 98416 is v5r2delta LAW -->
<!-- Change history - the revision tagging used for changes relating -->
<!-- to DCR 99834 is v5r4delta LAW 12/26/2003 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<a name="Top_Of_Page"></a>
<h2>Retrieve Library Description (QLIRLIBD) API</h2>
<div class="box" style="width: 70%;">
<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">Library name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Attributes to retrieve</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;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>
The Retrieve Library Description (QLIRLIBD) API lets you retrieve attributes
for a specific library, similar to the Retrieve Library Description (RTVLIBD)
command. This API also returns the number of objects in a library and the
total library size, the size of the objects in the library plus the size of
the library object itself. Currently, the only other function that does this
is the Display Library (DSPLIB) command with OUTPUT(*PRINT).</p>
<br>
<h3>Authorities and Locks</h3>
<p><img src="delta.gif" alt="Start of change">A value of *NOTAVL will
be returned for the create object auditing information unless you have either all
object (*ALLOBJ) or audit (*AUDIT) special authority.
<img src="deltaend.gif" alt="End of change"></p>
<dl>
<dt><em>Library Authority</em></dt>
<dd>*READ</dd>
<dt><em>Library Lock</em></dt>
<dd>*SHRRD</dd>
</dl>
<br>
<h3>Required Parameter Group</h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable that is to receive the information requested. If this area is
smaller than the actual length of the data returned, the API returns only the
data that the area can hold. Refer to <a href="#HDRLIBD1">Format of Data
Returned</a> for details about the format.</p>
</dd>
<dt><strong>Length of receiver variable</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable. The minimum length is 8 bytes. If the
length is larger than the size of the receiver variable, results may be
unpredictable.</p>
</dd>
<dt><strong>Library name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the library for which information is being retrieved.</p>
</dd>
<dt><strong>Attributes to retrieve</strong></dt>
<dd>INPUT; CHAR(*)
<p>The information for the library that you want to retrieve.</p>
<p>The information must be in the following format:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top">Number of elements in request array</td>
<td align="left" valign="top">BINARY(4)
<p>The total number of all of the request keys.</p>
</td>
</tr>
<tr>
<td align="left" valign="top">Request keys</td>
<td align="left" valign="top">ARRAY of BINARY(4)
<p>An array of request keys to identify what fields of information about the
library are requested. The size of the array is defined in the preceding number
of elements in request array value. For a list of the valid key identifiers,
see the topic <a href="#HDRREQKEY">Keys</a>.</p>
</td>
</tr>
</table>
<br>
</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><a name="HDRLIBD1">Format of Data Returned</a></h3>
<p>For detailed descriptions of the fields, see <a href="#HDRLIBD2">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%">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">Variable length records returned</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">Variable length records available</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Variable length record for each key specified.
For the specific format of the variable length record, see <a href=
"#HDRVARREC">Format for Variable Length Record</a>.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRVARREC">Format for Variable Length Record</a></h3>
<p>For detailed descriptions of the fields, see <a href="#HDRLIBD2">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%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of returned data</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">Key identifier</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">Size of field</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Field value</td>
</tr>
<tr>
<td align="center" valign="top"></td>
<td align="center" valign="top"></td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRLIBD2">Field Descriptions</a></h3>
<p><strong>Bytes available.</strong> The length of all data available to
return. All available data is returned if enough space is provided.</p>
<p><strong>Bytes returned.</strong> The length of the data actually returned.
This value includes the length of this field and all the fields following it in
the structure.</p>
<p>If insufficient space is provided for the receiver variable, this value
would be set to the last byte of the last complete variable length record.</p>
<p><strong>Field value.</strong> The value of the field returned.</p>
<p><strong>Key identifier.</strong> The key that identifies the returned field.
For a list of the valid keys, see <a href="#HDRREQKEY">Keys</a>.</p>
<p><strong>Length of returned data.</strong> The length associated with a
particular field.</p>
<p>The length includes the space required to hold the following fields:</p>
<ul>
<li>This field</li>
<li>The key identifier</li>
<li>The size of (returned) field</li>
<li>The field value</li>
<li>The reserved field (if multiple keys are requested)</li>
</ul>
<p><strong>Reserved.</strong> An unused field. This field contains hexadecimal
zeros. If multiple keys are requested, a reserved value is added for boundary
alignment.</p>
<p><strong>Size of field.</strong> The size of the returned field.</p>
<p><strong>Variable length records available.</strong> The number of complete
variable length records that can be returned. All variable length records are
returned if enough space is provided.</p>
<p><strong>Variable length records returned.</strong> The number of variable
length records actually returned.</p>
<br>
<h3><a name="HDRREQKEY">Keys</a></h3>
<p>The following table lists the valid key identifiers that can be specified in
the attributes to retrieve parameter. See the <a href="#HDRREQKEY1">Field
Descriptions</a> for the descriptions of the valid key fields.</p>
<table border width="80%">
<tr>
<th align="center" valign="top">Key ID</th>
<th align="left" valign="top">Type</th>
<th align="left" valign="top">Field</th>
</tr>
<tr>
<td align="center" valign="top" width="15%">1</td>
<td align="left" valign="top" width="25%">CHAR(1)</td>
<td align="left" valign="top" width="60%">Type of library</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Auxiliary storage pool (ASP) number</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Create authority</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Create object auditing</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">CHAR(50)</td>
<td align="left" valign="top">Text description</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Library size information</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of objects in library</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Auxiliary storage pool (ASP) device name</td>
</tr>
<tr>
<td align="center" valign="top">
<img src="delta.gif" alt="Start of change">9</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Auxiliary storage pool (ASP) group name
<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRREQKEY1">Field Descriptions</a></h3>
<p><strong>Auxiliary storage
pool (ASP) device name.</strong> The name of the ASP device where storage is
allocated for the library. The following special values may be returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The name of the ASP device cannot be determined.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSBAS</em></td>
<td align="left" valign="top">The system ASP (ASP 1) or basic user ASPs (ASPs
2-32).</td>
</tr>
</table>
<p><img src="delta.gif" alt="Start of change"><strong>Auxiliary storage
pool (ASP) group name.</strong> The name of the ASP group where storage is
allocated for the library. The ASP group name is the name of the primary ASP
within the ASP group. The value returned may be the same as the value returned
for the auxiliary storage pool (ASP) device name field. The following special
values may be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*N</em></td>
<td align="left" valign="top">The name of the ASP group cannot be determined.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSBAS</em></td>
<td align="left" valign="top">System ASP (ASP 1) or basic user ASPs (ASPs
2-32)<img src="deltaend.gif" alt="End of change"></td>
</tr>
</table>
<p><strong>Auxiliary storage
pool (ASP) number.</strong> The number of the auxiliary storage pool (ASP) from
which the system allocates storage for the library.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">System ASP</td>
</tr>
<tr>
<td align="left" valign="top"><em>2-32</em></td>
<td align="left" valign="top">Basic user ASPs</td>
</tr>
<tr>
<td align="left" valign="top"><em>33-255</em></td>
<td align="left" valign="top">Primary or secondary ASPs</td>
</tr>
</table>
<p><strong>Create authority.</strong> The default public authority for
an object created into the library. This is the authority given to a user who
does not have specific authority to the object, who is not on an authorization
list specified for the object, and whose user groups have no specific authority
to the object. When you create an object into the library, the AUT parameter on
the create command for the object determines the public authority for the object.
If the AUT value on the create command for the object is *LIBCRTAUT, which is
the default, the public authority for the object is set to the CRTAUT value for
the library.</p>
<p>The valid 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 user can perform all authorized operations on
an object created in this library.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHANGE</em></td>
<td align="left" valign="top">The user can read the object description and has
read, add, update, and delete authority to an object created in this
library.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*EXCLUDE</em></td>
<td align="left" valign="top">The user is prevented from accessing an object
created in this library.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSVAL</em></td>
<td align="left" valign="top">The default authority for an object created in
this library is determined by the value specified by the QCRTAUT system
value.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USE</em></td>
<td align="left" valign="top">The user can read the object and its description
but cannot change them for an object created in this library.</td>
</tr>
<tr>
<td align="left" valign="top"><em>Authorization list name</em></td>
<td align="left" valign="top">The name of the authorization list that secures
an object created in this library. The default public authority is taken from
the authorization list, and the public authority for the object is specified as
*AUTL.</td>
</tr>
</table>
<p><strong>Create object auditing.</strong> The auditing value for objects
created in this library.</p>
<p>The valid values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>*ALL</em></td>
<td align="left" valign="top">All change or read access to the object is
logged.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*CHANGE</em></td>
<td align="left" valign="top">All change access to the object by all users is
logged.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*NONE</em></td>
<td align="left" valign="top">Use or change access to the object is not logged
(no audit entry is sent to the security journal).</td>
</tr>
<tr>
<td align="left" valign="top">
<img src="delta.gif" alt="Start of change"><em>*NOTAVL</em></td>
<td align="left" valign="top">The auditing value is not available because you
do not have either all object (*ALLOBJ) or audit (*AUDIT) special authority.
<img src="deltaend.gif" alt="End of change"></td>
</tr>
<tr>
<td align="left" valign="top"><em>*SYSVAL</em></td>
<td align="left" valign="top">The value specified in the system value
QCRTOBJAUD is used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>*USRPRF</em></td>
<td align="left" valign="top">The user profile of the user who accesses the
object is used to determine if an audit record is sent for this access. The
OBJAUD parameter of the Change User Auditing (CHGUSRAUD) command is used to
turn auditing on for a specific user.</td>
</tr>
</table>
<p><strong>Library size information.</strong> Information about the size of the
library, which includes the size of the objects in the library plus the size of
the library object itself. Only objects to which you have an authority other
than *EXCLUDE are included in the total library size.
See <a href="#HDRLIBFLD">Library Size Information Format</a> for the format of this
key.</p>
<p><strong>Number of objects in library.</strong> The total number of objects
in the specified library. The count includes objects to which you may not be
authorized.</p>
<p><strong>Text description.</strong> The user-defined text that briefly
describes the library and its function.</p>
<p><strong>Type of library.</strong> The library type.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>'0'</em></td>
<td align="left" valign="top">The library is a production library. Database
files in production libraries cannot be opened for updating if a user, while in
debug mode, requested that production libraries be protected.</td>
</tr>
<tr>
<td align="left" valign="top"><em>'1'</em></td>
<td align="left" valign="top">The library is a test library. All objects in a
test library can be updated during a test. See the Start Debug (STRDBG) command
in the online help for more details.</td>
</tr>
</table>
<br>
<br>
<h3><a name="HDRLIBFLD">Library Size Information Format</a></h3>
<p>The following table shows the layout of the library size information key.
For detailed descriptions of the fields, see <a href="#HDRLIBFLDD">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%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Library size</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">Library size multiplier</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">Information status</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>
</table>
<br>
<br>
<h3><a name="HDRLIBFLDD">Field Descriptions</a></h3>
<p><strong>Information status.</strong> Whether or not all objects in the
library were calculated in the library size.</p>
<p>The following values can be returned:</p>
<table cellpadding="5">
<!-- cols="10 90" -->
<tr>
<td align="left" valign="top"><em>'0'</em></td>
<td align="left" valign="top">Some objects in the library are locked, or the
user does not have any authority to the object. The size of these objects was
not included in the total library size.</td>
</tr>
<tr>
<td align="left" valign="top"><em>'1'</em></td>
<td align="left" valign="top">The size of all the objects in the library was
used in determining the total library size.</td>
</tr>
</table>
<p><strong>Library size.</strong> The size of the library object and all of the
objects in the library in units of the library size multiplier. If the
information status field is 1, the total library size is equal to or smaller
than the library size multiplied by the library size multiplier. If the
information status field is 0, the total library size could be greater than the
library size multiplied by the library size multiplier because the size of some
objects has not been included in the total library size.</p>
<p><strong>Library size multiplier.</strong> The value to multiply the library
size by to get the total library size.</p>
<p>The following values can be returned:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">The total library size is smaller than 1, 000,
000, 000 bytes.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1024</em></td>
<td align="left" valign="top">The total library size is between 1, 000, 000,
000 and 1, 024, 000, 000, 000 bytes.</td>
</tr>
<tr>
<td align="left" valign="top"><em>1&nbsp;048&nbsp;576</em></td>
<td align="left" valign="top">The total library size is larger than 1, 024,
000, 000, 000 bytes.</td>
</tr>
</table>
<p><strong>Reserved.</strong> An unused field. This field contains hexadecimal
zeros.</p>
<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">CPF2115 E</td>
<td align="left" valign="top">Object &amp;1 in &amp;2 type *&amp;3
damaged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2150 E</td>
<td align="left" valign="top">Object information function failed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF2151 E</td>
<td align="left" valign="top">Operation failed for &amp;2 in &amp;1 type
*&amp;3.</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">CPF3C19 E</td>
<td align="left" valign="top">Error occurred with receiver variable
specified.</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">CPF3C82 E</td>
<td align="left" valign="top">Key &amp;1 not valid for API &amp;2.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C88 E</td>
<td align="left" valign="top">Number of variable length records &amp;1 is not
valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3C89 E</td>
<td align="left" valign="top">Key &amp;1 specified more than once.</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">CPF8100 E</td>
<td align="left" valign="top">All CPF81xx messages could be returned. xx is
from 01 to FF.</td>
</tr>
<tr>
<td align="left" valign="top">CPF980B E</td>
<td align="left" valign="top">Object &amp;1 in library &amp;2 not
available.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9810 E</td>
<td align="left" valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9820 E</td>
<td align="left" valign="top">Not authorized to use library &amp;1.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9830 E</td>
<td align="left" valign="top">Cannot assign library &amp;1.</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>
API introduced: V3R1
<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=
"obj1.htm">Object API categories</a> | <a href="aplist.htm">API by
category</a></td>
</tr>
</table>
</body>
</html>