HLI: Function summary: Difference between revisions

From m204wiki
Jump to navigation Jump to search
(Created page with "==Overview== <p> This topic summarizes the calls that are available using the Model 204 Host Language Interface facility. Read this topic if you are using the HLI facility for...")
 
m (Changed IIFSPRM to IFSPRM, IIFSTRT to IFSTRT)
 
(12 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Overview==
==Overview==
<p>
<p>
This topic summarizes the calls that are available using the Model 204 Host Language Interface facility. Read this topic if you are using the HLI facility for the first time. </p>
This topic summarizes the function calls available in the Model 204 Host Language Interface (HLI) facility. Read this topic if you are using the HLI facility for the first time. </p>
<p>
<p>This topic also provides overview information on IFDIAL and IFSTRT threads that you need to understand in order to code the HLI calls in your application program.</p>
See the [[#HLI func calls|HLI function calls table]] for a complete listing of HLI function calls. </p>


<p>
When designing program logic, you must be familiar with the following distinctions:
See [[HLI: Function calls]] for a detailed description of each call. </p>
<ul>
<p>
<li>IFSTRT versus IFDIAL [[HLI: Job design factors#Call protocols|call protocols]]</li>
This topic does not provide specific descriptions of HLI calls or information about coding an application program using the calls. For sample coding sequences using HLI calls, see [[HLI: Threads]]. </p>
<li>differences in functionality using the [[HLI: Threads#Types of threads: IFSTRT and IFDIAL|different types of threads]]</li>
<li>using [[HLI: Threads#Comparison of multiple and single cursor IFSTRT threads|multiple cursor versus single cursor IFSTRT threads]]</li>
</ul>
For more information:
<ul>
<li>
See the [[#HLI func calls|HLI functions]] table at the end of this topic for a complete listing of HLI function calls. </li>
<li>See the individual pages in the [[:Category:HLI functions|HLI functions]] category for a detailed description of each call. </li>
<li>See [[HLI: Coding conventions]] for information about coding HLI call parameters using different host languages. </li>
<li>For sample coding sequences using HLI calls, see [[HLI: Threads]].</li>
</ul>


==IFDIAL thread calls==
==IFDIAL thread calls==
Line 22: Line 31:
===Summary of IFDIAL calls===
===Summary of IFDIAL calls===
<p>
<p>
The following table summarizes the HLI calls that are available for use only with an IFDIAL thread. See [[HLI: Function calls]] for a detailed description of each call. </p>
The following table summarizes the HLI calls that are available for use only with an IFDIAL thread. See the individual pages in [[:Category:HLI functions|HLI functions]] for a detailed description of each call. </p>
<table>
<table>
<p class="caption">IFDIAL functions</p>
<p class="caption">IFDIAL functions</p>
Line 67: Line 76:
With an IFSTRT thread, an application that is written in a host language can issue calls to Model 204 that perform operations against the database which are similar to Model 204 commands and SOUL statements. </p>
With an IFSTRT thread, an application that is written in a host language can issue calls to Model 204 that perform operations against the database which are similar to Model 204 commands and SOUL statements. </p>
<p>
<p>
See [[HLI: Job requirements]] for information about setting up and running the Online or batch Model 204 job using an IFSTRT thread. See [[HLI: Function calls]] for a detailed description of the IFSTRT call. </p>
See [[HLI: Job requirements]] for information about setting up and running the Online or batch Model 204 job using an IFSTRT thread. See [[IFSTRT (IFAM1) (HLI function)|IFSTRT (IFAM1)]] or [[IFSTRT (IFAM2/IFAM4) (HLI function)|IFSTRT (IFAM2/IFAM4)]] for a detailed description of the IFSTRT call. </p>


===Different operational levels===
===Different operational levels===
Line 88: Line 97:
With an IFSTRT thread, most HLI function calls automatically enqueue and dequeue on the resources, such as the files, groups, sets, or records, to which they refer. </p>
With an IFSTRT thread, most HLI function calls automatically enqueue and dequeue on the resources, such as the files, groups, sets, or records, to which they refer. </p>
<p>
<p>
See [[HLI: Function calls]] for detailed information about the record locking behavior of individual calls. See [[HLI: Locking behavior of HLI calls]] for more information about enqueueing on an IFSTRT thread. </p>
See [[:Category:HLI functions|HLI functions]] for detailed information about the record locking behavior of individual calls. See [[HLI: Locking behavior of HLI calls]] for more information about enqueueing on an IFSTRT thread. </p>


==System level IFSTRT calls==
==System level IFSTRT calls==
Line 147: Line 156:
</tr>
</tr>
<tr>
<tr>
<td>IIFSPRM</td>
<td>IFSPRM</td>
<td>Sets a parameter.</td>
<td>Sets a parameter.</td>
</tr>
</tr>
Line 155: Line 164:
</tr>
</tr>
<tr>
<tr>
<td>IIFSTRT</td>
<td>IFSTRT</td>
<td>Establishes an IFSTRT thread connection.</td>
<td>Establishes an IFSTRT thread connection.</td>
</tr>
</tr>
Line 705: Line 714:
</ul>
</ul>
<p>
<p>
See the [[#HLI func calls|HLI function calls table]] for an overview of the calls that provide Compiled IFAM functionality for IFSTRT thread processing.</p>
See [[#HLI func calls|the functions table]] for an overview of the calls that provide Compiled IFAM functionality for IFSTRT thread processing.</p>
<p>
<p>
See [[HLI: IFSTRT processing]] for more information about IFSTRT calls and the Compiled IFAM facility. </p>
See [[HLI: IFSTRT processing]] for more information about IFSTRT calls and the Compiled IFAM facility. </p>


==Complete listing of HLI function calls==
==Function call notation conventions==
<p>
<p>
The following table provides a summary overview of the calls that are available using the HLI facility, including their Compiled IFAM and multiple cursor (MC) functionality. </p>
The conventions for call syntax and parameters described in this section apply to each function call page in the [[:Category:HLI functions|HLI functions]] category.</p>
<p>For each call, this table provides the following information:</p>
 
===Type of thread for the call===
<p>The <b>Thread type</b> heading on each function call page indicates the type(s) of thread that can be used for the call:
<ul>
<li>multiple cursor IFSTRT thread</li>
<li>single cursor IFSTRT thread</li>
<li>IFDIAL thread</li>
</ul>
</p>
 
===Call name and syntax===
<p>
The syntax of host language calls is presented in the following format:</p>
 
<p class="syntax"><span class="term">callname</span> | <span class="term">alias</span> (<span class="term">parm1</span>, <span class="term">parm2</span>,...<span class="term">parmn</span>)</p>
<p>
where:</p>
<ul>
<ul>
<li><b>Name:</b> Names are listed in alphabetical order. Names that are <u>underlined</u> indicate an IFDIAL thread call; all others are IFSTRT thread calls.</li>
<li>
<li>
<b>#</b> lists the number that can be used to reference the function using IFCALL.<br /> Note that IFCALL, IFLOG, and IFSTRT (in IFAM1) do not have numbers. </li>
<var class="term">callname</var> is a keyword which specifies the name of the HLI function; an alias, if available, is also provided. <var class="term">alias</var> is a name that is six characters or less in length to be used for FORTRAN programming. A vertical bar separates the callname from the alias, for example:
 
<p class="syntax">IFFIND | IFFD</p>
</li>
<li>
<li>
<b>Alias:</b> An asterisk indicates that the name is an alias, that is, the shortened COBOL form (six characters or less in length) for the equivalent call (under <b>Equivalent</b>). A dash indicates that the call name is not an alias. </li>
<var class="term">parm1</var> is the first parameter in the call list. Parameters must be specified in the proper syntax order, as shown (<var class="term">parm2</var> follows <var class="term">parm1</var>, and so on; <var class="term">parmn</var> is last). </li>
<li>
<li>
<b>Compiled IFAM</b> indicates whether the call performs compile and execute, compile only, or execute only processing.</li>
A comma delimiter (,) separates parameters in the list, and the entire parameter list is enclosed inside parentheses, for illustrative purposes only. (When coding calls, use the delimiter and format that is valid in your host language.)</li>
<li><b>Related call(s)</b> lists functionally similar calls which provide alternate Compiled IFAM processing. For example, for IFCTO (which compiles and executes), related calls are: IFCTOC (compiles only) and IFCTOE (executes only).</li>
<li>
<b>MC:</b> An asterisk indicates that the call is valid for use with a multiple cursor IFSTRT thread.</li>
</ul>
</ul>


<table>
===Different forms of call syntax===
<div id="HLI func calls"></div>
<p>
<p class="caption" style="width:600px">HLI function calls</p>
The individual call description includes the full syntax and, where available, the compile-only and execute-only forms of the call. For example, with IFFIND (full syntax), the IFFINDC (compile-only syntax) and IFFINDE (execute-only syntax) forms are also provided. Compile-only or execute-only syntax is used with the Compiled IFAM facility.</p>
<tr class="head">
<p>
<th>Name</th>
Also, each form of the call, that is, full syntax, compile-only syntax, and execute-only syntax, is identified by a call number, where available. Note that you can use IFCALL to call functions that have numbers. </p>
<th>#</th>
<p>
<th>Alias</th>
For example, for the three forms of the find function call, the IFCALL function numbers are:</p>
<th>Equivalent</th>
<ul>
<th>Compiled IFAM</th>
<li>
<th>Related call(s)</th>
IFFIND Full syntax (13)</li>
<th>MC</th>
<li>
</tr>
IFFINDC Compile-only syntax (46)</li>
<li>
IFFINDE Execute-only syntax (47)</li>
</ul>
 
===Parameters===
<p>
Each parameter description provides a three-character code having the following format:</p>
 
<p class="syntax">[X,y,z] </p>
<p>
where:</p>
<table>
<tr>
<tr>
<td>IFABXIT</td>
<th>X</th>
<td> 97</td>
<td>Specifies that the parameter is used for input or output operations, and that it is either of the following codes:
<td>-</td>
<p>
<td>-</td>
I (input) <br />
<td>-</td>
O (output)</p>
<td>-</td>
</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFATTN</u></td>
<th>y</th>
<td> 43</td>
<td>Specifies that the parameter, if coded, must be defined in the host language program as one of three possible data type variables, and is one of the following codes:
<td>-</td>
<p>i -- For an integer whose maximum length is 4 bytes </p>
<td>-</td>
<p>s -- For a short character string whose maximum length is 32 bytes </p>
<td>-</td>
<p>c -- For a character string whose maximum length is the buffer size</p>
<td>-</td>
</td>
<td>-</td>
</tr>
</tr>
<tr>
<tr>
<td>IFBOUT</td>
<th>z</th>
<td> 71</td>
<td>Specifies whether the parameter must be coded in the call, and is either (or both) of the following codes:
<td>-</td>
<p>r (required)</p>
<td>-</td>
<p>o (optional)</p>
<td>-</td>
</td>
<td>-</td>
</tr>
<td>*</td>
</table>
<p>
For example, RETCODE [O,i,r] where:</p>
<table>
<tr class="head">
<th>O</th>
<td>Specifies that RETCODE is an output parameter</td>
</tr>
</tr>
<tr>
<tr>
<td>IFBREC</td>
<th>i</th>
<td> 20</td>
<td>Specifies an integer type variable (maximum length is 4 bytes)</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCALL</td>
<th>r</th>
<td>- </td>
<td>Specifies that RETCODE is required</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
</table>
<td>IFCCUR</td>
<p>
<td>125</td>
Certain parameters may be either r or o depending, in some cases, on whether the call is being coded on a multiple cursor IFSTRT thread or, in other cases, whether the call is used for Compiled IFAM.</p>
<td>-</td>
<p>
<td>-</td>
For example, for IFFAC, the compilation name parameter is FAC_NAME [I,s,r/o] where: </p>
<td>-</td>
<table>
<td>-</td>
<tr class="head">
<td>*</td>
<th>I</th>
<td>Specifies that FAC_NAME is an input parameter</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCHKP</td>
<th>s</th>
<td> 30</td>
<td>Specifies a short character string type variable (maximum length is 32 bytes)</td>
<td>*</td>
<td>IFCHKPT</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCHKPT</td>
<th>r/o</th>
<td> 30</td>
<td>Specifies that FAC_NAME is required for use with a multiple cursor IFSTRT thread, and is only required for a single cursor IFSTRT thread if using the compiled IFAM facility (IFFACC and IFFACE).</td>
<td>-</td>
<td>IFCHKP</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
</table>
<td>IFCLOS</td>
<p>
<td> 12</td>
For an r/o code, read the parameter description to determine usage requirements.</p>
<td>*</td>
 
<td>IFCLOSE</td>
==Complete listing of HLI functions==
<td>-</td>
<p>
<td>-</td>
The following table provides a summary overview of the calls that are available using the HLI facility, including their Compiled IFAM and multiple cursor (MC) functionality. </p>
<td>*</td>
===Table conventions===
<p>For each call, this table provides the following information:</p>
<ul>
<li><b>Name:</b> Names are listed in alphabetical order. Each function name links to a topic describing that function in detail.</li>
<li>
<b>IFCALL function #:</b> the number that can be used to reference the function using IFCALL.<br /> Note that IFCALL, IFDECL, IFLOG, and IFSTRT (IFAM1) do not have numbers. </li>
<li>
<b>Alias:</b> The shortened COBOL form (six characters or less in length) for the call. A dash indicates that the call name does not have an alias. </li>
<li>
<b>Compile-only form/IFCALL function #:</b> If present, the compile-only form of the function and its IFCALL number. Any alias for the compile-only form is also listed. </li>
<li>
<b>Execute-only form/IFCALL function #:</b> If present, the execute-only form of the function and its IFCALL number. Any alias for the execute-only form is also listed. </li>
<li>
<b>IFDIAL?:</b> A <b>Y</b> indicates that the call is valid for use with an IFDIAL thread.</li>
<li>
<b>Multiple cursor?:</b> A <b>Y</b> indicates that the call is valid for use with a multiple cursor IFSTRT thread.</li>
</ul>
 
<table>
<div id="HLI func calls"></div>
<p class="caption" style="width:600px">HLI functions</p>
<tr class="head">
<th>Name</th>
<th>IFCALL <br />function #</th>
<th>Alias</th>
<th>Compile-only form/<br />IFCALL function #</th>
<th>Execute-only form/<br />IFCALL function #</th>
<th>IFDIAL?</th>
<th>Multiple <br />cursor?</th>
</tr>
</tr>
<tr>
<tr>
<td>IFCLOSE</td>
<td>[[IFABXIT (HLI function)|IFABXIT]]</td>
<td> 12</td>
<td> 97</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFCLOS</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCLST</td>
<td>[[IFATTN (HLI function)|IFATTN]]</td>
<td>108</td>
<td> 43</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCMMT</td>
<td>[[IFBOUT (HLI function)|IFBOUT]]</td>
<td> 72</td>
<td> 71</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCMTR</td>
<td>[[IFBREC (HLI function)|IFBREC]]</td>
<td>105</td>
<td> 20</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCNT</td>
<td>[[IFCALL (HLI function)|IFCALL]]</td>
<td> 14</td>
<td>*</td>
<td>IFCOUNT</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFCOUNT</td>
<td> 14</td>
<td>-</td>
<td>-</td>
<td>IFCNT</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCSA</td>
<td>[[IFCCUR (HLI function)|IFCCUR]]</td>
<td> 96</td>
<td>125</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCTO</td>
<td>[[IFCHKPT (HLI function)|IFCHKPT]]</td>
<td> 65</td>
<td> 30</td>
<td>IFCHKP</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFCTOC, IFCTOE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCTOC</td>
<td>[[IFCLOSE (HLI function)|IFCLOSE]]</td>
<td> 66</td>
<td> 12</td>
<td>IFCLOS</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFCTO, IFCTOE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFCTOE</td>
<td>[[IFCLST (HLI function)|IFCLST]]</td>
<td> 67</td>
<td>108</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFCTO, IFCTOC</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDALL</td>
<td>[[IFCMMT (HLI function)|IFCMMT]]</td>
<td> 73</td>
<td> 72</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDELF</td>
<td>[[IFCMTR (HLI function)|IFCMTR]]</td>
<td> 62</td>
<td>105</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDEQ</td>
<td>[[IFCOUNT (HLI function)|IFCOUNT]]</td>
<td> 38</td>
<td> 14</td>
<td>-</td>
<td>IFCNT</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDEQL</td>
<td>[[IFCSA (HLI function)|IFCSA]]</td>
<td> 41</td>
<td> 96</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
<tr>
<td>[[IFCTO (HLI function)|IFCTO]]</td>
<td> 65</td>
<td>-</td>
<td>-</td>
<td>IFCTOC / 66</td>
<td>IFCTOE / 67</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDFLD</td>
<td>[[IFDALL (HLI function)|IFDALL]]</td>
<td> 24</td>
<td> 73</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFDIAL</u></td>
<td>[[IFDECL (HLI function)|IFDECL]]</td>
<td> 6</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
Line 964: Line 1,013:
</tr>
</tr>
<tr>
<tr>
<td><u>IFDIALN</u></td>
<td>[[IFDELF (HLI function)|IFDELF]]</td>
<td> 7</td>
<td> 62</td>
<td>-</td>
<td>-</td>
<td>IFDILN</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFDILN</u></td>
<td>[[IFDEQ (HLI function)|IFDEQ]]</td>
<td>  7</td>
<td> 38</td>
<td>*</td>
<td>-</td>
<td>IFDIALN</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDISP</td>
<td>[[IFDEQL (HLI function)|IFDEQL]]</td>
<td> 60</td>
<td> 41</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDREC</td>
<td>[[IFDFLD (HLI function)|IFDFLD]]</td>
<td> 19</td>
<td> 24</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDSET</td>
<td>[[IFDIAL (HLI function)|IFDIAL]]</td>
<td> 21</td>
<td> 6</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDTHRD</td>
<td>[[IFDIALN (HLI function)|IFDIALN]]</td>
<td> 42</td>
<td> 7</td>
<td>IFDILN</td>
<td>-</td>
<td>-</td>
<td>IFDTRD</td>
<td>-</td>
<td>-</td>
<td>Y</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDTRD</td>
<td>[[IFDISP (HLI function)|IFDISP]]</td>
<td> 42</td>
<td> 60</td>
<td>*</td>
<td>-</td>
<td>IFDTHRD</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFDVAL</td>
<td>[[IFDREC (HLI function)|IFDREC]]</td>
<td> 32</td>
<td> 19</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFEFCC</td>
<td>[[IFDSET (HLI function)|IFDSET]]</td>
<td> 21</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
<tr>
<td>[[IFDTHRD (HLI function)|IFDTHRD]]</td>
<td> 42</td>
<td>IFDTRD</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
<tr>
<td>[[IFDVAL (HLI function)|IFDVAL]]</td>
<td> 32</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
<tr>
<td>[[IFEFCC (HLI function)|IFEFCC]]</td>
<td>139</td>
<td>139</td>
<td>-</td>
<td>-</td>
Line 1,042: Line 1,118:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFENQ</td>
<td>[[IFENQ (HLI function)|IFENQ]]</td>
<td> 39</td>
<td> 39</td>
<td>-</td>
<td>-</td>
Line 1,051: Line 1,127:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFENQL</td>
<td>[[IFENQL (HLI function)|IFENQL]]</td>
<td> 40</td>
<td> 40</td>
<td>-</td>
<td>-</td>
Line 1,063: Line 1,139:
</tr>
</tr>
<tr>
<tr>
<td>IFEPRM</td>
<td>[[IFEPRM (HLI function)|IFEPRM]]</td>
<td> 25</td>
<td> 25</td>
<td>-</td>
<td>-</td>
Line 1,069: Line 1,145:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFERLC</td>
<td>[[IFERLC (HLI function)|IFERLC]]</td>
<td>138</td>
<td>138</td>
<td>-</td>
<td>-</td>
Line 1,078: Line 1,154:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFERR</td>
<td>[[IFERR (HLI function)|IFERR]]</td>
<td> 28</td>
<td> 28</td>
<td>-</td>
<td>-</td>
Line 1,087: Line 1,163:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFAC</td>
<td>[[IFFAC (HLI function)|IFFAC]]</td>
<td>126</td>
<td>126</td>
<td>-</td>
<td>-</td>
<td>IFFACC / 127</td>
<td>IFFACE / 128</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>Y</td>
<td>IFFACC, IFFACE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFACC</td>
<td>[[IFFDV (HLI function)|IFFDV]]</td>
<td>127</td>
<td> 74</td>
<td>-</td>
<td>-</td>
<td>IFFDVC / 75</td>
<td>IFFDVE / 76</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>Y</td>
<td>IFFAC, IFFACE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFACE</td>
<tr>
<td>128</td>
<td>[[IFFILE (HLI function)|IFFILE]]</td>
<td> 22</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>Y</td>
<td>IFFAC, IFFACC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFCHC</td>
<td>[[IFFIND (HLI function)|IFFIND]]</td>
<td> 99</td>
<td> 13</td>
<td>*</td>
<td>IFFD</td>
<td>IFFTCHC</td>
<td>IFFINDC / 46, <br />(alias) IFFDC</td>
<td>Compile only</td>
<td>IFFINDE / 47, <br />(alias) IFFDE</td>
<td>IFFTCH, IFFCHE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFCHE</td>
<td>[[IFFLS (HLI function)|IFFLS]]</td>
<td>100</td>
<td> 61</td>
<td>*</td>
<td>-</td>
<td>IFFTCHE</td>
<td>-</td>
<td>Execute only</td>
<td>-</td>
<td>IFFTCH, IFFCHC</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFD</td>
<td>[[IFFLUSH (HLI function)|IFFLUSH]]</td>
<td> 13</td>
<td> 45</td>
<td>*</td>
<td>IFFLSH</td>
<td>IFFIND</td>
<td>-</td>
<td>Compile and execute</td>
<td>-</td>
<td>IFFDC, IFFDE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDC</td>
<td>[[IFFNDX (HLI function)|IFFNDX]]</td>
<td> 46</td>
<td> 56</td>
<td>*</td>
<td>IFFDX</td>
<td>IFFINDC</td>
<td>IFFNDXC / 57, <br />(alias) IFFDXC</td>
<td>Compile only</td>
<td>IFFNDXE / 58, <br />(alias) IFFDXE</td>
<td>IFFD, IFFDE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDE</td>
<td>[[IFFNSH (HLI function)|IFFNSH]]</td>
<td> 47</td>
<td>   3</td>
<td>*</td>
<td>-</td>
<td>IFFINDE</td>
<td>Execute only</td>
<td>IFFD, IFFDC</td>
<td>*</td>
</tr>
<tr>
<td>IFFDV</td>
<td> 74</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>Y</td>
<td>IFFDVC, IFFDVE</td>
<td>Y</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDVC</td>
<td>[[IFFRN (HLI function)|IFFRN]]</td>
<td> 75</td>
<td>118</td>
<td>-</td>
<td>-</td>
<td>IFFRNC / 119</td>
<td>IFFRNE / 120</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>Y</td>
<td>IFFDV, IFFDVE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDVE</td>
<td>[[IFFTCH (HLI function)|IFFTCH]]</td>
<td> 76</td>
<td> 98</td>
<td>-</td>
<td>-</td>
<td>IFFTCHC / 99,<br />(alias) IFFCHC</td>
<td>IFFTCHE / 100,<br />(alias) IFFCHE</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>Y</td>
<td>IFFDV, IFFDVC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDX</td>
<td>[[IFFWOL (HLI function)|IFFWOL]]</td>
<td> 56</td>
<td> 87</td>
<td>*</td>
<td>IFFWO</td>
<td>IFFNDX</td>
<td>IFFWOLC / 88,<br />(alias) IFFWOC</td>
<td>Compile and execute</td>
<td>IFFWOLE / 89,<br />(alias) IFFWOE</td>
<td>IFFDXC, IFFDXE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDXC</td>
<td>[[IFGERR (HLI function)|IFGERR]]</td>
<td> 57</td>
<td> 29</td>
<td>*</td>
<td>-</td>
<td>IFFNDXC</td>
<td>-</td>
<td>Compile only</td>
<td>-</td>
<td>IFFDX, IFFDXE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFDXE</td>
<td>[[IFGET (HLI function)|IFGET]]</td>
<td> 58</td>
<td> 15</td>
<td>*</td>
<td>-</td>
<td>IFFNDXE</td>
<td>IFGETC / 48</td>
<td>Execute only</td>
<td>IFGETE / 49</td>
<td>IFFDX, IFFDXC</td>
<td>-</td>
<td>*</td>
<td>-</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFILE</td>
<td>[[IFGETV (HLI function)|IFGETV]]</td>
<td> 22</td>
<td> 77</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFGTVC / 78</td>
<td>IFGTVE / 79</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFIND</td>
<td>[[IFGETX (HLI function)|IFGETX]]</td>
<td> 13</td>
<td> 36</td>
<td>-</td>
<td>None; IFGETC can be used</td>
<td>IFGETXE / 50,<br />(alias) IFGTXE</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFD</td>
<td>Compile and execute</td>
<td>IFFINDC, IFFINDE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFINDC</td>
<td>[[IFHNGUP (HLI function)|IFHNGUP]]</td>
<td> 46</td>
<td>   8</td>
<td>IFHNGP</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFDC</td>
<td>Y</td>
<td>Compile only</td>
<td>IFFIND, IFFINDE</td>
<td>*</td>
</tr>
<tr>
<td>IFFINDE</td>
<td> 47</td>
<td>-</td>
<td>-</td>
<td>IFFDE</td>
<td>Execute only</td>
<td>IFFIND, IFFINDC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFLS</td>
<td>[[IFINIT (HLI function)|IFINIT]]</td>
<td> 61</td>
<td> 23</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFLSH</td>
<td>[[IFLIST (HLI function)|IFLIST]]</td>
<td> 45</td>
<td> 17</td>
<td>*</td>
<td>-</td>
<td>IFFLUSH</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFLUSH</td>
<td>[[IFLOG (HLI function)|IFLOG]]</td>
<td> 45</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFLSH</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFNDX</td>
<td>[[IFMORE (HLI function)|IFMORE]]</td>
<td> 56</td>
<td> 16</td>
<td>-</td>
<td>IFMOREC / 51,<br />(alias) IFMREC</td>
<td>IFMOREE / 52,<br />(alias) IFMREE</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFDX</td>
<td>Compile and execute</td>
<td>IFFNDXC, IFFNDXE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFNDXC</td>
<td>[[IFMOREX (HLI function)|IFMOREX]]</td>
<td> 57</td>
<td> 37</td>
<td>IFMREX</td>
<td>None; IFMOREC can be used</td>
<td>IFMORXE / 53,<br />(alias) IFMRXE</td>
<td>-</td>
<td>-</td>
<td>IFFDXC</td>
<td>Compile only
</td>
<td>IFFNDX, IFFNDXE</td>
<td>*</td>
</tr>
<tr>
<td>IFFNDXE</td>
<td> 58</td>
<td>-</td>
<td>-</td>
<td>IFFDXE</td>
<td>Execute only</td>
<td>IFFNDX, IFFNDXC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFFNSH</u></td>
<td>[[IFNFLD (HLI function)|IFNFLD]]</td>
<td>   3</td>
<td> 63</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFRN</td>
<td>[[IFOCC (HLI function)|IFOCC]]</td>
<td>118</td>
<td>122</td>
<td>-</td>
<td>-</td>
<td>IFOCCC / 123</td>
<td>IFOCCE / 124</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>Y</td>
<td>IFFRNC, IFFRNE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFRNC</td>
<td>[[IFOCUR (HLI function)|IFOCUR]]</td>
<td>119</td>
<td> 95</td>
<td>-</td>
<td>-</td>
<td>IFOCURC / 106,<br />(alias) IFOCRC</td>
<td>IFOCURE / 107,<br />(alias) IFOCRE</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>Y</td>
<td>IFFRN, IFFRNE</td>
<td>* </td>
</tr>
</tr>
<tr>
<tr>
<td>IFFRNE</td>
<td>[[IFOPEN (HLI function)|IFOPEN]]</td>
<td>120</td>
<td> 11</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>Y</td>
<td>IFFRN, IFFRNC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFTCH</td>
<td>[[IFOPENX (HLI function)|IFOPENX]]</td>
<td> 98</td>
<td> 35</td>
<td>IFOPNX</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>Y</td>
<td>IFFTCHC, IFFTCHE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFTCHC</td>
<td>[[IFPOINT (HLI function)|IFPOINT]]</td>
<td> 99</td>
<td> 44</td>
<td>IFPNT</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFCHC</td>
<td>Compile only</td>
<td>IFFTCH, IFFTCHE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFTCHE</td>
<td>[[IFPROL (HLI function)|IFPROL]]</td>
<td>100</td>
<td> 33</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFFCHE</td>
<td>Y</td>
<td>Execute only</td>
<td>IFFTCH, IFFTCHC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFWO</td>
<td>[[IFPROLS (HLI function)|IFPROLS]]</td>
<td> 87</td>
<td>109</td>
<td>*</td>
<td>IFPRLS</td>
<td>IFFWOL</td>
<td>-</td>
<td>Compile and execute</td>
<td>-</td>
<td>IFFWOC, IFFWOE</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFFWOC</td>
<td>[[IFPUT (HLI function)|IFPUT]]</td>
<td> 88</td>
<td> 18</td>
<td>*</td>
<td>IFFWOLC</td>
<td>Compile only</td>
<td>IFFWO, IFFWOE</td>
<td>*</td>
</tr>
<tr>
<td>IFFWOE</td>
<td> 89</td>
<td>*</td>
<td>IFFWOLE</td>
<td>Execute only</td>
<td>IFFWO, IFFWOC</td>
<td>*</td>
</tr>
<tr>
<td>IFFWOL</td>
<td> 87</td>
<td>-</td>
<td>-</td>
<td>IFFWO</td>
<td>IFPUTC / 54</td>
<td>Compile and execute</td>
<td>IFPUTE / 55</td>
<td>IFFWOLC, IFFWOLE</td>
<td>*</td>
</tr>
<tr>
<td>IFFWOLC</td>
<td> 88</td>
<td>-</td>
<td>-</td>
<td>IFFWOC</td>
<td>Compile only</td>
<td>IFFWOL, IFFWOLE</td>
<td>*</td>
</tr>
<tr>
<td>IFFWOLE</td>
<td> 89</td>
<td>-</td>
<td>-</td>
<td>IFFWOE</td>
<td>Execute only</td>
<td>IFFWOL, IFFWOLC</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGERR</td>
<td>[[IFREAD (HLI function)|IFREAD]]</td>
<td> 29</td>
<td>   9</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGET</td>
<td>[[IFRELA (HLI function)|IFRELA]]</td>
<td> 15</td>
<td>104</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFGETC, IFGETE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGETC</td>
<td>[[IFRELR (HLI function)|IFRELR]]</td>
<td> 48</td>
<td>103</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFGET, IFGETE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGETE</td>
<td>[[IFRFLD (HLI function)|IFRFLD]]</td>
<td> 49</td>
<td> 59</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFGET, IFGETC</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGETV</td>
<td>[[IFRNUM (HLI function)|IFRNUM]]</td>
<td> 77</td>
<td>121</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFGTVC, IFGTVE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGETX</td>
<td>[[IFRPRM (HLI function)|IFRPRM]]</td>
<td> 36</td>
<td> 27</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFGETXE, IFGETC</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGETXE</td>
<td>[[IFRRFL (HLI function)|IFRRFL]]</td>
<td> 50</td>
<td> 34</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFGTXE</td>
<td>Execute only</td>
<td>IFGETX</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGTVC</td>
<td>[[IFRRFLS (HLI function)|IFRRFLS]]</td>
<td> 78</td>
<td>110</td>
<td>IFRFLS</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFGETV, IFGTVE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGTVE</td>
<td>[[IFSETUP (HLI function)|IFSETUP]]</td>
<td> 79</td>
<td> 86</td>
<td>IFSETP</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>Y</td>
<td>IFGETV, IFGTVC</td>
<td>-</td>
<td>-</td>
</tr>
</tr>
<tr>
<tr>
<td>IFGTXE</td>
<td>[[IFSKEY (HLI function)|IFSKEY]]</td>
<td> 50</td>
<td> 83</td>
<td>*</td>
<td>-</td>
<td>IFGETXE</td>
<td>IFSKYC / 84</td>
<td>Execute only</td>
<td>IFSKYE / 85</td>
<td>IFGETX</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFHNGP</u></td>
<td>[[IFSORT (HLI function)|IFSORT]]</td>
<td>  8</td>
<td> 68</td>
<td>*</td>
<td>IFHNGUP</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFSRTC / 69</td>
<td>IFSRTE / 70</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFHNGUP</u></td>
<td>[[IFSPRM (HLI function)|IFSPRM]]</td>
<td>   8</td>
<td> 26</td>
<td>-</td>
<td>-</td>
<td>IFHNGP</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFINIT</td>
<td>[[IFSRTV (HLI function)|IFSRTV]]</td>
<td> 23</td>
<td> 80</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFSTVC / 81</td>
<td>IFSTVE / 82</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFLIST</td>
<td>[[IFSTHRD (HLI function)|IFSTHRD]]</td>
<td> 17</td>
<td>   2</td>
<td>IFSTRD</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
<tr>
<td>[[IFSTOR (HLI function)|IFSTOR]]</td>
<td>112</td>
<td>-</td>
<td>-</td>
<td>IFSTRC / 113</td>
<td>IFSTRE / 114</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFLOG</td>
<td>[[IFSTRT (IFAM1) (HLI function)|IFSTRT <br />(IFAM1)]] </td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
Line 1,556: Line 1,578:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFMORE</td>
<td>[[IFSTRT (IFAM2/IFAM4) (HLI function)|IFSTRT <br />(IFAM2/IFAM4)]]</td>
<td> 16</td>
<td>  1</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFMREC, IFMREE, IFMOREC, IFMOREE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFMOREC</td>
<td>[[IFSTRTN (IFAM2) (HLI function)|IFSTRTN <br />(IFAM2)]]</td>
<td> 51</td>
<td>  4</td>
<td>IFSTRN</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>IFMREC</td>
<td>Compile only</td>
<td>IFMORE, IFMOREE</td>
<td>-</td>
<td>-</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td>IFMOREE</td>
<td>[[IFUPDT (HLI function)|IFUPDT]]</td>
<td> 52</td>
<td>115</td>
<td>-</td>
<td>IFMREE</td>
<td>Execute only</td>
<td>IFMORE, IFMOREC</td>
<td>-</td>
</tr>
<tr>
<td>IFMOREX</td>
<td> 37</td>
<td>-</td>
<td>IFMREX</td>
<td>Compile and execute</td>
<td>IFMORXE, IFMOREC</td>
<td>-</td>
</tr>
<tr>
<td>IFMORXE</td>
<td> 53</td>
<td>-</td>
<td>IFMRXE</td>
<td>Execute only</td>
<td>IFMOREX</td>
<td>-</td>
</tr>
<tr>
<td>IFMREC</td>
<td> 51</td>
<td>*</td>
<td>IFMOREC</td>
<td>Compile only</td>
<td>IFMORE, IFMREE</td>
<td>-</td>
</tr>
<tr>
<td>IFMREE</td>
<td> 52</td>
<td>*</td>
<td>IFMOREE</td>
<td>Execute only</td>
<td>IFMORE, IFMREC</td>
<td>-</td>
</tr>
<tr>
<td>IFMREX</td>
<td> 37</td>
<td>*</td>
<td>IFMOREX</td>
<td>Compile and execute</td>
<td>IFMRXE</td>
<td>-</td>
</tr>
<tr>
<td>IFMRXE</td>
<td> 53</td>
<td>*</td>
<td>IFMORXE</td>
<td>Execute only</td>
<td>IFMREX</td>
<td>-</td>
</tr>
<tr>
<td>IFNFLD</td>
<td> 63</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFOCC</td>
<td>122</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFOCCC, IFOCCE</td>
<td>*</td>
</tr>
<tr>
<td>IFOCCC</td>
<td>123</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFOCC, IFOCCE</td>
<td>*</td>
</tr>
<tr>
<td>IFOCCE</td>
<td>124</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFOCC, IFOCCC</td>
<td>*</td>
</tr>
<tr>
<td>IFOCRC</td>
<td>106</td>
<td>*</td>
<td>IFOCURC</td>
<td>Compile only</td>
<td>IFOCUR, IFOCRE</td>
<td>*</td>
</tr>
<tr>
<td>IFOCRE</td>
<td>107</td>
<td>*</td>
<td>IFOCURE</td>
<td>Execute only</td>
<td>IFOCUR, IFOCRC</td>
<td>*</td>
</tr>
<tr>
<td>IFOCUR</td>
<td> 95</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFOCRC, IFOCRE, IFOCURC, IFOCURE</td>
<td>*</td>
</tr>
<tr>
<td>IFOCURC</td>
<td>106</td>
<td>-</td>
<td>IFOCRC</td>
<td>Compile only</td>
<td>IFOCUR, IFOCURE</td>
<td>*</td>
</tr>
<tr>
<td>IFOCURE</td>
<td>107</td>
<td>-</td>
<td>IFOCRE</td>
<td>Execute only</td>
<td>IFOCUR, IFOCURC</td>
<td>*</td>
</tr>
<tr>
<td>IFOPEN</td>
<td> 11</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFOPENX</td>
<td> 35</td>
<td>-</td>
<td>IFOPNX</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFOPNX</td>
<td> 35</td>
<td>*</td>
<td>IFOPENX</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFPNT</td>
<td> 44</td>
<td>*</td>
<td>IFPOINT</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>IFPOINT</td>
<td> 44</td>
<td>-</td>
<td>IFPNT</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>IFPRLS</td>
<td>109</td>
<td>*</td>
<td>IFPROLS</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFPROL</td>
<td> 33</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFPROLS</td>
<td>109</td>
<td>-</td>
<td>IFPRLS</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFPUT</td>
<td> 18</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFPUTC, IFPUTE</td>
<td>-</td>
</tr>
<tr>
<td>IFPUTC</td>
<td> 54</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFPUT, IFPUTE</td>
<td>-</td>
</tr>
<tr>
<td>IFPUTE</td>
<td> 55</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFPUT, IFPUTC</td>
<td>-</td>
</tr>
<tr>
<td><u>IFREAD</u></td>
<td>  9</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>IFRELA</td>
<td>104</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRELR</td>
<td>103</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRFLD</td>
<td> 59</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRFLS</td>
<td>110</td>
<td>*</td>
<td>IFRRFLS</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRNUM</td>
<td>121</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRPRM</td>
<td> 27</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRRFL</td>
<td> 34</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFRRFLS </td>
<td>110</td>
<td>-</td>
<td>IFRFLS</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td><u>IFSETP</u></td>
<td> 86</td>
<td>*</td>
<td>IFSETUP</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td><u>IFSETUP</u></td>
<td> 86</td>
<td>-</td>
<td>IFSETP</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td>IFSKEY</td>
<td> 83</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFSKYC, IFSKYE</td>
<td>*</td>
</tr>
<tr>
<td>IFSKYC</td>
<td> 84</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFSKEY, IFSKYE</td>
<td>*</td>
</tr>
<tr>
<td>IFSKYE</td>
<td> 85</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFSKEY, IFSKYC</td>
<td>*</td>
</tr>
<tr>
<td>IFSORT</td>
<td> 68</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFSRTC, IFSRTE</td>
<td>*</td>
</tr>
<tr>
<td>IFSPRM</td>
<td> 26</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSRTC</td>
<td> 69</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFSORT, IFSRTE</td>
<td>*</td>
</tr>
<tr>
<td>IFSRTE</td>
<td> 70</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFSORT, IFSRTC</td>
<td>*</td>
</tr>
<tr>
<td>IFSRTV</td>
<td> 80</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFSTVC, IFSTVE</td>
<td>*</td>
</tr>
<tr>
<td>IFSTHRD</td>
<td>  2</td>
<td>-</td>
<td>IFSTRD</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTOR</td>
<td>112</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>IFSTRC, IFSTRE</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRC</td>
<td>113</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFSTOR, IFSTRE</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRD</td>
<td>  2</td>
<td>*</td>
<td>IFSTHRD</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRE</td>
<td>114</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFSTOR, IFSTRC</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRN</td>
<td>  4</td>
<td>*</td>
<td>IFSTRTN</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRT<sup>1</sup> </td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRT<sup>2</sup></td>
<td>  1</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTRTN</td>
<td>  4</td>
<td>-</td>
<td>IFSTRN</td>
<td>-</td>
<td>-</td>
<td>*</td>
</tr>
<tr>
<td>IFSTVC</td>
<td> 81</td>
<td>-</td>
<td>-</td>
<td>Compile only</td>
<td>IFSRTV, IFSTVE</td>
<td>* </td>
</tr>
<tr>
<td>IFSTVE</td>
<td> 82</td>
<td>-</td>
<td>-</td>
<td>Execute only</td>
<td>IFSRTV, IFSTVC</td>
<td>*</td>
</tr>
<tr>
<td>IFUPDC</td>
<td>116</td>
<td>*</td>
<td>IFUPDTC</td>
<td>Compile only</td>
<td>IFUPDT, IFUPDE</td>
<td>*</td>
</tr>
<tr>
<td>IFUPDE</td>
<td>117</td>
<td>*</td>
<td>IFUPDTE</td>
<td>Execute only</td>
<td>IFUPDT, IFUPDC</td>
<td>*</td>
</tr>
<tr>
<td>IFUPDT</td>
<td>115</td>
<td>-</td>
<td>-</td>
<td>IFUPDTC / 116,<br />(alias) IFUPDC</td>
<td>IFUPDTE / 117,<br />(alias) IFUPDE</td>
<td>-</td>
<td>-</td>
<td>Compile and execute</td>
<td>Y</td>
<td>IFUPDC, IFUPDE, IFUPDTC, IFUPDTE</td>
<td>*</td>
</tr>
</tr>
<tr>
<tr>
<td>IFUPDTC</td>
<td>[[IFUTBL (HLI function)|IFUTBL]]</td>
<td>116</td>
<td>-</td>
<td>IFUPDC</td>
<td>Compile only</td>
<td>IFUPDT, IFUPDTE</td>
<td>*</td>
</tr>
<tr>
<td>IFUPDTE</td>
<td>117</td>
<td>-</td>
<td>IFUPDE</td>
<td>Execute only</td>
<td>IFUPDT, IFUPDTC</td>
<td>*</td>
</tr><tr>
<td>IFUTBL</td>
<td> 64</td>
<td> 64</td>
<td>-</td>
<td>-</td>
Line 2,140: Line 1,614:
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>*</td>
<td>Y</td>
</tr>
</tr>
<tr>
<tr>
<td><u>IFWRIT</u></td>
<td>[[IFWRITE (HLI function)|IFWRITE]]</td>
<td> 10</td>
<td> 10</td>
<td>*</td>
<td>IFWRITE</td>
<td>-</td>
<td>-</td>
<td>-</td>
</tr>
<tr>
<td><u>IFWRITE</u></td>
<td> 10</td>
<td>-</td>
<td>IFWRIT</td>
<td>IFWRIT</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>-</td>
<td>Y</td>
<td>-</td>
<td>-</td>
</tr>
</tr>
</table>
</table>
<p><sup>1</sup> In IFAM1</p>
 
<p><sup>2</sup> In IFAM2 and IFAM4</p>
==See also==
{{Template: HLI reference topic list}}


[[Category: Host Language Interface]]
[[Category: Host Language Interface]]

Latest revision as of 03:57, 7 January 2017

Overview

This topic summarizes the function calls available in the Model 204 Host Language Interface (HLI) facility. Read this topic if you are using the HLI facility for the first time.

This topic also provides overview information on IFDIAL and IFSTRT threads that you need to understand in order to code the HLI calls in your application program.

When designing program logic, you must be familiar with the following distinctions:

For more information:

  • See the HLI functions table at the end of this topic for a complete listing of HLI function calls.
  • See the individual pages in the HLI functions category for a detailed description of each call.
  • See HLI: Coding conventions for information about coding HLI call parameters using different host languages.
  • For sample coding sequences using HLI calls, see HLI: Threads.

IFDIAL thread calls

IFDIAL thread

An IFDIAL thread provides a line-at-a-time terminal type interface between Model 204 and a host language program that is running in batch.

With an IFDIAL thread, an application that is written in a host language can transmit data to and from Model 204 using the IFWRITE and IFREAD calls.

See HLI: Job requirements for information about setting up and running the batch Model 204 job using an IFDIAL thread.

Summary of IFDIAL calls

The following table summarizes the HLI calls that are available for use only with an IFDIAL thread. See the individual pages in HLI functions for a detailed description of each call.

IFDIAL functions

Call Function
IFATTN Sends an attention interrupt.
IFDIAL Starts an IFDIAL thread.
IFDIALN Starts an IFDIAL thread using a specified communications channel name.
IFHNGUP Ends all threads that are started in a job.
IFREAD Gets a line of output from Model 204.
IFSETUP Initiates contact with Model 204 and sets the PARM parameters and CCAIN statements for the IFAM1 job.
IFWRITE Sends a line of input to Model 204.

IFSTRT thread calls

IFSTRT thread

An IFSTRT thread provides a user interface between Model 204 and a host language program that is running in batch.

With an IFSTRT thread, an application that is written in a host language can issue calls to Model 204 that perform operations against the database which are similar to Model 204 commands and SOUL statements.

See HLI: Job requirements for information about setting up and running the Online or batch Model 204 job using an IFSTRT thread. See IFSTRT (IFAM1) or IFSTRT (IFAM2/IFAM4) for a detailed description of the IFSTRT call.

Different operational levels

The HLI calls that are available for use with an IFSTRT thread are categorized by functionality and operate at the following levels:

  • System
  • Transaction
  • File or group
  • Set
  • Single record

A typical application program works at all levels, using the HLI calls that are available at each level. The calls that are available in each of these categories are summarized in the tables on the following pages.

Enqueuing action and record locking behavior

When several users have access to the same files or groups, Model 204 prevents conflicting, simultaneous use of records with a facility called enqueuing. Enqueuing is performed at the thread level.

With an IFSTRT thread, most HLI function calls automatically enqueue and dequeue on the resources, such as the files, groups, sets, or records, to which they refer.

See HLI functions for detailed information about the record locking behavior of individual calls. See HLI: Locking behavior of HLI calls for more information about enqueueing on an IFSTRT thread.

System level IFSTRT calls

System level functions constitute the highest level of access to the Host Language Interface Model 204 service routines. At the system level, most functions do not require a file or group context.

The following table summarizes the IFSTRT calls that function at the system level.

System level IFSTRT calls

Call Function
IFCALL Calls another HLI function by number.
IFCHKPT Requests a checkpoint, checkpoint status information, or both. (Note that IFCHKPT is also a transaction-level function.)
IFDTHRD Deletes the current thread and switches to another thread.
IFEFCC Returns specific information about field values or record numbers that cause a field constraint conflict using the IFSTOR, IFUPDT, or IFPUT HLI calls
IFEPRM Reads a parameter.
IFERLC Returns a file name, record number, and user name after a record locking conflict occurs in an HLI program that issues a call that requires locking a record
IFERR Places a message on the journal, requests a snap dump of the Model 204 region, or both.
IFFNSH Deallocates all threads; finishes HLI portion of program.
IFGERR Reads the latest error message produced by Model 204.
IFLOG Logs in user with user ID and password (IFAM1).
IFRPRM Resets a parameter.
IFSPRM Sets a parameter.
IFSTHRD Switches from one thread to another.
IFSTRT Establishes an IFSTRT thread connection.
IFSTRTN Establishes an IFSTRT thread connection to an alternate HLI Model 204 service program.
IFUTBL Resets the size of a user's server tables.

Transaction level IFSTRT calls

Transaction level functions operate in a job that uses the Host Language Interface facility to manage transactions for a logical unit of work processing against the Model 204 database.

The following table summarizes the IFSTRT calls that function at the transaction level.

Transaction level IFSTRT calls

Call Function
IFBOUT Backs out current transaction.
IFCHKPT Requests a checkpoint or checkpoint status or both.

Note: IFCHKPT is also a system-level function.

IFCMMT Commits the current transaction.
IFCMTR Releases all record sets and commits the current transaction.
IFRELA Releases all record sets.

File or group level IFSTRT calls

HLI functions at the file or group level operate with a file or group.

For example, whenever an application program requires access to a Model 204 file, a file or group must be opened. IFOPEN must be called before any other file or group level functions. IFOPEN establishes the current file or group on which subsequent file or group level, record level, and set level functions operate.

Note: On a single cursor IFSTRT thread, each thread can have only one current file or group. All functions operate against this file or group.

On a multiple cursor IFSTRT thread, multiple files or groups can be accessed, and the file or group that is specified in the HLI call is the one that is current for processing. If the file specification is optional and no file is specified, the file that was opened last is current, by default.

The following table summarizes the IFSTRT calls that function at the file or group level.

File or group level IFSTRT calls

Call Function
IFCLOSE Closes all files and groups for the current thread.
IFDELF Deletes a field definition in a file. IFDELF can be used only if the current context is a file.
IFDFLD Defines new fields in a file.
IFDISP Displays file, group, and other information.
IFFLS Checks for field-level security violations.
IFINIT Initializes a file. IFINIT can be used only if the current context is a file.
IFNFLD Renames fields in a file. IFNFLD can be used only if the current contest is a file.
IFOPEN Opens a file or group.
IFOPENX Opens a file or group, enqueuing upon the file(s) in exclusive status.
IFRFLD Redefines fields in a file. IFRFLD can be used only if the current context is a file.

Record set level IFSTRT calls

Functions at the record set level operate with sets of records or field values.

For example, the IFFIND function must be called to establish a current set before any other set level functions can operate successfully.

On a multiple cursor IFSTRT thread, the set that is specified in the HLI call is the one that is current for processing. On a single cursor IFSTRT thread, the current set is the one last created.

The IFSTRT calls that function at the record set level are summarized in the following tables:

Record set level calls on any IFSTRT thread

The following table lists calls that can be used on both multiple cursor and single cursor IFSTRT threads.

Record set level calls on any IFSTRT thread

Call Function
IFCOUNT Counts the number of records in the current set.
IFDSET Deletes the current set of records from the file or group.
IFFAC Finds and returns record count.
IFFACC Compiles an IFFAC specification.
IFFACE Executes a precompiled IFFAC specification.
IFFDV Selects a set of field values to become the current value set.
IFFDVC Compiles an IFFDV specification.
IFFDVE Executes a precompiled IFFDV specification.
IFFILE Adds an invisible key field to all records in the current set.
IFFIND Selects a set of records as the current set.
IFFINDC Compiles an IFFIND specification.
IFFINDE Executes a precompiled IFFIND specification.
IFFNDX Selects a set of records and enqueues upon them exclusively.
IFFNDXC Compiles an IFFNDX specification.
IFFNDXE Executes a precompiled IFFNDX specification.
IFFWOL Selects a set of records as the current set, without locking.
IFFWOLC Compiles an IFFWOL specification.
IFFWOLE Executes a precompiled IFFWOL specification.
IFSKEY Sorts the records in the current IFFIND set; only the record key is written to the sort records.
IFSKYC Compiles the IFSKEY specification.
IFSKYE Executes the precompiled IFSKEY specification.
IFSORT Sorts the records in the current set.
IFSRTC Compiles the IFSORT sort specification.
IFSRTE Executes the precompiled IFSORT or IFSRTC specification.
IFSRTV Sorts the values in the current value set.
IFSTVC Compiles the IFSRTV specification.
IFSTVE Executes the precompiled IFSRTV specification.

Record set level calls on a multiple cursor IFSTRT thread

The following table lists those calls that can be used only on a multiple cursor IFSTRT thread.

Record set level calls on a multiple cursor IFSTRT thread

Call Function
IFCCUR Closes a cursor on a set.
IFCLST Clears a list.
IFOCUR Opens a cursor on a set.
IFOCURC Compiles the IFOCUR specification.
IFOCURE Executes the precompiled IFOCUR specification.
IFPROLS Places records from a found set onto a list.
IFRELR Releases records in a found set.
IFRRFLS Removes records in a found set from a list.

Record set level calls on a single cursor IFSTRT thread

The following table lists those calls that can be used only on a single cursor IFSTRT thread.

Record set level calls on a single cursor IFSTRT thread

Call Function
IFDEQL Dequeues the set of records on a specified list.
IFENQL Enqueues in share or exclusive mode on the set of records of the specified list.
IFLIST Places the records in the current set onto a named list.

Individual record level IFSTRT calls

Individual record functions operate on a record.

On a single cursor IFSTRT thread, IFGET, IFBREC, and IFPOINT establish the current record on which they and other functions at this level operate.

On a multiple cursor IFSTRT thread, the current record in the cursor that is specified in the HLI call is the record that is current for processing. The current record in a cursor is established by an IFFTCH, IFSTOR, or IFFRN call.

The IFSTRT calls that function at the single record level are summarized in the following tables:

Individual record level calls on any IFSTRT thread

Call Function
IFDALL Deletes all the occurrences of a field from the current record.
IFDREC Deletes the current record from its file.
IFDVAL Deletes a field name = value pair.
IFPROL Places the current record on a named list.
IFRRFL Removes the current record from a named list.

Individual record level calls on a multiple cursor IFSTRT thread

The following table lists those calls that can be used only on a multiple cursor IFSTRT thread.

Individual record level calls on a Multiple Cursor IFSTRT thread

Call Function
IFFRN Points to the specified record in the specified file and makes it the current record.
IFFRNC Compiles the IFFRN specification.
IFFRNE Executes the precompiled IFFRN specification.
IFFTCH Processes the next logical record or value and returns the specified data.
IFFTCHC Compiles the IFFTCH specification.
IFFTCHE Executes the precompiled IFFTCH specification.
IFOCC Counts the number of occurrences of the specified field in the current record and returns a count.
IFOCCC Compiles the IFOCC specification.
IFOCCE Executes the precompiled IFOCC specification.
IFRNUM Returns the number of the current record in the specified cursor.
IFSTOR Creates a new record with the specified data and adds the record to the specified file.
IFSTRC Compiles the IFSTOR specification.
IFSTRE Executes the precompiled IFSTOR specification.
IFUPDT Updates the current record with the specified data.
IFUPDTC Compiles the IFUPDT specification.
IFUPDTE Executes the precompiled IFUPDT specification.

Individual record level calls on a single cursor IFSTRT thread

The following table lists those calls that can be used only on a single cursor IFSTRT thread.

Individual record level calls on a single cursor IFSTRT thread

Call Function
IFBREC Creates a new record.
IFCTO Counts the number of field occurrences in the current record.
IFCTOC Compiles an IFCTO specification.
IFCTOE Executes a precompiled IFCTO specification.
IFGET Reads information from the next record in the current set.
IFGETC Compiles an IFGET specification.
IFGETE Executes a precompiled IFGET specification.
IFGETV Reads the next value from the current value set.
IFGETX Reads information from the next record, enqueuing upon it exclusively.
IFGETXE Executes a precompiled IFGET specification, enqueuing upon the record exclusively.
IFGTVC Compiles the IFGETV specification.
IFGTVE Executes the precompiled IFGETV.
IFMORE Reads more information from the current record.
IFMOREC Compiles an IFMORE specification.
IFMOREE Executes a precompiled IFMORE specification.
IFMOREX Reads more information from the current record, enqueuing upon the record exclusively.
IFMORXE Executes a precompiled IFMORE specification, enqueuing upon the record exclusively.
IFPOINT Specifies a new current record.
IFPUT Updates the current record.
IFPUTC Compiles an IFPUT record.
IFPUTE Executes a precompiled IFPUT specification.

IFSTRT thread calls and compiled IFAM

Compiled IFAM facility

The Compiled IFAM (Inverted File Access Method) facility allows IFSTRT thread calls to be compiled and stored.

Using the Compiled IFAM facility, you can execute a compilation at a later time by specifying the name under which it was stored. You do not need to recompile the stored call.

A compilation must be uniquely identified so that multiple calls can use it. The name parameter included in all Compiled IFAM calls specifies a character string that is used to identify the compilation. A null name string is the same as an omitted parameter.

Three forms of Compiled IFAM calls

Three forms of IFSTRT calls are available using the Compiled IFAM facility: compile and execute, compile-only, and execute-only. The following options are available to accommodate different programming styles:

  • Using a single call that compiles and executes with the name parameter that identifies the compilation. The call executes and the compiled version of the call is saved.

    When the same call is executed again or when another call containing the same name parameter is executed, the stored compilation is executed without requiring recompilation.

  • Using two calls, one is compile-only and one is execute-only, with the name parameter that identifies the compilation for the two phases of Compiled IFAM processing: compilation and execution.

    This option involves a two-call procedure, useful in loop processing. The compilation form of the call is used outside the loop to compile (but not execute) the call specification. Within the loop, the execution form of the call is issued, thereby executing the previously compiled call.

See the functions table for an overview of the calls that provide Compiled IFAM functionality for IFSTRT thread processing.

See HLI: IFSTRT processing for more information about IFSTRT calls and the Compiled IFAM facility.

Function call notation conventions

The conventions for call syntax and parameters described in this section apply to each function call page in the HLI functions category.

Type of thread for the call

The Thread type heading on each function call page indicates the type(s) of thread that can be used for the call:

  • multiple cursor IFSTRT thread
  • single cursor IFSTRT thread
  • IFDIAL thread

Call name and syntax

The syntax of host language calls is presented in the following format:

callname | alias (parm1, parm2,...parmn)

where:

  • callname is a keyword which specifies the name of the HLI function; an alias, if available, is also provided. alias is a name that is six characters or less in length to be used for FORTRAN programming. A vertical bar separates the callname from the alias, for example:

    IFFIND | IFFD

  • parm1 is the first parameter in the call list. Parameters must be specified in the proper syntax order, as shown (parm2 follows parm1, and so on; parmn is last).
  • A comma delimiter (,) separates parameters in the list, and the entire parameter list is enclosed inside parentheses, for illustrative purposes only. (When coding calls, use the delimiter and format that is valid in your host language.)

Different forms of call syntax

The individual call description includes the full syntax and, where available, the compile-only and execute-only forms of the call. For example, with IFFIND (full syntax), the IFFINDC (compile-only syntax) and IFFINDE (execute-only syntax) forms are also provided. Compile-only or execute-only syntax is used with the Compiled IFAM facility.

Also, each form of the call, that is, full syntax, compile-only syntax, and execute-only syntax, is identified by a call number, where available. Note that you can use IFCALL to call functions that have numbers.

For example, for the three forms of the find function call, the IFCALL function numbers are:

  • IFFIND Full syntax (13)
  • IFFINDC Compile-only syntax (46)
  • IFFINDE Execute-only syntax (47)

Parameters

Each parameter description provides a three-character code having the following format:

[X,y,z]

where:

X Specifies that the parameter is used for input or output operations, and that it is either of the following codes:

I (input)
O (output)

y Specifies that the parameter, if coded, must be defined in the host language program as one of three possible data type variables, and is one of the following codes:

i -- For an integer whose maximum length is 4 bytes

s -- For a short character string whose maximum length is 32 bytes

c -- For a character string whose maximum length is the buffer size

z Specifies whether the parameter must be coded in the call, and is either (or both) of the following codes:

r (required)

o (optional)

For example, RETCODE [O,i,r] where:

O Specifies that RETCODE is an output parameter
i Specifies an integer type variable (maximum length is 4 bytes)
r Specifies that RETCODE is required

Certain parameters may be either r or o depending, in some cases, on whether the call is being coded on a multiple cursor IFSTRT thread or, in other cases, whether the call is used for Compiled IFAM.

For example, for IFFAC, the compilation name parameter is FAC_NAME [I,s,r/o] where:

I Specifies that FAC_NAME is an input parameter
s Specifies a short character string type variable (maximum length is 32 bytes)
r/o Specifies that FAC_NAME is required for use with a multiple cursor IFSTRT thread, and is only required for a single cursor IFSTRT thread if using the compiled IFAM facility (IFFACC and IFFACE).

For an r/o code, read the parameter description to determine usage requirements.

Complete listing of HLI functions

The following table provides a summary overview of the calls that are available using the HLI facility, including their Compiled IFAM and multiple cursor (MC) functionality.

Table conventions

For each call, this table provides the following information:

  • Name: Names are listed in alphabetical order. Each function name links to a topic describing that function in detail.
  • IFCALL function #: the number that can be used to reference the function using IFCALL.
    Note that IFCALL, IFDECL, IFLOG, and IFSTRT (IFAM1) do not have numbers.
  • Alias: The shortened COBOL form (six characters or less in length) for the call. A dash indicates that the call name does not have an alias.
  • Compile-only form/IFCALL function #: If present, the compile-only form of the function and its IFCALL number. Any alias for the compile-only form is also listed.
  • Execute-only form/IFCALL function #: If present, the execute-only form of the function and its IFCALL number. Any alias for the execute-only form is also listed.
  • IFDIAL?: A Y indicates that the call is valid for use with an IFDIAL thread.
  • Multiple cursor?: A Y indicates that the call is valid for use with a multiple cursor IFSTRT thread.

HLI functions

Name IFCALL
function #
Alias Compile-only form/
IFCALL function #
Execute-only form/
IFCALL function #
IFDIAL? Multiple
cursor?
IFABXIT 97 - - - - Y
IFATTN 43 - - - Y -
IFBOUT 71 - - - - Y
IFBREC 20 - - - - -
IFCALL - - - - - Y
IFCCUR 125 - - - - Y
IFCHKPT 30 IFCHKP - - - Y
IFCLOSE 12 IFCLOS - - - Y
IFCLST 108 - - - - Y
IFCMMT 72 - - - - Y
IFCMTR 105 - - - - Y
IFCOUNT 14 IFCNT - - - Y
IFCSA 96 - - - - Y
IFCTO 65 - IFCTOC / 66 IFCTOE / 67 - -
IFDALL 73 - - - - Y
IFDECL - - - - - -
IFDELF 62 - - - - Y
IFDEQ 38 - - - - Y
IFDEQL 41 - - - - -
IFDFLD 24 - - - - Y
IFDIAL 6 - - - Y -
IFDIALN 7 IFDILN - - Y -
IFDISP 60 - - - - Y
IFDREC 19 - - - - Y
IFDSET 21 - - - - Y
IFDTHRD 42 IFDTRD - - - Y
IFDVAL 32 - - - - Y
IFEFCC 139 - - - - Y
IFENQ 39 - - - - Y
IFENQL 40 - - - - -
IFEPRM 25 - - - - Y
IFERLC 138 - - - - Y
IFERR 28 - - - - Y
IFFAC 126 - IFFACC / 127 IFFACE / 128 - Y
IFFDV 74 - IFFDVC / 75 IFFDVE / 76 - Y
IFFILE 22 - - - - Y
IFFIND 13 IFFD IFFINDC / 46,
(alias) IFFDC
IFFINDE / 47,
(alias) IFFDE
- Y
IFFLS 61 - - - - Y
IFFLUSH 45 IFFLSH - - - Y
IFFNDX 56 IFFDX IFFNDXC / 57,
(alias) IFFDXC
IFFNDXE / 58,
(alias) IFFDXE
- Y
IFFNSH 3 - - - Y Y
IFFRN 118 - IFFRNC / 119 IFFRNE / 120 - Y
IFFTCH 98 - IFFTCHC / 99,
(alias) IFFCHC
IFFTCHE / 100,
(alias) IFFCHE
- Y
IFFWOL 87 IFFWO IFFWOLC / 88,
(alias) IFFWOC
IFFWOLE / 89,
(alias) IFFWOE
- Y
IFGERR 29 - - - - Y
IFGET 15 - IFGETC / 48 IFGETE / 49 - -
IFGETV 77 - IFGTVC / 78 IFGTVE / 79 - -
IFGETX 36 - None; IFGETC can be used IFGETXE / 50,
(alias) IFGTXE
- -
IFHNGUP 8 IFHNGP - - Y -
IFINIT 23 - - - - Y
IFLIST 17 - - - - -
IFLOG - - - - - Y
IFMORE 16 - IFMOREC / 51,
(alias) IFMREC
IFMOREE / 52,
(alias) IFMREE
- -
IFMOREX 37 IFMREX None; IFMOREC can be used IFMORXE / 53,
(alias) IFMRXE
- -
IFNFLD 63 - - - - Y
IFOCC 122 - IFOCCC / 123 IFOCCE / 124 - Y
IFOCUR 95 - IFOCURC / 106,
(alias) IFOCRC
IFOCURE / 107,
(alias) IFOCRE
- Y
IFOPEN 11 - - - - Y
IFOPENX 35 IFOPNX - - - Y
IFPOINT 44 IFPNT - - - -
IFPROL 33 - - - - Y
IFPROLS 109 IFPRLS - - - Y
IFPUT 18 - IFPUTC / 54 IFPUTE / 55 - -
IFREAD 9 - - - Y -
IFRELA 104 - - - - Y
IFRELR 103 - - - - Y
IFRFLD 59 - - - - Y
IFRNUM 121 - - - - Y
IFRPRM 27 - - - - Y
IFRRFL 34 - - - - Y
IFRRFLS 110 IFRFLS - - - Y
IFSETUP 86 IFSETP - - Y -
IFSKEY 83 - IFSKYC / 84 IFSKYE / 85 - Y
IFSORT 68 - IFSRTC / 69 IFSRTE / 70 - Y
IFSPRM 26 - - - - Y
IFSRTV 80 - IFSTVC / 81 IFSTVE / 82 - Y
IFSTHRD 2 IFSTRD - - - Y
IFSTOR 112 - IFSTRC / 113 IFSTRE / 114 - Y
IFSTRT
(IFAM1)
- - - - - Y
IFSTRT
(IFAM2/IFAM4)
1 - - - - Y
IFSTRTN
(IFAM2)
4 IFSTRN - - - Y
IFUPDT 115 - IFUPDTC / 116,
(alias) IFUPDC
IFUPDTE / 117,
(alias) IFUPDE
- Y
IFUTBL 64 - - - - Y
IFWRITE 10 IFWRIT - - Y -

See also