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

3304 lines
100 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<!-- 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 -->
<!-- NETMG2 SCRIPT A converted by B2H R4.1 (346) (CMS) by HOLTJM at -->
<!-- RCHVMW2 on 29 Jan 1999 at 10:01:37 -->
<!--Edited by Kersten Oct 2001 -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
<title>Record Types</title>
</head>
<body>
<!--End Header Records -->
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<h2>Record Types</h2>
<p>This section describes the information contained in all the different record
types. Typically a compiler writes records and an application reads them.</p>
<p>Names, field types and other information passed through the different record
types are <em>not</em> validated and no authority is checked by QLYWRTBI. The
QLYWRTBI API assumes that all that validation and checking has been done.</p>
<p>There are the following record types:</p>
<ul>
<li>Processor member start record</li>
<li>Processor object start record</li>
<li>Normal processor end record</li>
<li>Normal processor end call next record</li>
<li>Normal multiple end record</li>
<li>Abnormal processor end record</li>
<li>Include record</li>
<li>File reference record</li>
<li>Module reference record</li>
<li>Service program reference record</li>
<li>Bind directory reference record</li>
<li>Record format reference record</li>
<li>Field reference record</li>
<li>Message reference record</li>
<li>External reference error record</li>
<li>Object already exists error record</li>
<li>Start of new program record</li>
</ul>
<p>The following table shows the records that can be written by each
compiler.</p>
<p>All fields where information is not available to put in these records should
be filled with blanks.</p>
<p>The following is true for the <em>Library specified</em> fields for all
records and compilers:</p>
<ul>
<li>When *CURLIB is specified for the <em>Library specified</em> fields,
*CURLIB is passed.</li>
<li>When *LIBL is specified for the <em>Library specified</em> fields, or
implied by not being specified, *LIBL is passed.</li>
</ul>
<p>Notes and restrictions are explained in the footnotes following the
tables.</p>
<p><strong><a name="TBLCSUPP">Record Types and Processors (Part
1)</a></strong></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="middle">Record Type</th>
<th align="left" valign="middle">Record ID</th>
<th align="left" valign="middle">RPG/400<SUP>(R)</SUP>: CRTRPGPGM</th>
<th align="left" valign="middle">COBOL/400<SUP>(R)</SUP>: CRTCBLPGM</th>
<th align="left" valign="middle">CLD: CRTCLD</th>
<th align="left" valign="middle">DDS: CRTPF CRTLF CRTDSPF CRTICFF CRTPRTF</th>
<th align="left" valign="middle">CL: CRTCLPGM</th>
<th align="left" valign="middle">CMD: CRTCMD</th>
</tr>
<tr>
<td align="left" valign="top">Processor member start</td>
<td align="center" valign="top">'01'</td>
<td align="center" valign="top">X(1, 3)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1, 3)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1, 3, 5)</td>
<td align="center" valign="top">X(1)</td>
</tr>
<tr>
<td align="left" valign="top">Processor object start</td>
<td align="center" valign="top">'50'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end</td>
<td align="center" valign="top">'20'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(5)</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end call next</td>
<td align="center" valign="top">'21'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Normal multiple end record</td>
<td align="center" valign="top">'65'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Abnormal processor end</td>
<td align="center" valign="top">'30'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(5)</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Include</td>
<td align="center" valign="top">'02'</td>
<td align="center" valign="top">X(11)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">File reference</td>
<td align="center" valign="top">'03'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1, 5)</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Module reference</td>
<td align="center" valign="top">'55'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Service program reference</td>
<td align="center" valign="top">'60'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Bind directory reference</td>
<td align="center" valign="top">'75'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Record format reference</td>
<td align="center" valign="top">'04'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1, 5)</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Field reference</td>
<td align="center" valign="top">'05'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(2)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Message reference</td>
<td align="center" valign="top">'06'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(2, 9)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(1, 2, 6, 9)</td>
</tr>
<tr>
<td align="left" valign="top">External reference error</td>
<td align="center" valign="top">'15'</td>
<td align="center" valign="top">X(10)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(10)</td>
<td align="center" valign="top">X(1, 4, 5)</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Object already exists error</td>
<td align="center" valign="top">'16'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Start of new program</td>
<td align="center" valign="top">'40'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(20)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
</table>
<br>
<br>
<p><strong><a name="TBLCSUPP3">Record Types and Processors (Part
2)</a></strong></p>
<table border cellpadding="3">
<!-- cols="11 11 12 13 14 12 12 15" -->
<tr>
<th align="left" valign="middle">Record Type</th>
<th align="left" valign="middle">Record ID</th>
<th align="left" valign="middle">DB2<SUP>(R)</SUP> UDB for iSeries<SUP>(TM)</SUP>: CRTSQLRPG CRTSQLCBL</th>
<th align="left" valign="middle">ILE RPG/400: CRTRPGMOD CRTBNDRPG</th>
<th align="left" valign="middle">ILE COBOL/400: CRTCBLMOD CRTBNDCBL</th>
<th align="left" valign="middle">ILE C: CRTCMOD CRTBNDC</th>
<th align="left" valign="middle">ILE CL: CRTCLMOD CRTBNDCL</th>
<th align="left" valign="middle">ILE DB2 UDB for iSeries: CRTSQLRPGI CRTSQLCBLI
CRTSQLCI</th>
</tr>
<tr>
<td align="left" valign="top">Processor member start</td>
<td align="center" valign="top">'01'</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X(1, 3)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(3)</td>
<td align="center" valign="top">X(1, 3)</td>
<td align="center" valign="top">X(1)</td>
</tr>
<tr>
<td align="left" valign="top">Processor object start</td>
<td align="center" valign="top">'50'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end</td>
<td align="center" valign="top">'20'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end call next</td>
<td align="center" valign="top">'21'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(14)</td>
<td align="center" valign="top">X(14)</td>
<td align="center" valign="top">X(14)</td>
<td align="center" valign="top">X(14)</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Normal multiple end record</td>
<td align="center" valign="top">'65'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Abnormal processor end</td>
<td align="center" valign="top">'30'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Include</td>
<td align="center" valign="top">'02'</td>
<td align="center" valign="top">X(1, 7)</td>
<td align="center" valign="top">X(11)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(8, 12)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(1, 7)</td>
</tr>
<tr>
<td align="left" valign="top">File reference</td>
<td align="center" valign="top">'03'</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X(1)</td>
</tr>
<tr>
<td align="left" valign="top">Module reference</td>
<td align="center" valign="top">'55'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Service program reference</td>
<td align="center" valign="top">'60'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Bind directory reference</td>
<td align="center" valign="top">'75'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Record format reference</td>
<td align="center" valign="top">'04'</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X(1)</td>
</tr>
<tr>
<td align="left" valign="top">Field reference</td>
<td align="center" valign="top">'05'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Message reference</td>
<td align="center" valign="top">'06'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">External reference error</td>
<td align="center" valign="top">'15'</td>
<td align="center" valign="top">X(1)</td>
<td align="center" valign="top">X(10)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(10, 13)</td>
<td align="center" valign="top">X(1, 4)</td>
<td align="center" valign="top">X(1)</td>
</tr>
<tr>
<td align="left" valign="top">Object already exists error</td>
<td align="center" valign="top">'16'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Start of new program</td>
<td align="center" valign="top">'40'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(20)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(20)</td>
</tr>
</table>
<br>
<br>
<p><strong><a name="TBLCSUPP2">Record Types and Processors (Part
3)</a></strong></p>
<table border cellpadding="3">
<tr>
<th align="left" valign="middle">Record Type</th>
<th align="left" valign="middle">Record ID</th>
<th align="left" valign="middle">ILE SRVPGM: CRTSRVPGM</th>
<th align="left" valign="middle">ILE CRTPGM</th>
<th align="left" valign="middle">UIM: CRTPNLGRP</th>
<th align="left" valign="middle">CRTMNU</th>
<th align="left" valign="middle">UDT: SYSTYPE (*NONE)</th>
<th align="left" valign="middle">UDT: member</th>
</tr>
<tr>
<td align="left" valign="top">Processor member start</td>
<td align="center" valign="top">'01'</td>
<td align="center" valign="top">X(18)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(17)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Processor object start</td>
<td align="center" valign="top">'50'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(16)</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(19)</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end</td>
<td align="center" valign="top">'20'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Normal processor end call next</td>
<td align="center" valign="top">'21'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Normal multiple end record</td>
<td align="center" valign="top">'65'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X(19)</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Abnormal processor end</td>
<td align="center" valign="top">'30'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X(19)</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Include</td>
<td align="center" valign="top">'02'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">File reference</td>
<td align="center" valign="top">'03'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Module reference</td>
<td align="center" valign="top">'55'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Service program reference</td>
<td align="center" valign="top">'60'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Bind directory reference</td>
<td align="center" valign="top">'75'</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
</tr>
<tr>
<td align="left" valign="top">Record format reference</td>
<td align="center" valign="top">'04'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Field reference</td>
<td align="center" valign="top">'05'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Message reference</td>
<td align="center" valign="top">'06'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">External reference error</td>
<td align="center" valign="top">'15'</td>
<td align="center" valign="top">X(15)</td>
<td align="center" valign="top">X(15)</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">X</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Object already exists error</td>
<td align="center" valign="top">'16'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
<tr>
<td align="left" valign="top">Start of new program</td>
<td align="center" valign="top">'40'</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">X</td>
</tr>
</table>
<p><strong>Notes and Restrictions for the Above Tables:</strong></p>
<ol>
<li>If *CURLIB is specified for the <em>Library specified</em> fields (this
includes the <em>Source library specified</em> field on the Processor member
start record), the resolved library name is passed instead of *CURLIB.<br>
<br>
</li>
<li>If *LIBL is specified for the <em>Library specified</em> fields, or implied
by not being specified, the resolved library name is passed instead of
*LIBL.<br>
<br>
</li>
<li>If *CURLIB is specified for the <em>Target library</em> field, the resolved
library name is passed instead of *CURLIB.<br>
<br>
</li>
<li>For most <em>Used</em> fields, when a file being referenced on the DCLF
command cannot be found, CL puts blanks in this field. There is no actual file
or library name when the file is not found.<br>
<br>
</li>
<li>For all fields marked <em>Reserved</em>, CL initializes them to hex zeros.
However, fields that are not reserved are set to blanks when they do not apply
and are defined as characters. For example, <em>Target member</em> on the
Processor member start record does not have meaning for the CL compiler and is
initialized to blanks.<br>
<br>
</li>
<li>Message reference records are written only for messages specified on the
PROMPT parameter of the PARM, ELEM, or QUAL command definition statement.<br>
<br>
</li>
<li>The SQL compilers do not write include records for the following
statements:<br>
<dl>
<dd>EXEC SQL INCLUDE SQLCA</dd>
<dd>EXEC SQL INCLUDE SQLDA</dd>
</dl>
<p>These statements are not true includes in the sense that the SQL compiler
does not read source from another member or source file.</p>
</li>
<li>The ILE C compiler does not write API Include records for system include
files. File names enclosed in angle brackets, (&lt; ... &gt;), designate system
include files. File names enclosed in double quotation marks, (" ... "),
designate user include files.<br>
<br>
</li>
<li>The <em>Message file used</em> and <em>Library used</em> fields are always
blank.<br>
<br>
</li>
<li>If *LIBL is specified in the source, or implied by not being specified
(<em>Library specified</em> is *LIBL), the <em>Library used</em> field is set
to *LIBL because no specific library can be determined if the file is not found
in the library list.<br>
<br>
</li>
<li>The RPG/400 compiler puts *LIBL in the <em>Library specified</em> field if
it is not already specified, and QRPGSRC in the <em>File specified</em> field
if it is not already specified.
<p>The ILE RPG/400 compiler puts *LIBL in the <em>Library specified</em> field
if it is not already specified, and QRPGLESRC in the <em>File specified</em>
field if it is not already specified.</p>
</li>
<li>The <em>Library specified</em> field is the resolved library name if the
library name is not already specified. The <em>Include file specified</em>
field contains the resolved file name if the file name is not already
specified.<br>
<br>
</li>
<li>If *CURLIB is specified in the source (<em>Library specified</em> is
*CURLIB), the <em>Library used</em> field is set to *CURLIB because no specific
library can be determined if the file is not found in the library list.<br>
<br>
</li>
<li>This record is written only by the CRTBNDxxx commands.<br>
<br>
</li>
<li>This record is written only when a SRVPGM or MODULE does not exist, and
this causes the compilation to fail.<br>
<br>
</li>
<li>The object fields in this record refer to the ENTMOD parameter for the
CRTPGM command.<br>
<br>
</li>
<li>CRTMNU only writes records when TYPE(*UIM) is specified.<br>
<br>
</li>
<li>The source used fields contain the same information as the source specified
fields.<br>
<br>
</li>
<li>
User-defined types are part types that the user created.
<br>
<br>
</li>
<li>Any COBOL/400 source may contain more than one program.</li>
</ol>
<br>
<h3><a name="HDRPSTART">Processor member start record</a></h3>
<p>This, or the Processor object start record, must be the first record that is
passed by the compiler or preprocessor on its first call to the QLYWRTBI API.
Its purpose is to identify the source that is being compiled, and also to
describe the expected output object, if any.</p>
<p><strong>Note:</strong> This record was previously called the
<strong>processor start</strong> record, but the format remains the same.</p>
<p>The Processor member start record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Processor command</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source object name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source library name specified</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Source object type</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source member name specified</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source object name used</td>
</tr>
<tr>
<td align="center" valign="top">65</td>
<td align="center" valign="top">41</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source library name used</td>
</tr>
<tr>
<td align="center" valign="top">75</td>
<td align="center" valign="top">4B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Source member name used</td>
</tr>
<tr>
<td align="center" valign="top">85</td>
<td align="center" valign="top">55</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Target object name specified</td>
</tr>
<tr>
<td align="center" valign="top">95</td>
<td align="center" valign="top">5F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Target library name specified</td>
</tr>
<tr>
<td align="center" valign="top">105</td>
<td align="center" valign="top">69</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Target object type</td>
</tr>
<tr>
<td align="center" valign="top">112</td>
<td align="center" valign="top">70</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Target member name specified</td>
</tr>
<tr>
<td align="center" valign="top">122</td>
<td align="center" valign="top">7A</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>All compilers and preprocessors listed in <a href=
"hll1.htm#TBLPREPROC">Record Types and Processors (Part 1)</a> except CRTPGM,
and the processor processing the user-defined types added with SYSTYPE(*NONE)
on the ADDADMTYPE command.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Processor command.</strong> The compiler or preprocessor that wrote
this record, for example, CRTRPGPGM.</p>
<p><strong>Record length.</strong> The length of this record is 124.</p>
<p><strong>Record type.</strong> The type of this record is '01'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Source library name used.</strong> The actual name of the library
that was used. The library name could be different from the specified library
name because *LIBL or *CURLIB was specified, or an override was used. This
field contains the name the library resolves to.</p>
<p><strong>Source library name specified.</strong> The library name of the
source file specified on the compiler or preprocessor command.</p>
<p><strong>Source member name used.</strong> The actual name of the source
member that was used. This field is required, even if the two member names are
the same.</p>
<p><strong>Source member name specified.</strong> The source member name
specified on the compiler or preprocessor command.</p>
<p><strong>Source object name used.</strong> The actual name of the object that
was used. The object name could be different from the specified object name if
an override was used.</p>
<p><strong>Source object name specified.</strong> The object name specified on
the compiler or preprocessor command.</p>
<p><strong>Source object type.</strong> The i5/OS<SUP>(TM)</SUP> type of the source object
(for example, *FILE).</p>
<p><strong>Target library name specified.</strong> The library of the target
object specified on the compiler or preprocessor command.</p>
<p><strong>Target member name specified.</strong> The name of the member to be
created, if applicable, specified on the compiler or preprocessor command.</p>
<p><strong>Target object name specified.</strong> The name of the object to be
created, called the target object, specified on the compiler or preprocessor
command. The actual name of the object that was created is passed through the
Normal processor end record. (See <a href="#HDRNORM">Normal processor end
record</a>.)</p>
<p><strong>Target object type.</strong> The i5/OS type of the object to be
created (for example, *FILE).</p>
<br>
<h3><a name="HDRPOSTART">Processor object start record</a></h3>
<p>This, or the Processor member start record, must be the first record that is
passed by the compiler or preprocessor on its first call to the QLYWRTBI API.
Its purpose is to identify the object that is being processed, and also to
describe the expected output object, or, for user-defined types, the expected
location of the output members, if any.</p>
<p>User-defined types added with SYSTYPE(*NONE) on the ADDADMTYPE command must
write this record before any other record.</p>
<p>The Processor object start record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Processor command</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name specified</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type specified</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name used</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name used</td>
</tr>
<tr>
<td align="center" valign="top">65</td>
<td align="center" valign="top">41</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type used</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Target object name specified</td>
</tr>
<tr>
<td align="center" valign="top">82</td>
<td align="center" valign="top">52</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Target object library name specified</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Target object type specified</td>
</tr>
<tr>
<td align="center" valign="top">99</td>
<td align="center" valign="top">63</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>CRTPGM and the processor processing the user-defined types added with
SYSTYPE(*NONE) on the ADDADMTYPE command.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Object library name specified.</strong> The library name of the
object specified on the compiler or preprocessor command. If the object type
specified is a user-defined type with SYSTYPE(*NONE), the library name
specified should be the group library name.</p>
<p><strong>Object library name used.</strong> The actual name of the library
that the object was found in. The library name could be different from the
specified library name because, for example, *LIBL or *CURLIB was specified.
This field contains the name the library resolves to.</p>
<p><strong>Object name specified.</strong> The object name specified on the
command. If the object type specified is a user-defined type with
SYSTYPE(*NONE), the object name specified should be the part name.</p>
<p><strong>Object name used.</strong> The actual name of the object that was
used. The object name could be different from the specified object name if an
override was used.</p>
<p><strong>Object type specified.</strong> The object type specified on the
command. For user-defined types this must be left blank. If the object type
specified is a user-defined type with SYSTYPE(*NONE), the object type specified
should be the part type.</p>
<p><strong>Object type used.</strong> The actual type of the object used. For
example, *MODULE. For user-defined types this can be left blank.</p>
<p><strong>Processor command.</strong> The compiler or preprocessor that wrote
this record, for example, CRTPGM.</p>
<p><strong>Record length.</strong> The length of this record is 100.</p>
<p><strong>Record type.</strong> The type of this record is '50'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Target object library name specified.</strong> The library of the
target object specified on the command. For user-defined types, the library
where the output members are created, as specified on the command.</p>
<p><strong>Target object name specified.</strong> The name of the object to be
created, or modified as specified on the command. For user-defined types this
can be left blank.</p>
<p><strong>Target object type specified.</strong> The type of the object to be
created. For example, *PGM. The actual name of the object that was created is
passed through the Normal processor end record. (See <a href="#HDRNORM">Normal
processor end record</a>.) For user-defined types, the names of the output
members are passed through the Normal multiple end record. For user-defined
types this value must be *MBR.</p>
<br>
<h3><a name="HDRNORM">Normal processor end record</a></h3>
<p>This is the last record passed by the compiler or preprocessor to indicate
that processing ended successfully.</p>
<p>The Normal processor end record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name created</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">35</td>
<td align="center" valign="top">23</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Message identifier</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>All compilers and preprocessors listed in <a href=
"hll1.htm#TBLPREPROC">Record Types and Processors (Part 1)</a>, except the
processor processing the user-defined types added with SYSTYPE(*NONE) on the
ADDADMTYPE command.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Library name.</strong> The library where the object was created.</p>
<p><strong>Member name.</strong> The name of the member created, if
applicable.</p>
<p><strong>Message identifier.</strong> The message identification of the
completion message.</p>
<p><strong>Object name created.</strong> The object created by the compiler or
preprocessor. If an object is not created, this field stores the value of
'*NONE'.</p>
<p><strong>Object type.</strong> The type of object created.</p>
<p><strong>Record length.</strong> The length of this record is 52.</p>
<p><strong>Record type.</strong> The type of this record is '20'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3><a name="HDRNEXT">Normal processor end call next record</a></h3>
<p>When a preprocessor successfully creates an object or a member and needs to
call another compiler or preprocessor, it should pass this record instead of
passing the Normal processor end record as the final record. For example, if
the CRTSQLCI command is entered with OPTION(*GEN), and the member is created
successfully, the last record written by CRTSQLCI is the Normal processor end
call next record. The preprocessor then calls the CRTBNDC command that
eventually writes the Normal or Abnormal processor end record.</p>
<p>The Normal processor end call next record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">35</td>
<td align="center" valign="top">23</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member name</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Message identifier</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTSQLRPG</td>
<td align="left" valign="top">CRTSQLCBL</td>
<td align="left" valign="top">CRTSQLRPGI</td>
<td align="left" valign="top">CRTSQLCBLI</td>
</tr>
<tr>
<td align="left" valign="top">CRTBNDRPG</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTBNDC</td>
<td align="left" valign="top">CRTBNDCL</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLCI when OPTION(*GEN) is specified</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Library name.</strong> The library where the object was created.</p>
<p><strong>Member name.</strong> The name of the member created, if
applicable.</p>
<p><strong>Message identifier.</strong> The message identification of the
completion message.</p>
<p><strong>Object name.</strong> The name of the object created.</p>
<p><strong>Object type.</strong> The type of object created.</p>
<p><strong>Record length.</strong> The length of this record is 52.</p>
<p><strong>Record type.</strong> The type of this record is '21'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3><a name="HDRNORM2">Normal multiple end record</a></h3>
<p>This is the last record passed by a user-defined type added with
SYSTYPE(*NONE) on the ADDADMTYPE command. It identifies Normal multiple end
processing of <strong>all</strong> the output members. One Normal multiple end
record is written per member generated. The Normal processor end record should
not be written.</p>
<p><strong>Note:</strong> It is possible that the processor generated 10
members on the last build, and because of a change, now needs to regenerate
just 2 of those members. For the build process to preserve the relationships to
the remaining 8 members, the processor must write all members to the API,
regardless of whether the member was actually regenerated. The build process
ignores those parts (members) that have either not changed (because the
processor did not regenerate them), or do not exist (because the processor did
not generate them, and they may exist higher in the hierarchy).</p>
<p>The Normal multiple end record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Library</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name created</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Member</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(32)</td>
<td align="left" valign="top">Part type</td>
</tr>
<tr>
<td align="center" valign="top">70</td>
<td align="center" valign="top">46</td>
<td align="left" valign="top">CHAR(32)</td>
<td align="left" valign="top">Part language</td>
</tr>
<tr>
<td align="center" valign="top">102</td>
<td align="center" valign="top">66</td>
<td align="left" valign="top">CHAR(22)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>The processor processing the user-defined types added with SYSTYPE(*NONE) on
the ADDADMTYPE command.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>File name created.</strong> The file name that was created or used
to hold the member.</p>
<p><strong>Library.</strong> The library where the member was created.</p>
<p><strong>Member.</strong> The name of the member created.</p>
<p><strong>Part language.</strong> The language of the part to represent this
member.</p>
<p><strong>Part type.</strong> The type of the part to represent this
member.</p>
<p><strong>Record length.</strong> The length of this record is 124.</p>
<p><strong>Record type.</strong> The type of this record is '65'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3><a name="HDRABNREC">Abnormal processor end record</a></h3>
<p>This is the last record passed if the compiler or preprocessor fails because
of an error. For example, an object or a member was not created because of
compile errors, or REPLACE(*NO) was specified on the command and the object
existed.</p>
<p>If the command failed because an external reference to a file, message file,
module, bind directory or service program could not be found, the command
passes the External reference error record before passing this one. See <a
href="#HDREXTREF">External reference error record</a> for more information on
this record.</p>
<p>The Abnormal processor end record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Message identifier</td>
</tr>
<tr>
<td align="center" valign="top">15</td>
<td align="center" valign="top">F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>All compilers and preprocessors listed in <a href=
"hll1.htm#TBLPREPROC">Record Types and Processors (Part 1)</a>.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Message identifier.</strong> The message identification of the
completion message.</p>
<p><strong>Record length.</strong> The length of this record is 16.</p>
<p><strong>Record type.</strong> The type of this record is '30'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Include record</h3>
<p>This record is passed when the compiler or preprocessor processes an
include. An <strong>include</strong> statement is a statement that causes the
compiler to replace the include statement with the contents of the specified
header or file. If the include is not found, the compiler or preprocessor
passes the Abnormal processor end record.</p>
<p>The Include record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</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">Nesting level</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file name specified</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file library name specified</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file member name specified</td>
</tr>
<tr>
<td align="center" valign="top">42</td>
<td align="center" valign="top">2A</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">49</td>
<td align="center" valign="top">31</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file name used</td>
</tr>
<tr>
<td align="center" valign="top">59</td>
<td align="center" valign="top">3B</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file library name used</td>
</tr>
<tr>
<td align="center" valign="top">69</td>
<td align="center" valign="top">45</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Include file member name used</td>
</tr>
<tr>
<td align="center" valign="top">79</td>
<td align="center" valign="top">4F</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTRPGPGM</td>
<td align="left" valign="top">CRTCBLPGM</td>
<td align="left" valign="top">CRTRPGMOD</td>
<td align="left" valign="top">CRTBNDRPG</td>
</tr>
<tr>
<td align="left" valign="top">CRTCBLMOD</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTCMOD</td>
<td align="left" valign="top">CRTBNDC</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLRPGI</td>
<td align="left" valign="top">CRTSQLCBLI</td>
<td align="left" valign="top">CRTSQLCI</td>
<td align="left" valign="top">CRTPNLGRP</td>
</tr>
<tr>
<td align="left" valign="top">CRTMNU</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Include file used.</strong> The actual name of the include file that
was used. For example, the default include file used by the compiler and
implied in the source, or the file different from the one specified in the
source as a result of an override. This name must always be filled in.</p>
<p><strong>Include file specified.</strong> The name of the file that contains
the include. This is the name specified in the source (if the include was file
qualified), otherwise it is blank.</p>
<p><strong>Include file library used.</strong> The name of the actual library
that contains the include file that was used (for example, a specific library
name instead of *CURLIB or *LIBL, as specified in the source, or a library
different from the one specified in the source, as a result of an
override).</p>
<p><strong>Include file library specified.</strong> The name of the library
where the include file resides, as specified in the source (if the include was
library qualified), otherwise it is blank.</p>
<p><strong>Include file member used.</strong> The actual name of the source
member containing the include that was used. This name must always be filled
in.</p>
<p><strong>Include file member specified.</strong> The name of the source
member containing the include, as specified in the source.</p>
<p><strong>Nesting level.</strong> The level of nesting of the include.
Includes found in the root source have a nesting level of 1, includes found in
level 1 have a nesting level of 2 and so on.</p>
<p><strong>Object type.</strong> The object type of the object containing the
include, for example *FILE.</p>
<p><strong>Record length.</strong> The length of this record is 80.</p>
<p><strong>Record type.</strong> The type of this record is '02'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p>The nesting level should be indicated even by those compilers that do not
allow include nesting. In that case, the nesting level passed should be equal
to 1.</p>
<br>
<h3><a name="HDRFILEREF">File reference record</a></h3>
<p>This record is passed when the compiler or preprocessor encounters a
reference to an externally described file but not its record format or
field.</p>
<p>For example, a reference is made in DDS source using the PFILE or JFILE
keywords. Another example is when a compiler or preprocessor copies
<em>all</em> the record format declares from a file. This is not considered to
be a dependency on any specific record format and is treated as a dependency on
the file, so this record must be passed, not the Record format reference
records for all the individual record formats.</p>
<p>The File reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Based on indicator</td>
</tr>
<tr>
<td align="center" valign="top">29</td>
<td align="center" valign="top">1D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name used</td>
</tr>
<tr>
<td align="center" valign="top">39</td>
<td align="center" valign="top">27</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name used</td>
</tr>
<tr>
<td align="center" valign="top">49</td>
<td align="center" valign="top">31</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Nesting level</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTRPGPGM</td>
<td align="left" valign="top">CRTCBLPGM</td>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
</tr>
<tr>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTICFF</td>
<td align="left" valign="top">CRTPRTF</td>
<td align="left" valign="top">CRTCLPGM</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLRPG</td>
<td align="left" valign="top">CRTSQLCBL</td>
<td align="left" valign="top">CRTRPGMOD</td>
<td align="left" valign="top">CRTBNDRPG</td>
</tr>
<tr>
<td align="left" valign="top">CRTCBLMOD</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTCMOD</td>
<td align="left" valign="top">CRTBNDC</td>
</tr>
<tr>
<td align="left" valign="top">CRTCLMOD</td>
<td align="left" valign="top">CRTBNDCL</td>
<td align="left" valign="top">CRTSQLRPGI</td>
<td align="left" valign="top">CRTSQLCBLI</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLCI</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Based on indicator.</strong> Indicates whether the referenced file
is used to base another file on. Possible values are N (no) and Y (yes).</p>
<p><strong>File name used.</strong> The name of the actual file that was
referenced. This name must always be filled in.</p>
<p><strong>File name specified.</strong> The name of the file referenced, as
specified in the source.</p>
<p><strong>File library name used.</strong> The name of the actual library that
contains the file that was referenced. The library name could be different from
the specified library name because *LIBL or *CURLIB was specified, or an
override was used.</p>
<p><strong>File library name specified.</strong> The name of the library of the
file referenced, as specified in the source.</p>
<p><strong>Nesting level.</strong> If this file reference is made within an
include, this field has value of N + 1, where N is the nesting level of the
include. Otherwise, the value of this field is 1.</p>
<p><strong>Record length.</strong> The length of this record is 56.</p>
<p><strong>Record type.</strong> The type of this record is '03'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<br>
<h3><a name="HDRMODREF">Module reference record</a></h3>
<p>This record is passed when a module is successfully referenced by a
processor. This record is not to be written for the ENTMOD module, on the
CRTPGM command.</p>
<p>The Module reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Module name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Module library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Module name used</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Module library name used</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>CRTSRVPGM and CRTPGM.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Module name used.</strong> The name of the actual module that was
referenced. This name must always be filled in.</p>
<p><strong>Module name specified.</strong> The name of the module referenced,
as specified on the command, or in the bind directory.</p>
<p><strong>Module library name used.</strong> The name of the actual library
that contains the module that was referenced. The library name could be
different from the specified library name because *LIBL or *CURLIB was
specified.</p>
<p><strong>Module library name specified.</strong> The name of the library of
the module referenced, as specified on the command, or in the bind
directory.</p>
<p><strong>Record length.</strong> The length of this record is 92.</p>
<p><strong>Record type.</strong> The type of this record is '55'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3><a name="HDRSRVREF">Service program reference record</a></h3>
<p>This record is passed when a service program is successfully referenced by a
processor.</p>
<p>The Service program reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Service program name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Service program library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Service program name used</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Service program library name used</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Service program signature used</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>CRTSRVPGM and CRTPGM.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Record length.</strong> The length of this record is 64.</p>
<p><strong>Record type.</strong> The type of this record is '60'.</p>
<p><strong>Service program name used.</strong> The name of the actual service
program that was referenced. This name must always be filled in.</p>
<p><strong>Service program name specified.</strong> The name of the service
program as specified on the command.</p>
<p><strong>Service program library name used.</strong> The name of the actual
library that contains the service program that was referenced. The library name
could be different from the specified library name because *LIBL or *CURLIB was
specified.</p>
<p><strong>Service program library name specified.</strong> The name of the
library of the service program referenced, as specified on the command.</p>
<p><strong>Service program signature used.</strong> The current signature of
the service program used.</p>
<br>
<h3>Bind directory reference record</h3>
<p>This record is passed when a module is successfully referenced by a
processor. This record is not to be written for the ENTMOD module, on the
CRTPGM command.</p>
<p>The Bind directory reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Bind directory name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Bind directory library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Bind directory name used</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Bind directory library name used</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<p>CRTSRVPGM and CRTPGM.</p>
<br>
<h3>Field Descriptions</h3>
<p><strong>Bind directory name used.</strong> The name of the actual bind
directory that was referenced. This name must always be filled in.</p>
<p><strong>Bind directory name specified.</strong> The name of the bind
directory referenced, as specified on the command.</p>
<p><strong>Bind directory library name used.</strong> The name of the actual
library that contains the bind directory that was referenced. The library name
could be different from the specified library name because *LIBL or *CURLIB was
specified.</p>
<p><strong>Bind directory library name specified.</strong> The name of the
library of the bind directory referenced, as specified on the command.</p>
<p><strong>Record length.</strong> The length of this record is 48.</p>
<p><strong>Record type.</strong> The type of this record is '75'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Record format reference record</h3>
<p>This record is passed when the compiler or preprocessor encounters a
reference to a record format of an externally described file (but not to any
single field). For example, a reference is made in DDS source using the FORMAT
keyword or in the RPG, COBOL, CL, DB2 UDB for iSeries SQL, ILE RPG, ILE COBOL, ILE
CL, or ILE C processors whenever a declaration of a record format structure
from a DDS-described file is generated by the compiler or preprocessor.</p>
<p>The Record format reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Record format name</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Record format level ID</td>
</tr>
<tr>
<td align="center" valign="top">51</td>
<td align="center" valign="top">33</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name used</td>
</tr>
<tr>
<td align="center" valign="top">61</td>
<td align="center" valign="top">3D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name used</td>
</tr>
<tr>
<td align="center" valign="top">71</td>
<td align="center" valign="top">47</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Nesting level</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type is applicable</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTRPGPGM</td>
<td align="left" valign="top">CRTCBLPGM</td>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
</tr>
<tr>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTICFF</td>
<td align="left" valign="top">CRTPRTF</td>
<td align="left" valign="top">CRTCLPGM</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLRPG</td>
<td align="left" valign="top">CRTSQLCBL</td>
<td align="left" valign="top">CRTRPGMOD</td>
<td align="left" valign="top">CRTBNDRPG</td>
</tr>
<tr>
<td align="left" valign="top">CRTCBLMOD</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTCMOD</td>
<td align="left" valign="top">CRTBNDC</td>
</tr>
<tr>
<td align="left" valign="top">CRTCLMOD</td>
<td align="left" valign="top">CRTBNDCL</td>
<td align="left" valign="top">CRTSQLRPGI</td>
<td align="left" valign="top">CRTSQLCBLI</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLCI</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>File name used.</strong> The name of the actual file that was
referenced. This name must always be filled in.</p>
<p><strong>File name specified.</strong> The name of the file being referenced,
as specified in the source.</p>
<p><strong>File library name used.</strong> The name of the actual library that
contains the file that was referenced. The library name could be different from
the specified library name because *LIBL or *CURLIB was specified, or an
override was used. This field contains the name the library resolves to.</p>
<p><strong>File library name specified.</strong> The name of the library of the
file being referenced, as specified in the source.</p>
<p><strong>Nesting level.</strong> If this record format reference is made
within an include, this field has value of N + 1, where N is the nesting level
of the include. Otherwise, the value of this field is 1.</p>
<p><strong>Record format level ID.</strong> The level ID of the record format
referenced.</p>
<p><strong>Record format name.</strong> The name of the record format
referenced.</p>
<p><strong>Record length.</strong> The length of this record is 76.</p>
<p><strong>Record type.</strong> The type of this record is '04'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Field reference record</h3>
<p>This record is passed when the compiler or preprocessor encounters a
reference to a field in an externally described file. For example, a reference
is made in DDS source using the REF and REFFLD keywords.</p>
<p>The Field reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Record format name</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(13)</td>
<td align="left" valign="top">Record format level ID</td>
</tr>
<tr>
<td align="center" valign="top">51</td>
<td align="center" valign="top">33</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Field</td>
</tr>
<tr>
<td align="center" valign="top">61</td>
<td align="center" valign="top">3D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Field length</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Decimal positions</td>
</tr>
<tr>
<td align="center" valign="top">72</td>
<td align="center" valign="top">48</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Data type</td>
</tr>
<tr>
<td align="center" valign="top">73</td>
<td align="center" valign="top">49</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Fixed/variable length indicator</td>
</tr>
<tr>
<td align="center" valign="top">74</td>
<td align="center" valign="top">4A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File name used</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">File library name used</td>
</tr>
<tr>
<td align="center" valign="top">94</td>
<td align="center" valign="top">5E</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTICFF</td>
</tr>
<tr>
<td align="left" valign="top">CRTPRTF</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Data type.</strong> The field data type in DDS. For example, P, S,
B, F, A, or H.</p>
<p><strong>Decimal positions.</strong> The number of decimal positions if the
field is numeric, otherwise 0.</p>
<p><strong>Field.</strong> The name of the referenced field.</p>
<p><strong>Field length.</strong> The length of the field in bytes. If the
field is a variable-length field, the maximum length should be passed.</p>
<p><strong>File name used.</strong> The name of the actual file that was
referenced. This name must always be filled in.</p>
<p><strong>File name specified.</strong> The name of the file being referenced,
as specified in the source.</p>
<p><strong>Fixed/variable length indicator.</strong> Contains F if the field is
of fixed length, or V if variable length.</p>
<p><strong>File library name used.</strong> The name of the actual library that
contains the file that was referenced.</p>
<p><strong>File library name specified.</strong> The name of the library of the
file being referenced, as specified in the source.</p>
<p><strong>Record format level ID.</strong> The level ID of the record format
referenced.</p>
<p><strong>Record format name.</strong> The name of the record format
referenced.</p>
<p><strong>Record length.</strong> The length of this record is 96.</p>
<p><strong>Record type.</strong> The type of this record is '05'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Message reference record</h3>
<p>This record is passed when the compiler encounters a reference to a message
ID in a message file. For example, a reference is made in DDS source using the
MSGCON keyword.</p>
<p>The Message reference record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Message identifier</td>
</tr>
<tr>
<td align="center" valign="top">15</td>
<td align="center" valign="top">F</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file name specified</td>
</tr>
<tr>
<td align="center" valign="top">25</td>
<td align="center" valign="top">19</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file library name specified</td>
</tr>
<tr>
<td align="center" valign="top">35</td>
<td align="center" valign="top">23</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file name used</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Message file library name used</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Nesting Level</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTPRTF</td>
</tr>
<tr>
<td align="left" valign="top">CRTICFF</td>
<td align="left" valign="top">CRTCMD</td>
<td align="left" valign="top">CRTPNLGRP</td>
<td align="left" valign="top">CRTMNU</td>
</tr>
<tr>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
<td align="left" valign="top">&nbsp;</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Message file library used.</strong> The name of the actual library
that contains the message file. This may be *CURLIB or *LIBL if the compiler
does not resolve to the library name.</p>
<p><strong>Message file library specified.</strong> The name of the library
that contains the message file, as specified in the source.</p>
<p><strong>Message file name used.</strong> The name of the actual message file
that was referenced. This name must always be filled in.</p>
<p><strong>Message file name specified.</strong> The name of the message file
referenced, as specified in the source.</p>
<p><strong>Message identifier.</strong> The message ID referenced.</p>
<p><strong>Nesting Level.</strong> The level of nesting of the MSGF. MSGFs
referenced in the root source have a nesting level of 1, MSGFs found in level 1
have a nesting level of 2 and so on.</p>
<p><strong>Record length.</strong> The length of this record is 60.</p>
<p><strong>Record type.</strong> The type of this record is '06'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3><a name="HDREXTREF">External reference error record</a></h3>
<p>This record is passed when processing fails because a referenced object,
such as a file, message file, module, bind directory or service program cannot
be found. This record does <strong>not apply to includes</strong>.</p>
<p>After passing one or more of these records, the compiler or preprocessor
also passes the Abnormal processor end record (see <a href=
"#HDRABNREC">Abnormal processor end record</a>).</p>
<p>The External reference error record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name specified</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name specified</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">35</td>
<td align="center" valign="top">23</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name used</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name used</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Based on indicator</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTRPGPGM</td>
<td align="left" valign="top">CRTCBLPGM</td>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
</tr>
<tr>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTICFF</td>
<td align="left" valign="top">CRTPRTF</td>
<td align="left" valign="top">CRTCLPGM</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLRPG</td>
<td align="left" valign="top">CRTSQLCBL</td>
<td align="left" valign="top">CRTRPGMOD</td>
<td align="left" valign="top">CRTBNDRPG</td>
</tr>
<tr>
<td align="left" valign="top">CRTCBLMOD</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTCMOD</td>
<td align="left" valign="top">CRTBNDC</td>
</tr>
<tr>
<td align="left" valign="top">CRTCLMOD</td>
<td align="left" valign="top">CRTBNDCL</td>
<td align="left" valign="top">CRTSQLRPGI</td>
<td align="left" valign="top">CRTSQLCBLI</td>
</tr>
<tr>
<td align="left" valign="top">CRTSQLCI</td>
<td align="left" valign="top">CRTSRVPGM</td>
<td align="left" valign="top">CRTPGM</td>
<td align="left" valign="top">CRTPNLGRP</td>
</tr>
<tr>
<td align="left" valign="top">CRTMNU</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Based on indicator.</strong> Whether the referenced file is used to
base another file on. Possible values are N (no) and Y (yes). This field is
used by the CRTLF processor.</p>
<p><strong>Object library name used.</strong> The actual name of the library
that contains the object that was referenced.</p>
<p><strong>Object library name specified.</strong> The name of the library that
contains the object that was not found.</p>
<p><strong>Object name used.</strong> The actual name of the object that was
referenced. This name must always be filled in.</p>
<p><strong>Object name specified.</strong> The name of the object referenced
that was not found.</p>
<p><strong>Object type.</strong> The type of object that was not found.</p>
<p><strong>Record length.</strong> The length of this record is 56.</p>
<p><strong>Record type.</strong> The type of this record is '15'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Object already exists error record</h3>
<p>This record is passed when the compiler or preprocessor fails because the
object that was to be created exists. There is no REPLACE parameter on the
command because the compiler or preprocessor expects the object not to
exist.</p>
<p>After passing this record, the compiler or preprocessor must also pass the
Abnormal processor end record (see <a href="#HDRABNREC">Abnormal processor end
record</a>).</p>
<p>The Object already exists error record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name that already exists</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">35</td>
<td align="center" valign="top">23</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTPF</td>
<td align="left" valign="top">CRTLF</td>
<td align="left" valign="top">CRTDSPF</td>
<td align="left" valign="top">CRTICFF</td>
</tr>
<tr>
<td align="left" valign="top">CRTPRTF</td>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Object library name.</strong> The name of the library that contains
the object that already exists. A specific library name, not *CURLIB or *LIBL
must be passed.</p>
<p><strong>Object name that already exists.</strong> The name of the object
that already exists and could not be replaced.</p>
<p><strong>Object type.</strong> The type of the object that already
exists.</p>
<p><strong>Record length.</strong> The length of this record is 36.</p>
<p><strong>Record type.</strong> The type of this record is '16'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<br>
<h3>Start of new program record</h3>
<p>The COBOL/400 compiler is able to compile source that contains more than one
program. This record is passed by the COBOL/400 compiler when the beginning of
a new program is encountered.</p>
<p>The Start of new program record has the following format:</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%">Record length</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Record type</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="center" valign="top">6</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">New program name</td>
</tr>
<tr>
<td align="center" valign="top">18</td>
<td align="center" valign="top">12</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object name created</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Object library name</td>
</tr>
<tr>
<td align="center" valign="top">38</td>
<td align="center" valign="top">26</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Message identifier</td>
</tr>
<tr>
<td align="center" valign="top">45</td>
<td align="center" valign="top">2D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">CHAR(7)</td>
<td align="left" valign="top">Object type</td>
</tr>
<tr>
<td align="center" valign="top">55</td>
<td align="center" valign="top">37</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<br>
<h3>Processors for which this record type applies</h3>
<table width="80%">
<tr>
<td align="left" valign="top">CRTCBLPGM</td>
<td align="left" valign="top">CRTCBLMOD</td>
<td align="left" valign="top">CRTBNDCBL</td>
<td align="left" valign="top">CRTSQLCBLI</td>
</tr>
<tr>
<td align="left" valign="top" colspan="3">processor processing the user-defined
types represented as members</td>
<td align="left" valign="top">&nbsp;</td>
</tr>
</table>
<br>
<br>
<h3>Field Descriptions</h3>
<p><strong>Message identifier.</strong> The message ID of the completion
message.</p>
<p><strong>New program name.</strong> The name of the new program, per
IDENTIFICATION DIVISION.</p>
<p><strong>Object library name.</strong> The library where the object was
created. This field contains blank if an error occurred.</p>
<p><strong>Object name created.</strong> The name of the object created in the
previous step. If an object was not created because of syntax errors or because
REPLACE(*NO) was specified and the object already existed, this field contains
'*ERROR'.</p>
<p><strong>Object type.</strong> The type of object created. For example, *PGM
or *MODULE.</p>
<p><strong>Record length.</strong> The length of this record is 56.</p>
<p><strong>Record type.</strong> The type of this record is '40'.</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center">
<a href="#Top_Of_Page">Top</a> |
<a href="hll.htm">High-level Language APIs</a> |
<a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
</body>
</html>