ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/crtbndrpg.htm

1138 lines
54 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Create Bound RPG Program (CRTBNDRPG)</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body bgcolor="white">
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<a name="CRTBNDRPG.Top_Of_Page"></a>
<h2>Create Bound RPG Program (CRTBNDRPG)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>All environments (*ALL)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#CRTBNDRPG.PARAMETERS.TABLE">Parameters</a><br>
<a href="#CRTBNDRPG.COMMAND.EXAMPLES">Examples</a><br>
<a href="#CRTBNDRPG.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="CRTBNDRPG"></a>
<p>The Create Bound RPG Program (CRTBNDRPG) command compiles and binds the RPG source code to create an ILE program object (*PGM). You can use this command interactively or in batch mode.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="CRTBNDRPG.PARAMETERS.TABLE">Parameters</a></h3>
<table border="1" cellpadding="4" cellspacing="0">
<!-- col1="10" col2="15" col3="30" col4="10" -->
<tr>
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTBNDRPG.PGM"><b>PGM</b></a></td>
<td valign="top">Program</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional, Positional 1</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Program</td>
<td valign="top"><i>Name</i>, <b><u>*CTLSPEC</u></b></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*CURLIB</u></b></td>
</tr><tr>
<td valign="top" rowspan="3"><a href="#CRTBNDRPG.SRCFILE"><b>SRCFILE</b></a></td>
<td valign="top">Source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Source file</td>
<td valign="top"><i>Name</i>, <b><u>QRPGLESRC</u></b></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top"><a href="#CRTBNDRPG.SRCMBR"><b>SRCMBR</b></a></td>
<td valign="top">Source member</td>
<td valign="top"><i>Name</i>, <b><u>*PGM</u></b></td>
<td valign="top">Optional, Positional 3</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.SRCSTMF"><b>SRCSTMF</b></a></td>
<td valign="top">Source stream file</td>
<td valign="top"><i>Path name</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.GENLVL"><b>GENLVL</b></a></td>
<td valign="top">Generation severity level</td>
<td valign="top">0-20, <b><u>10</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.TEXT"><b>TEXT</b></a></td>
<td valign="top">Text 'description'</td>
<td valign="top"><i>Character value</i>, <b><u>*SRCMBRTXT</u></b>, *BLANK</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.DFTACTGRP"><b>DFTACTGRP</b></a></td>
<td valign="top">Default activation group</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.ACTGRP"><b>ACTGRP</b></a></td>
<td valign="top">Activation group</td>
<td valign="top"><i>Name</i>, <b><u>QILE</u></b>, *NEW, *CALLER</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTBNDRPG.BNDDIR"><b>BNDDIR</b></a></td>
<td valign="top">Binding directory</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values (up to 50 repetitions): <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Binding directory</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB, *USRLIBL</td>
</tr><tr>
<td valign="top"><a href="#CRTBNDRPG.OPTION"><b>OPTION</b></a></td>
<td valign="top">Compiler options</td>
<td valign="top">Values (up to 20 repetitions): *XREF, *NOXREF, *GEN, *NOGEN, *SECLVL, *NOSECLVL, *SHOWCPY, *NOSHOWCPY, *EXPDDS, *NOEXPDDS, *EXT, *NOEXT, *NOSHOWSKP, *SHOWSKP, *NOSRCSTMT, *SRCSTMT, *DEBUGIO, *NODEBUGIO, *NOEVENTF, *EVENTF</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.DBGVIEW"><b>DBGVIEW</b></a></td>
<td valign="top">Debugging views</td>
<td valign="top"><b><u>*STMT</u></b>, *SOURCE, *LIST, *COPY, *ALL, *NONE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.OUTPUT"><b>OUTPUT</b></a></td>
<td valign="top">Output</td>
<td valign="top"><b><u>*PRINT</u></b>, *NONE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.OPTIMIZE"><b>OPTIMIZE</b></a></td>
<td valign="top">Optimization level</td>
<td valign="top"><b><u>*NONE</u></b>, *BASIC, *FULL</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.INDENT"><b>INDENT</b></a></td>
<td valign="top">Source listing indentation</td>
<td valign="top"><i>Character value</i>, <b><u>*NONE</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.CVTOPT"><b>CVTOPT</b></a></td>
<td valign="top">Type conversion options</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values (up to 4 repetitions): *DATETIME, *GRAPHIC, *VARCHAR, *VARGRAPHIC</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTBNDRPG.SRTSEQ"><b>SRTSEQ</b></a></td>
<td valign="top">Sort sequence</td>
<td valign="top">Single values: <b><u>*HEX</u></b>, *JOB, *JOBRUN, *LANGIDUNQ, *LANGIDSHR<br>Other values: <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Sort sequence</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top"><a href="#CRTBNDRPG.LANGID"><b>LANGID</b></a></td>
<td valign="top">Language identifier</td>
<td valign="top"><i>Name</i>, <b><u>*JOBRUN</u></b>, *JOB</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.REPLACE"><b>REPLACE</b></a></td>
<td valign="top">Replace program</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.USRPRF"><b>USRPRF</b></a></td>
<td valign="top">User profile</td>
<td valign="top"><b><u>*USER</u></b>, *OWNER</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.AUT"><b>AUT</b></a></td>
<td valign="top">Authority</td>
<td valign="top"><i>Name</i>, <b><u>*LIBCRTAUT</u></b>, *ALL, *CHANGE, *USE, *EXCLUDE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.TRUNCNBR"><b>TRUNCNBR</b></a></td>
<td valign="top">Truncate numeric</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.FIXNBR"><b>FIXNBR</b></a></td>
<td valign="top">Fix numeric</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values (up to 2 repetitions): *ZONED, *INPUTPACKED</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.TGTRLS"><b>TGTRLS</b></a></td>
<td valign="top">Target release</td>
<td valign="top"><i>Simple name</i>, <b><u>*CURRENT</u></b>, *PRV</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.ALWNULL"><b>ALWNULL</b></a></td>
<td valign="top">Allow null values</td>
<td valign="top"><b><u>*NO</u></b>, *INPUTONLY, *USRCTL, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.DEFINE"><b>DEFINE</b></a></td>
<td valign="top">Define condition names</td>
<td valign="top">Values (up to 32 repetitions): <i>Simple name</i>, <b><u>*NONE</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.ENBPFRCOL"><b>ENBPFRCOL</b></a></td>
<td valign="top">Enable performance collection</td>
<td valign="top"><b><u>*PEP</u></b>, *ENTRYEXIT, *FULL</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.PRFDTA"><b>PRFDTA</b></a></td>
<td valign="top">Profiling data</td>
<td valign="top"><b><u>*NOCOL</u></b>, *COL</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.LICOPT"><b>LICOPT</b></a></td>
<td valign="top">Licensed Internal Code options</td>
<td valign="top"><i>Character value</i>, <b><u>X''</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.INCDIR"><b>INCDIR</b></a></td>
<td valign="top">Include directory</td>
<td valign="top">Values (up to 32 repetitions): <i>Path name</i>, <b><u>*NONE</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.PGMINFO"><b>PGMINFO</b></a></td>
<td valign="top">Generate program interface</td>
<td valign="top"><b><u>*NO</u></b>, *PCML</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.INFOSTMF"><b>INFOSTMF</b></a></td>
<td valign="top">Program interface stream file</td>
<td valign="top"><i>Path name</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.PPGENOPT"><b>PPGENOPT</b></a></td>
<td valign="top">Preprocessor options</td>
<td valign="top">Single values: <b><u>*NONE</u></b>, *DFT<br>Other values (up to 3 repetitions): *RMVCOMMENT, *NORMVCOMMENT, *EXPINCLUDE, *NOEXPINCLUDE, *SEQSRC, *NOSEQSRC</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTBNDRPG.PPSRCFILE"><b>PPSRCFILE</b></a></td>
<td valign="top">Output source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Output source file</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*CURLIB</u></b></td>
</tr><tr>
<td valign="top"><a href="#CRTBNDRPG.PPSRCMBR"><b>PPSRCMBR</b></a></td>
<td valign="top">Output source member</td>
<td valign="top"><i>Name</i>, <b><u>*PGM</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTBNDRPG.PPSRCSTMF"><b>PPSRCSTMF</b></a></td>
<td valign="top">Output stream file</td>
<td valign="top"><i>Path name</i>, *SRCSTMF</td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="CRTBNDRPG.PGM"></a>
<h3>Program (PGM)</h3>
<p>Specifies the program name and library name for the program object (*PGM) you are creating. The program name and library name must conform to server naming conventions. If no library is specified, the created program is stored in the current library.
</p>
<dl>
<dt><b><u>*CTLSPEC</u></b></dt>
<dd>The name for the compiled program is taken from the name specified in the DFTNAME keyword of the control specification. If the program name is not specified on the control specification and the source member is from a database file, the member name, specified by the SRCMBR parameter, is used as the program name. If the source is not from a database file then the program name defaults to RPGPGM.
</dd>
<dt><b><i>program-name</i></b></dt>
<dd>Enter the name of the program object.
</dd>
<dt><b><u>*CURLIB</u></b></dt>
<dd>The created program object is stored in the current library. If you have not specified a current library, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Enter the name of the library where the created program object is to be stored.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.SRCFILE"></a>
<h3>Source file (SRCFILE)</h3>
<p>Specifies the name of the source file that contains the ILE RPG source member to be compiled and the library where the source file is stored. The recommended source physical file length is 112 characters: 12 for the sequence number and date, 80 for the code and 20 for the comments. This is the maximum amount of source that is shown on the compiler listing.
</p>
<dl>
<dt><b><u>QRPGLESRC</u></b></dt>
<dd>The default source file QRPGLESRC contains the ILE RPG source member to be compiled.
</dd>
<dt><b><i>source-file-name</i></b></dt>
<dd>Enter the name of the source file that contains the ILE RPG source member to be compiled.
</dd>
<dt><b><u>*LIBL</u></b></dt>
<dd>The system searches the library list to find the library where the source file is stored. This is the default.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library is used to find the source file. If you have not specified a current library, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Enter the name of the library where the source file is stored.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.SRCMBR"></a>
<h3>Source member (SRCMBR)</h3>
<p>Specifies the name of the member of the source file that contains the ILE RPG source program to be compiled.
</p>
<dl>
<dt><b><u>*PGM</u></b></dt>
<dd>Use the name specified for the PGM parameter as the source file member name. The compiled program object will have the same name as the source file member. If no program name is specified by the PGM parameter, the command uses the first member created in or added to the source file as the source member name.
</dd>
<dt><b><i>source-file-member-name</i></b></dt>
<dd>Enter the name of the member that contains the ILE RPG source program.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.SRCSTMF"></a>
<h3>Source stream file (SRCSTMF)</h3>
<p>Specifies the path name of the stream file containing the ILE RPG source code to be compiled.
</p>
<p>The path name can be either absolutely or relatively qualified. An absolute path name starts with '/'; a relative path name starts with a character other than '/'.
</p>
<p>If absolutely-qualified, the path name is complete. If relatively-qualified, the path name is completed by appending the job's current working directory to the path name.
</p>
<p>The SRCMBR and SRCFILE parameters cannot be specified with the SRCSTMF parameter.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.GENLVL"></a>
<h3>Generation severity level (GENLVL)</h3>
<p>Controls the creation of the program object. The program object is created if all errors encountered during compilation have a severity level less than or equal to the generation severity level specified.
</p>
<p>The value must be between 0 and 20 inclusive. For errors greater than severity 20, the program object will not be generated.
</p>
<dl>
<dt><b><u>10</u></b></dt>
<dd>A program object will be generated when the compile-time errors have a severity level less than or equal to 10. This is the default.
</dd>
<dt><b><i>severity-level-value</i></b></dt>
<dd>Enter a number, 0 through 20 inclusive.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.TEXT"></a>
<h3>Text 'description' (TEXT)</h3>
<p>Allows you to enter text that briefly describes the program and its function. The text appears whenever program information is displayed.
</p>
<dl>
<dt><b><u>*SRCMBRTXT</u></b></dt>
<dd>The text of the source member is used.
</dd>
<dt><b>*BLANK</b></dt>
<dd>No text appears.
</dd>
<dt><b><i>'description'</i></b></dt>
<dd>Enter the text that briefly describes the function of the source specifications. The text can be a maximum of 50 characters and must be enclosed in apostrophes. The apostrophes are not part of the 50-character string. Apostrophes are not required if you are entering the text on the prompt screen.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.DFTACTGRP"></a>
<h3>Default activation group (DFTACTGRP)</h3>
<p>Specifies whether the created program is intended to always run in the default activation group.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>When this program is called it will always run in the default activation group. The default activation group is the activation group where all original program model (OPM) programs are run.
<p>Specifying DFTACTGRP(*YES) allows ILE RPG programs to behave like OPM programs in the areas of file sharing, file scoping, and RCLRSC.
</p>
<p>ILE static binding is not available when a program is created with DFTACTGRP(*YES). This means that you cannot use the BNDDIR or ACTGRP parameters when creating this program. In addition, any call operation in your source must call a program and not a procedure.
</p>
<p>DFTACTGRP(*YES) is useful when attempting to move an application on a program-by-program basis to ILE RPG.
</p>
</dd>
<dt><b>*NO</b></dt>
<dd>The program is associated with the activation group specified by the ACTGRP parameter. Static binding is allowed when *NO is specified.
<p>If ACTGRP(*CALLER) is specified and this program is called by a program running in the default activation group, then this program will behave according to ILE semantics in the areas of file sharing, file scoping and RCLRSC.
</p>
<p>DFTACTGRP(*NO) is useful when you intend to take advantage of ILE concepts, for example, running in a named activation group or binding to a service program.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.ACTGRP"></a>
<h3>Activation group (ACTGRP)</h3>
<p>Specifies the activation group this program is associated with when it is called.
</p>
<dl>
<dt><b><u>QILE</u></b></dt>
<dd>When this program is called, it is activated into the named activation group QILE. This is the default.
</dd>
<dt><b>*NEW</b></dt>
<dd>When this program is called, it is activated into a new activation group.
</dd>
<dt><b>*CALLER</b></dt>
<dd>When this program is called, it is activated into the caller's activation group.
</dd>
<dt><b><i>activation-group-name</i></b></dt>
<dd>Specify the name of the activation group to be used when this program is called.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.BNDDIR"></a>
<h3>Binding directory (BNDDIR)</h3>
<p>Specifies the list of binding directories that are used in symbol resolution.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No binding directory is specified.
</dd>
<dt><b><i>binding-directory-name</i></b></dt>
<dd>Specify the name of the binding directory used in symbol resolution. The directory name can be qualified with one of the following library values:
</dd>
<dt><b>*LIBL</b></dt>
<dd>The system searches the library list to find the library where the binding directory is stored. This is the default.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is searched. If no library is specified as the current library for the job, library QGPL is used.
</dd>
<dt><b>*USRLIBL</b></dt>
<dd>Only the libraries in the user portion of the job's library list are searched.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library to be searched.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.OPTION"></a>
<h3>Compiler options (OPTION)</h3>
<p>Specifies the options to use when the source member is compiled. You can specify any or all of the options in any order. Separate the options with one or more blank spaces. If an option is specified more than once, the last one is used.
</p>
<dl>
<dt><b><u>*XREF</u></b></dt>
<dd>Produces a cross-reference listing (when appropriate) for the source member.
</dd>
<dt><b>*NOXREF</b></dt>
<dd>A cross-reference listing is not produced.
</dd>
<dt><b><u>*GEN</u></b></dt>
<dd>Create a program object if the highest severity level returned by the compiler does not exceed the severity specified in the GENLVL option.
</dd>
<dt><b>*NOGEN</b></dt>
<dd>Do not create a program object.
</dd>
<dt><b><u>*NOSECLVL</u></b></dt>
<dd>Do not print second-level message text on the line following the first-level message text.
</dd>
<dt><b>*SECLVL</b></dt>
<dd>Print second-level message text on the line following the first-level message text in the Message Summary section.
</dd>
<dt><b><u>*SHOWCPY</u></b></dt>
<dd>Show source records of members included by the /COPY compiler directive.
</dd>
<dt><b>*NOSHOWCPY</b></dt>
<dd>Do not show source records of members included by the /COPY compiler directive.
</dd>
<dt><b><u>*EXPDDS</u></b></dt>
<dd>Show the expansion of externally described files in the listing and display key field information.
</dd>
<dt><b>*NOEXPDDS</b></dt>
<dd>Do not show the expansion of externally described files in the listing or display key field information.
</dd>
<dt><b><u>*EXT</u></b></dt>
<dd>Show the list of external procedures and fields referenced during the compile on the listing.
</dd>
<dt><b>*NOEXT</b></dt>
<dd>Do not show the list of external procedures and fields referenced during compilation on the listing.
</dd>
<dt><b><u>*NOSHOWSKP</u></b></dt>
<dd>Do not show ignored statements in the source part of the listing. The compiler ignores statements as a result of /IF, /ELSEIF or /ELSE directives.
</dd>
<dt><b>*SHOWSKP</b></dt>
<dd>Show all statements in the source part of the listing, regardless of whether or not the compiler has skipped them.
</dd>
<dt><b><u>*NOSRCSTMT</u></b></dt>
<dd>Line Numbers in the listing are assigned sequentially; these numbers are used when debugging using statement numbers. Line Numbers are shown on the left-most column of the listing. The source IDs and SEU Sequence Numbers are shown on the two right-most columns of the listing.
</dd>
<dt><b>*SRCSTMT</b></dt>
<dd>Statement numbers for debugging are generated using SEU sequence numbers and source IDs as follows:
<p>
<pre>
Statement_Number = source_ID * 1000000 +
source_SEU_sequence_number
</pre>
</p>
<p>SEU Sequence Numbers are shown on the left-most column of the listing. Statement Numbers are shown on the right-most column of the listing; these numbers are used when debugging using statement numbers.
</p>
<p>
<b>Note: </b>When OPTION(*SRCSTMT) is specified, all sequence numbers in the source files must contain valid numeric values. If there are duplicate sequence numbers in the same source file, the behavior of the debugger may be unpredictable and statement numbers for diagnostic messages or cross reference entries may not be meaningful.
</p>
</dd>
<dt><b><u>*DEBUGIO</u></b></dt>
<dd>Generate breakpoints for all input and output specifications.
</dd>
<dt><b>*NODEBUGIO</b></dt>
<dd>Do not generate breakpoints for input and output specifications.
</dd>
<dt><b><u>*NOEVENTF</u></b></dt>
<dd>Do not create an Event File for use by CoOperative Development Environment (CODE). CODE uses this file to provide error feedback integrated with the CODE editor. An Event File is normally created when you create a module or program from within CODE.
</dd>
<dt><b>*EVENTF</b></dt>
<dd>Create an Event File for use by CoOperative Development Environment (CODE). The Event File is created as a member in file EVFEVENT in the library where the created module or program object is to be stored. If the file EVFEVENT does not exist it is automatically created. The Event File member name is the same as the name of the object being created.
<p>CODE uses this file to provide error feedback integrated with the CODE editor. An Event File is normally created when you create a module or program from within CODE.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.DBGVIEW"></a>
<h3>Debugging views (DBGVIEW)</h3>
<p>Specifies which level of debugging is available for the compiled program object, and which source views are available for source-level debugging.
</p>
<dl>
<dt><b><u>*STMT</u></b></dt>
<dd>Allows the program object to be debugged using the Line Numbers or Statement Numbers of the compiler listing. Line Numbers are shown on the left-most column of the source section of the compiler listing when OPTION(*NOSRCSTMT) is specified. Statement Numbers are shown on the right-most column of the source section of the compiler listing when OPTION(*SRCSTMT) is specified.
</dd>
<dt><b>*SOURCE</b></dt>
<dd>Generates the source view for debugging the compiled program object. This view is not available if the root source member is a DDM file. Also, if changes are made to any source members after the compile and before attempting to debug the program, the views for those source members may not be usable.
</dd>
<dt><b>*LIST</b></dt>
<dd>Generates the listing view for debugging the compiled program object. The information contained in the listing view is dependent on whether *SHOWCPY, *EXPDDS, and *SRCSTMT are specified for the OPTION parameter.
<p>
<b>Note: </b>The listing view will not show any indentation which you may have requested using the Indent option.
</p>
</dd>
<dt><b>*COPY</b></dt>
<dd>Generates the source and copy views for debugging the compiled program object. The source view for this option is the same source view generated for the *SOURCE option. The copy view is a debug view which has all the /COPY source members included. These views are not available if the root source member is a DDM file. Also, if changes are made to any source members after the compile and before attempting to debug the program, the views for those source members may not be usable.
</dd>
<dt><b>*ALL</b></dt>
<dd>Generates the listing, source and copy views for debugging the compiled program object. The information contained in the listing view is dependent on whether *SHOWCPY, *EXPDDS, and *SRCSTMT are specified for the OPTION parameter.
</dd>
<dt><b>*NONE</b></dt>
<dd>Disables all of the debug options for debugging the compiled program object.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.OUTPUT"></a>
<h3>Output (OUTPUT)</h3>
<p>Specifies if a compiler listing is generated.
</p>
<dl>
<dt><b><u>*PRINT</u></b></dt>
<dd>Produces a compiler listing, consisting of the ILE RPG program source and all compile-time messages. The information contained in the listing is dependent on whether *XREF, *SECLVL, *SHOWCPY, *EXPDDS, *EXT, *SHOWSKP, and *SRCSTMT are specified for the OPTION parameter.
</dd>
<dt><b>*NONE</b></dt>
<dd>Do not generate the compiler listing.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.OPTIMIZE"></a>
<h3>Optimization level (OPTIMIZE)</h3>
<p>Specifies the level of optimization, if any, of the module.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Generated code is not optimized. This is the fastest in terms of translation time. It allows variables to be displayed and modified while in debug mode.
</dd>
<dt><b>*BASIC</b></dt>
<dd>Some optimization is performed on the generated code. This allows user variables to be displayed but not modified while in debug mode.
</dd>
<dt><b>*FULL</b></dt>
<dd>Optimization which generates the most efficient code. Translation time is the longest. User variables may not be modified but may be displayed, although the presented values may not be the current values.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.INDENT"></a>
<h3>Source listing indentation (INDENT)</h3>
<p>Specifies whether structured operations should be indented in the source listing for enhanced readability. Also specifies the characters that are used to mark the structured operation clauses.
</p>
<p>
<b>Note: </b>Any indentation which you request here will not be reflected in the listing debug view which is created when you specify DBGVIEW(*LIST).
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Structured operations will not be indented in the source listing.
</dd>
<dt><b><i>character-value</i></b></dt>
<dd>The source listing is indented for structured operation clauses. Alignment of statements and clauses are marked using the characters you choose. You can choose any character string up to 2 characters in length. If you want to use a blank in your character string, you must enclose the string in single quotation marks.
<p>
<b>Note: </b>The indentation may not appear as expected if there are errors in the program.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.CVTOPT"></a>
<h3>Type conversion options (CVTOPT)</h3>
<p>Specifies how the ILE RPG compiler handles date, time, timestamp, graphic data types, and variable-length data types which are retrieved from externally described database files.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Ignores variable-length database data types and use the native RPG date, time, timestamp and graphic data types.
</dd>
<dt><b>*DATETIME</b></dt>
<dd>Specifies that date, time, and timestamp database data types are to be declared as fixed-length character fields.
</dd>
<dt><b>*GRAPHIC</b></dt>
<dd>Specifies that double-byte character set (DBCS) graphic data types are to be declared as fixed-length character fields.
</dd>
<dt><b>*VARCHAR</b></dt>
<dd>Specifies that variable-length character data types are to be declared as fixed-length character fields.
</dd>
<dt><b>*VARGRAPHIC</b></dt>
<dd>Specifies that variable-length double-byte character set (DBCS) graphic data types are to be declared as fixed-length character fields.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.SRTSEQ"></a>
<h3>Sort sequence (SRTSEQ)</h3>
<p>Specifies the sort sequence table that is to be used in the ILE RPG source program.
</p>
<dl>
<dt><b><u>*HEX</u></b></dt>
<dd>No sort sequence table is used.
</dd>
<dt><b>*JOB</b></dt>
<dd>Use the SRTSEQ value for the job when the *PGM is created.
</dd>
<dt><b>*JOBRUN</b></dt>
<dd>Use the SRTSEQ value for the job when the *PGM is run.
</dd>
<dt><b>*LANGIDUNQ</b></dt>
<dd>Use a unique weighted table. This special value is used in conjunction with the LANGID parameter to determine the proper sort sequence table.
</dd>
<dt><b>*LANGIDSHR</b></dt>
<dd>Use a shared weighted table. This special value is used in conjunction with the LANGID parameter to determine the proper sort sequence table.
</dd>
<dt><b><i>sort-table-name</i></b></dt>
<dd>Enter the qualified name of the sort sequence table to be used with the program.
</dd>
<dt><b>*LIBL</b></dt>
<dd>The system searches the library list to find the library where the sort sequence table is stored.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library is used to find the sort sequence table. If you have not specified a current library, QGPL is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Enter the name of the library where the sort sequence table is stored.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.LANGID"></a>
<h3>Language identifier (LANGID)</h3>
<p>Specifies the language identifier to be used when the sort sequence is *LANGIDUNQ and *LANGIDSHR. The LANGID parameter is used in conjunction with the SRTSEQ parameter to select the sort sequence table.
</p>
<dl>
<dt><b><u>*JOBRUN</u></b></dt>
<dd>Use the LANGID value associated with the job when the RPG program is executed.
</dd>
<dt><b>*JOB</b></dt>
<dd>Use the LANGID value associated with the job when the RPG program is created.
</dd>
<dt><b><i>language-identifier</i></b></dt>
<dd>Use the language identifier specified. (For example, FRA for French and DEU for German.)
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.REPLACE"></a>
<h3>Replace program (REPLACE)</h3>
<p>Specifies if a new program is created when a program of the same name already exists in the specified (or implied) library. The intermediate modules created during the processing of the CRTBNDRPG command are not subject to the REPLACE specifications, and have an implied REPLACE(*NO) against the QTEMP library. The intermediate modules are deleted once the CRTBNDRPG command has completed processing.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>A new program is created in the specified library. The existing program of the same name in the specified library is moved to library QRPLOBJ.
</dd>
<dt><b>*NO</b></dt>
<dd>A new program is not created if a program of the same name already exists in the specified library. The existing program is not replaced, a message is displayed, and compilation stops.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.USRPRF"></a>
<h3>User profile (USRPRF)</h3>
<p>Specifies the user profile that will run the created program object. The profile of the program owner or the program user is used to run the program and control which objects can be used by the program (including the authority the program has for each object). This parameter is not updated if the program already exists. To change the value of USRPRF, delete the program and recompile using the correct value (or, if the constituent *MODULE objects exist, you may choose to invoke the CRTPGM command).
</p>
<dl>
<dt><b><u>*USER</u></b></dt>
<dd>The program runs under the user profile of the program's user.
</dd>
<dt><b>*OWNER</b></dt>
<dd>The program runs under the user profile of both the program's user and owner. The collective set of object authority in both user profiles are used to find and access objects while the program is running. Any object created during the program are owned by the program's user.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.AUT"></a>
<h3>Authority (AUT)</h3>
<p>Specifies the authority given to users who do not have specific authority to the object, who are not on the authorization list, and whose user group has no specific authority to the object. The authority can be altered for all or for specified users after the program is created with the CL commands Grant Object Authority (GRTOBJAUT) or Revoke Object Authority (RVKOBJAUT). For further information on these commands, see the CL concepts and reference topic in the iSeries Information Center at http://www.ibm.com/eserver/iseries/infocenter.
</p>
<dl>
<dt><b><u>*LIBCRTAUT</u></b></dt>
<dd>The public authority for the object is taken from the CRTAUT keyword of the target library (the library that contains the object). The value is determined when the object is created. If the CRTAUT value for the library changes after the create, the new value will not affect any existing objects.
</dd>
<dt><b>*ALL</b></dt>
<dd>Authority for all operations on the program object except those limited to the owner or controlled by authorization list management authority. The user can control the program object's existence, specify this security for it, change it, and perform basic functions on it, but cannot transfer its ownership.
</dd>
<dt><b>*CHANGE</b></dt>
<dd>Provides all data authority and the authority to perform all operations on the program object except those limited to the owner or controlled by object authority and object management authority. The user can change the object and perform basic functions on it.
</dd>
<dt><b>*USE</b></dt>
<dd>Provides object operational authority and read authority; authority for basic operations on the program object. The user is prevented from changing the object.
<p>
<b>Note: </b>A user must have *USE authority to a program to obtain a formatted dump of the variables of the program. To dump variables, the program must also have observable information.
</p>
<p>If you do not want some users to be able to dump the variables, then give them only *OBJOPR plus *EXECUTE authority to the program. This will allow them to call the program but not dump its variables. Use EDTOBJAUT, GRTOBJAUT or RVKOBJAUT to change the authority of the created program.
</p>
<p>If you do not want any users to be able to dump the variables, then use Change Program (CHGPGM) to remove the program's observable information.
</p>
</dd>
<dt><b>*EXCLUDE</b></dt>
<dd>The user is prevented from accessing the object.
</dd>
<dt><b><i>authorization-list name</i></b></dt>
<dd>Enter the name of an authorization list of users and authorities to which the program is added. The program object will be secured by this authorization list, and the public authority for the program object will be set to *AUTL. The authorization list must exist on the system when the CRTBNDRPG command is issued.
<p>
<b>Note: </b>Use the AUT parameter to reflect the security requirements of your system. The security facilities available are described in detail in iSeries Security Reference, SC41-5302.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.TRUNCNBR"></a>
<h3>Truncate numeric (TRUNCNBR)</h3>
<p>Specifies if the truncated value is moved to the result field or if an error is generated when numeric overflow occurs while running the program.
</p>
<p>
<b>Note: </b>The TRUNCNBR option does not apply to calculations performed within expressions. (Expressions are found in the Extended-Factor 2 field.) If overflow occurs for these calculations, an error will always occur.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>Ignore numeric overflow and move the truncated value to the result field.
</dd>
<dt><b>*NO</b></dt>
<dd>When numeric overflow is detected, a run-time error is generated.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.FIXNBR"></a>
<h3>Fix numeric (FIXNBR)</h3>
<p>Specifies whether decimal data that is not valid is fixed by the compiler.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Indicates that decimal data that is not valid will result in decimal errors during run time if used.
</dd>
<dt><b>*ZONED</b></dt>
<dd>Zoned decimal data that is not valid will be fixed by the compiler on the conversion to packed data. Blanks in numeric fields will be treated as zeros. Each decimal digit will be checked for validity. If a decimal digit is not valid, it is replaced with zero. If a sign is not valid, the sign will be forced to a positive sign code of hex 'F'. If the sign is valid, it will be changed to either a positive sign hex 'F' or a negative sign hex 'D' as appropriate. If the resulting packed data is not valid, it will not be fixed.
</dd>
<dt><b>*INPUTPACKED</b></dt>
<dd>Indicates that if packed decimal data that is not valid is encountered while processing input specifications, the internal variable will be set to zero.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.TGTRLS"></a>
<h3>Target release (TGTRLS)</h3>
<p>Specifies the release of the operating system on which you intend to use the object being created. In the examples given for the *CURRENT and *PRV values, and when specifying the <u> target-release</u> value, the format VxRxMx is used to specify the release, where Vx is the version, Rx is the release, and Mx is the modification level. For example, V2R3M0 is version 2, release 3, modification level 0.
</p>
<p>Valid values for this parameter change every release. The possible values are:
</p>
<dl>
<dt><b><u>*CURRENT</u></b></dt>
<dd>The object is to be used on the release of the operating system currently running on your system. For example, if V2R3M5 is running on the system, *CURRENT means that you intend to use the object on a system with V2R3M5 installed. You can also use the object on a system with any subsequent release of the operating system installed.
<p>
<b>Note: </b>If V2R3M5 is running on the system, and the object is to be used on a system with V2R3M0 installed, specify TGTRLS(V2R3M0), not TGTRLS(*CURRENT).
</p>
</dd>
<dt><b>*PRV</b></dt>
<dd>The object is to be used on the previous release with modification level 0 of the operating system. For example, if V2R3M5 is running on your system, *PRV means you intend to use the object on a system with V2R2M0 installed. You can also use the object on a system with any subsequent release of the operating system installed.
</dd>
<dt><b><i>target-release</i></b></dt>
<dd>Specify the release in the format VxRxMx. You can use the object on a system with the specified release or with any subsequent release of the operating system installed.
<p>Valid values depend on the current version, release, and modification level, and they change with each new release. If you specify a <u> target-release</u> that is earlier than the earliest release supported by this command, an error message is sent indicating the earliest supported release.
</p>
<p>
<b>Note: </b>The current version of the command may support options that are not available in previous releases of the command. If the command is used to create objects that are to be used on a previous release, it will be processed by the compiler appropriate to that release, and any unsupported options will not be recognized. The compiler will not necessarily issue any warnings regarding options that it is unable to process.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.ALWNULL"></a>
<h3>Allow null values (ALWNULL)</h3>
<p>Specifies how the ILE RPG program will be allowed to use records containing null-capable fields from externally described database files.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>Specifies that the ILE RPG program will not process records with null-value fields from externally described files. If you attempt to retrieve a record containing null values, no data in the record is accessible to the ILE RPG program and a data-mapping error occurs.
</dd>
<dt><b>*INPUTONLY</b></dt>
<dd>Specifies that the ILE RPG program can successfully read records with null-capable fields containing null values from externally described input-only database files. When a record containing null values is retrieved, no data mapping errors occur and the database default values are placed into any fields which contain null values. The program cannot do any of the following:
<ul>
<li>use null-capable key fields
</li>
<li>create or update records containing null-capable fields
</li>
<li>determine whether a null-capable field is actually null while the program is running
</li>
<li>set a null-capable field to be null.
</li>
</ul>
</dd>
<dt><b>*USRCTL</b></dt>
<dd>Specifies that the ILE RPG program can read, write and update records with null values from externally described database files. Records with null keys can be retrieved using keyed operations. The program can determine whether a null-capable field is actually null, and it can set a null-capable field to be null for output or update. The programmer is responsible for ensuring that fields containing null values are used correctly within the program.
</dd>
<dt><b>*YES</b></dt>
<dd>Same as *INPUTONLY.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.DEFINE"></a>
<h3>Define condition names (DEFINE)</h3>
<p>Specifies condition names that are defined before the compilation begins. Using the parameter DEFINE(condition-name) is equivalent to coding the /DEFINE condition-name directive on the first line of the source file.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No condition names are defined. This is the default.
</dd>
<dt><b><i>condition-name</i></b></dt>
<dd>Up to 32 condition names can be specified. Each name can be up to 50 characters long. The condition names will be considered to be defined at the start of compilation.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.ENBPFRCOL"></a>
<h3>Enable performance collection (ENBPFRCOL)</h3>
<p>Specifies whether performance collection is enabled.
</p>
<dl>
<dt><b><u>*PEP</u></b></dt>
<dd>Performance statistics are gathered on the entry and exit of the program entry procedure only. This applies to the actual program-entry procedure for a program, not the main procedure of the modules within the program. This is the default.
</dd>
<dt><b>*ENTRYEXIT</b></dt>
<dd>Performance statistics are gathered on the entry and exit of all procedures of the program.
</dd>
<dt><b>*FULL</b></dt>
<dd>Performance statistics are gathered on entry and exit of all procedures. Also, statistics are gathered before and after each call to an external procedure.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PRFDTA"></a>
<h3>Profiling data (PRFDTA)</h3>
<p>Specifies the program profiling data attribute for the program. Program profiling is an advanced optimization technique used to reorder procedures and code within the procedures based on statistical data (profiling data).
</p>
<dl>
<dt><b><u>*NOCOL</u></b></dt>
<dd>This program is not enabled to collect profiling data. This is the default.
</dd>
<dt><b>*COL</b></dt>
<dd>The program is enabled to collect profiling data. *COL can be specified only when the optimization level of the module is *FULL, and when compiling with a target release of *CURRENT.
<p>
<b>Note: </b>If you use the BNDDIR parameter to bind additional modules and service programs, these additional objects are not affected when *COL or *NOCOL is specified for the program. The program profiling data attribute for a module is set when the module is created.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.LICOPT"></a>
<h3>Licensed Internal Code options (LICOPT)</h3>
<p>Specifies one or more Licensed Internal Code compile-time options. This parameter allows individual compile-time options to be selected, and is intended for the advanced programmer who understands the potential benefits and drawbacks of each selected type of compiler option.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.INCDIR"></a>
<h3>Include directory (INCDIR)</h3>
<p>Specifies one or more directories to add to the search path used by the compiler to find copy files. The compiler will search the directories specified here if the copy files in the source program can not be resolved.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No user directories are searched for copy files. By default, the source directory will still be searched.
</dd>
<dt><b><i>'directory'</i></b></dt>
<dd>Specify up to 32 directories in which to search for copy files. In addition to the specified directories, the source directory is also searched for copy files.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PGMINFO"></a>
<h3>Generate program interface (PGMINFO)</h3>
<p>Specifies whether program interface information should be generated into a stream file. The possible values are:
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>This option specifies the default which does not generate program interface information.
</dd>
<dt><b>*PCML</b></dt>
<dd>Specifies that PCML (Program Call Markup Language) should be generated into a stream file. The generated PCML makes it easier for Java methods to call this RPG program, with less Java code. The name of a stream file that will contain the generated PCML must be specified on the INFOSTMF option.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.INFOSTMF"></a>
<h3>Program interface stream file (INFOSTMF)</h3>
<p>Specifies the path name of the stream file to contain the generated program interface information specifed on the PGMINFO option.
</p>
<p>The path name can be either absolutely or relatively qualified. An absolute path name starts with '/'; a relative path name starts with a character other than '/'.
</p>
<p>If absolutely-qualified, the path name is complete. If relatively-qualified, the path name is completed by appending the job's current working directory to the path name.
</p>
<p>This parameter can only be specified when the PGMINFO parameter has a value other than *NO.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PPGENOPT"></a>
<h3>Preprocessor options (PPGENOPT)</h3>
<p>Specifies the preprocessor generation options to use when the source code is compiled.
</p>
<p>The possible options are:
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>Run the entire compiler against the source file. Do not copy the preprocessor output to a file.
</dd>
<dt><b><i>*DFT</i></b></dt>
<dd>Run the preprocessor against the input source. *RMVCOMMENT, *EXPINCLUDE and *NOSEQSRC will be used as the options for generating the preprocessor output. Use PPSRCFILE and PPSRCMBR to specify an output source file and member, or PPSRCSTMF to specify a stream file to contain the preprocessor output.
</dd>
<dt><b><i>*RMVCOMMENT</i></b></dt>
<dd>Remove comments, blank lines, and most directives during preprocessing. Retain only the RPG specifications and any directives necessary for the correct interpretation of the specifications.
</dd>
<dt><b><i>*NORMVCOMMENT</i></b></dt>
<dd>Preserve comments, blank lines and listing-control directives (for example /EJECT, /TITLE) during preprocessing. Transform source-control directives (for example /COPY, /IF) to comments during preprocessing.
</dd>
<dt><b><i>*EXPINCLUDE</i></b></dt>
<dd>Expand /INCLUDE directives in the generated output file.
</dd>
<dt><b><i>*NOEXPINCLUDE</i></b></dt>
<dd>/INCLUDE directives are placed unchanged in the generated output file.
<p>
<b>Note: </b>/COPY directives are always expanded.
</p>
</dd>
<dt><b><i>*SEQSRC</i></b></dt>
<dd>If PPSRCFILE is specified, the generated output member has sequential sequence numbers, starting at 000001 and incremented by 000001.
</dd>
<dt><b><i>*NOSEQSRC</i></b></dt>
<dd>If PPSRCFILE is specified, the generated output member has the same sequence numbers as the original source read by the preprocessor.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PPSRCFILE"></a>
<h3>Output source file (PPSRCFILE)</h3>
<p>Specifies the source file name and library for the preprocessor output.
</p>
<dl>
<dt><b><i>source-file-name</i></b></dt>
<dd>Specify the name of the source file for the preprocessor output.
<p>The possible library values are:
</p>
<dl>
<dt><b><u>*CURLIB</u></b></dt>
<dd>The preprocessor output is created in the current library. If a job does not have a current library, the preprocessor output file is created in the QGPL library.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library for the preprocessor output.
</dd>
</dl>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PPSRCMBR"></a>
<h3>Output source member (PPSRCMBR)</h3>
<p>Specifies the name of the source file member for the preprocessor output.
</p>
<dl>
<dt><b><u>*PGM</u></b></dt>
<dd>The name supplied on the PGM parameter is used as the preprocessor output member name.
</dd>
<dt><b><i>member-name</i></b></dt>
<dd>Specify the name of the member for the preprocessor output.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTBNDRPG.PPSRCSTMF"></a>
<h3>Output stream file (PPSRCSTMF)</h3>
<p>Specifies the path name of the stream file for the preprocessor output.
</p>
<dl>
<dt><b>*SRCSTMF</b></dt>
<dd>The path name supplied on the SRCSTMF parameter is used as the preprocessor output path name. The file will have the extension '.i'.
</dd>
<dt><b>'path-name'</b></dt>
<dd>Specify the path name for the preprocessor output stream file.
<p>The path name can be either absolutely or relatively qualified. An absolute path name starts with '/'; a relative path name starts with a character other than '/'.
</p>
<p>If absolutely-qualified, the path name is complete. If relatively-qualified, the path name is completed by appending the job's current working directory to the path name.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CRTBNDRPG.COMMAND.EXAMPLES">Examples</a> </h3>
<p><b>Example 1: Compiling a Source Program into a Program Object </b>
</p>
<p>
<pre>
CRTBNDRPG PGM(MYLIB/XMPLE1)
SRCFILE(MYLIB/QRPGSRC) SRCMBR(XMPLE1)
OUTPUT(*PRINT) TEXT('My RPG IV Program')
</pre>
</p>
<p>This command calls the compiler for ILE RPG to create a program named XMPLE1. The source program is in member XMPLE1 of source file QRPGLESRC in library MYLIB. A compiler listing is created.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CRTBNDRPG.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>RNS9310</b></dt>
<dd>Compilation failed. Program &amp;1 not created in library &amp;2.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTBNDRPG.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>