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

827 lines
39 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Qualifier Definition (QUAL)</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="QUAL.Top_Of_Page"></a>
<h2>Qualifier Definition (QUAL)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"></td>
<td valign="top" align="right">
<a href="#QUAL.PARAMETERS.TABLE">Parameters</a><br>
<a href="#QUAL.COMMAND.EXAMPLES">Examples</a><br>
<a href="#QUAL.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="QUAL"></a>
<p>The Qualifier (QUAL) command definition statement describes one part of a qualified name. If a name is the allowable value of a parameter or list item defined in a PARM or ELEM statement, it can be changed to a qualified name by using a QUAL statement for each qualifier used to qualify the name.
</p>
<p>The order in which the QUAL statements are entered into the source file determines the positional order in which the qualifiers must be specified and passed to the validity checker and the command processing program. The first qualification of a qualified name must be either a simple name, a generic name, or a defined special value.
</p>
<p>The QUAL statement (or only the <i>first</i> QUAL statement if there are more than one) <i>must</i> have a statement label that matches the statement label value that must be specified in a PARM or ELEM statement for which the qualifier is being defined. The qualifiers for the parameter or list item are then entered on the command in the form: value3/value2/value1, where values 1 through 3 are qualifiers that are each described by a QUAL statement. The values are passed to the command processing program in the same order, with the periods removed, and with each value padded to its maximum length.
</p>
<p>
<b>Note: </b>The QUAL statement contains certain parameters and predefined values that can be used only when IBM-supplied command processing programs are called by the command being defined. Because of limitations in some high-level languages, these values may not be useful in the definition statements of user-defined commands. These parameters and values are identified by the phrase (<i>For IBM-supplied commands)</i> that immediately follows the parameter keyword (if the entire parameter is for IBM-supplied commands only) or the predefined value to which it applies.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="QUAL.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"><a href="#QUAL.TYPE"><b>TYPE</b></a></td>
<td valign="top">Type of value</td>
<td valign="top">*NAME, *GENERIC, *CHAR, *INT2, *INT4, *SNAME, *CNAME, *UINT2, *UINT4, *CNAME</td>
<td valign="top">Required, Positional 1</td>
</tr>
<tr>
<td valign="top" rowspan="2"><a href="#QUAL.LEN"><b>LEN</b></a></td>
<td valign="top">Length specification</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="2">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top">Element 1: Value length</td>
<td valign="top">
<i>Integer</i></td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.CONSTANT"><b>CONSTANT</b></a></td>
<td valign="top">Constant value</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.RSTD"><b>RSTD</b></a></td>
<td valign="top">Restricted values</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.DFT"><b>DFT</b></a></td>
<td valign="top">Default value</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.VALUES"><b>VALUES</b></a></td>
<td valign="top">Valid values</td>
<td valign="top">Values (up to 300 repetitions): <i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#QUAL.REL"><b>REL</b></a></td>
<td valign="top">Relational expression</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Relational operator</td>
<td valign="top">
*GT, *EQ, *GE, *NL, *LT, *NE, *LE, *NG</td>
</tr>
<tr>
<td valign="top">Element 2: Value</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#QUAL.RANGE"><b>RANGE</b></a></td>
<td valign="top">Range of values</td>
<td valign="top"><i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Lower value</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top">Element 2: Upper value</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#QUAL.SPCVAL"><b>SPCVAL</b></a></td>
<td valign="top">Special values</td>
<td valign="top">Values (up to 300 repetitions): <i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: From value</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top">Element 2: To replacement value</td>
<td valign="top">
<i>Character value</i></td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.MIN"><b>MIN</b></a></td>
<td valign="top">Minimum values required</td>
<td valign="top"><b><u>0</u></b>, 1</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.ALWUNPRT"><b>ALWUNPRT</b></a></td>
<td valign="top">Allow unprintable characters</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.ALWVAR"><b>ALWVAR</b></a></td>
<td valign="top">Allow variable names</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.FULL"><b>FULL</b></a></td>
<td valign="top">Full field required</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.EXPR"><b>EXPR</b></a></td>
<td valign="top">Value an expression</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#QUAL.VARY"><b>VARY</b></a></td>
<td valign="top">Varying length</td>
<td valign="top">Single values: <b><u>*NO</u></b><br>Other values: <i>Element list</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Element 1: Return length value</td>
<td valign="top">
*YES</td>
</tr>
<tr>
<td valign="top">Element 2: Value length</td>
<td valign="top">
<b><u>*INT2</u></b>, *INT4</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.PASSATR"><b>PASSATR</b></a></td>
<td valign="top">Pass attribute byte</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.DSPINPUT"><b>DSPINPUT</b></a></td>
<td valign="top">Display input</td>
<td valign="top"><b><u>*YES</u></b>, *PROMPT, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.CHOICE"><b>CHOICE</b></a></td>
<td valign="top">Choice text</td>
<td valign="top"><i>Character value</i>, <b><u>*VALUES</u></b>, *NONE, *PGM</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#QUAL.CHOICEPGM"><b>CHOICEPGM</b></a></td>
<td valign="top">Choice program</td>
<td valign="top">Single values: <b><u>*NONE</u></b><br>Other values: <i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Choice program</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="#QUAL.INLPMTLEN"><b>INLPMTLEN</b></a></td>
<td valign="top">Initial prompt length</td>
<td valign="top"><b><u>*CALC</u></b>, *PWD, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 17, 25, 32, 50, 80, 132, 256, 512</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#QUAL.PROMPT"><b>PROMPT</b></a></td>
<td valign="top">Prompt text or message ID</td>
<td valign="top"><i>Character value</i>, <b><u>*NONE</u></b></td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="QUAL.TYPE"></a>
<h3>Type of value (TYPE)</h3>
<p>Specifies the type of qualifier used to qualify a parameter name or list element name. The qualifier can be a name or generic name, a quoted or not quoted character string, or an integer. Enter one of the following options to specify the type of qualifier. The first qualifier for any qualified name must have a type of name (*NAME) or generic name (*GENERIC).
</p>
<dl>
<dt><b>*NAME</b></dt>
<dd>The qualifier is a character string that represents a name. The maximum length of the name is 256 characters. The first character must be alphabetic or one of the special characters, $, @, or #. The remaining characters can be alphanumeric, a period, an underscore, or one of special characters, $, @, or #. The name can also be a string of characters starting and ending with double quotation marks (") or enclosed in parentheses. If a special value is used (as in *LIBL or *NONE), it should be specified on the <b>Special values (SPCVAL)</b> parameter.
</dd>
<dt><b>*SNAME</b></dt>
<dd>The qualifier is a character string that represents a name. The maximum length of the name is 256 characters. The first character must be alphabetic or one of the special characters $, @, or #. The remaining characters can be alphanumeric, an underscore, or one of the special characters $, @, or #. The character string can be enclosed in parentheses. If a special value is used (as in *LIBL or *NONE), it must be specified on the <b>Special values (SPCVAL)</b> parameter.
</dd>
<dt><b>*CNAME</b></dt>
<dd>The qualifier is a character string that represents a name. The maximum length of the name is 256 characters. The first character must be alphabetic or one of the special characters, $, @, or #. The remaining characters can be alphanumeric or one of special characters, $, @, or #. The character string can be enclosed in parentheses. If a special value is used (as in *LIBL or *NONE), it must be specified on the <b>Special values (SPCVAL)</b> parameter.
</dd>
<dt><b>*GENERIC</b></dt>
<dd>The qualifier is a character string that represents a generic name. A generic name contains a maximum of 255 characters followed by an asterisk (*); the name identifies a group of objects whose names all begin with the characters preceding the asterisk (*). If an asterisk is not included, the system assumes that the generic name is a complete object name.
</dd>
<dt><b>*CHAR</b></dt>
<dd>The qualifier is a character string that can (optionally) be enclosed in apostrophes. If the character string contains any special characters (not including an asterisk (*)), it <i>must</i> be enclosed in apostrophes. The maximum length of the character string is 5000 characters.
</dd>
<dt><b>*INT2</b></dt>
<dd>The qualifier is an integer that is passed as a 2-byte signed binary number.
</dd>
<dt><b>*INT4</b></dt>
<dd>The qualifier is an integer that is passed as a 4-byte signed binary number.
</dd>
<dt><b>*UINT2</b></dt>
<dd>The qualifier is an integer that is passed as a 2-byte unsigned binary number.
</dd>
<dt><b>*UINT4</b></dt>
<dd>The qualifier is an integer that is passed as a 4-byte unsigned binary number.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.LEN"></a>
<h3>Length specification (LEN)</h3>
<p>Specifies the length of the qualifier, if *NAME, *GENERIC, or *CHAR is specified for the <b>Type of value (TYPE)</b> parameter.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.CONSTANT"></a>
<h3>Constant value (CONSTANT)</h3>
<p>Specifies that a value is passed to the command processing program as a constant for the qualifier when the command being defined is processed; the qualifier is not to appear externally on the command. If specified, the value must satisfy the requirements specified by the following parameters:
</p>
<ul>
<li>Type of value (TYPE parameter)
</li>
<li>Length specification (LEN parameter)
</li>
<li>Valid values (VALUES parameter)
</li>
<li>Relational expression (REL parameter)
</li>
<li>Range of values (RANGE parameter)
</li>
<li>Special values (SPCVAL parameter)
</li>
</ul>
<p>If a character constant is specified in this parameter, it can be no longer than 32 characters.
</p>
<p>If a constant is specified in this QUAL statement and other QUAL statements immediately follow it, they must also be defined as constants, unless a label precedes one of them. A label indicates the beginning of a new group of QUAL statements, which can be defined differently.
</p>
<p>Also, if a constant is specified for the qualifier being defined, no prompt text can be specified for the <b>Prompt text or message ID (PROMPT)</b> parameter of this QUAL statement. However, any other qualifiers or groups of qualifiers are still prompted, and their values are still passed to the command processing program as a qualified name.
</p>
<p>This parameter is not valid if the <b>Default value (DFT)</b> parameter is specified or if *YES is specified for the <b>Value an expression (EXPR)</b> parameter.
</p>
<p>Variables cannot be coded for this parameter.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.RSTD"></a>
<h3>Restricted values (RSTD)</h3>
<p>Specifies whether the value entered for the qualifier is restricted to only one of the values given in the <b>Valid values (VALUES)</b> parameter or the <b>Single values (SNGVAL)</b> parameter, or whether any value can be used that satisfies the requirements specified by the following parameters:
</p>
<ul>
<li>Type of value (TYPE parameter)
</li>
<li>Length specification (LEN parameter)
</li>
<li>Relational expression (REL parameter)
</li>
<li>Range of values (RANGE parameter)
</li>
<li>Special values (SPCVAL parameter)
</li>
</ul>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>The value entered for the qualifier defined by this QUAL statement can be anything that satisfies the requirements specified by the following parameters:
<ul>
<li>Type of value (TYPE parameter)
</li>
<li>Length specification (LEN parameter)
</li>
<li>Relational expression (REL parameter)
</li>
<li>Range of values (RANGE parameter)
</li>
<li>Special values (SPCVAL parameter)
</li>
</ul>
</dd>
<dt><b>*YES</b></dt>
<dd>The value entered for the qualifier in this QUAL statement is restricted to one of the values in the <b>Valid values (VALUES)</b> parameter, or to one of the from-values in the <b>Special values (SPCVAL)</b> parameter.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.DFT"></a>
<h3>Default value (DFT)</h3>
<p>Specifies the default value assigned to the qualifier if a value is not specified by the user. The default value must satisfy one of the following:
</p>
<ul>
<li>It must match the qualifier requirements specified by the following parameters:
<ul>
<li>Type of value (TYPE parameter)
</li>
<li>Length specification (LEN parameter)
</li>
<li>Relational expression (REL parameter)
</li>
<li>Range of values (RANGE parameter)
</li>
</ul>
</li>
<li>It must be one of the from-values in the <b>Special values (SPCVAL)</b> parameter.
</li>
<li>If *YES is specified for the <b>Restricted values (RSTD)</b> parameter, it must be in the list of values in the <b>Valid values (VALUES)</b> parameter or in the list of from-values in the <b>Special values (SPCVAL)</b> parameter.
</li>
<li>If the default is a character constant, it can have no more than 32 characters.
</li>
</ul>
<p>This parameter is valid only if the <b>Minimum values required (MIN)</b> parameter is 0, which means the qualifier defined by this QUAL statement for this list is optional. A default is not meaningful on this QUAL statement if it is the first one (defining the first part) for a qualified name and if a default is specified on the PARM or ELEM statement that this QUAL statement further defines. If this parameter is not specified, it has a default of its own: the default is blank if *CHAR, *NAME, *SNAME, *CNAME, or *GENERIC is specified for the <b>Type of value (TYPE)</b> parameter. The default is zero (0) if *INT2, *INT4, *UINT2 or *UINT4 is specified for the <b>Type of value (TYPE)</b> parameter. An <i>assumed</i> default value is not displayed by the command prompt; a blank input field is shown instead. If a default is specified in this parameter, it is displayed by the prompt exactly as specified.
</p>
<p>The DFT parameter is not valid if the <b>Constant value (CONSTANT)</b> parameter is specified.
</p>
<dl>
<dt><b><i>value</i></b></dt>
<dd>Specify the default value that meets the specified requirements or that is one of the values specified in the <b>Valid values (VALUES)</b> parameter or the <b>Special values (SPCVAL)</b> parameter.
<p>Variables cannot be coded for this value.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.VALUES"></a>
<h3>Valid values (VALUES)</h3>
<p>Specifies a list of up to 300 constants (fixed values) from which one constant can be entered as the value of the qualifier. This parameter is valid only if all of the following are true:
</p>
<ul>
<li>*YES is specified for the <b>Restricted values (RSTD)</b> parameter.
</li>
<li>Both the <b>Range of values (RANGE)</b> parameter, and the <b>Relational expression (REL)</b> parameter are <i>not</i> specified,
</li>
<li>The constant matches the attributes specified by the <b>Type of value (TYPE)</b> parameter, and the <b>Length specification (LEN)</b> parameter in this QUAL statement.
</li>
</ul>
<p>Character constants specified in this parameter can be no longer than 32 characters. Specify the constants (not more than 300) that can be entered as the value of the qualifier.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.REL"></a>
<h3>Relational expression (REL)</h3>
<p>Specifies the relationship between the qualifier value and the value of another parameter or constant. To specify the relationship, enter one of the following relational operators followed by a constant or the value of another parameter.
</p>
<dl>
<dt><b>*LT</b></dt>
<dd>less than
</dd>
<dt><b>*LE</b></dt>
<dd>less than or equal to
</dd>
<dt><b>*EQ</b></dt>
<dd>equal to
</dd>
<dt><b>*GE</b></dt>
<dd>greater than or equal to
</dd>
<dt><b>*GT</b></dt>
<dd>greater than
</dd>
<dt><b>*NL</b></dt>
<dd>not less than
</dd>
<dt><b>*NE</b></dt>
<dd>not equal to
</dd>
<dt><b>*NG</b></dt>
<dd>not greater than
</dd>
</dl>
<p>This parameter is not valid if either the <b>Valid values (VALUES)</b> parameter or the <b>Range of values (RANGE)</b> parameter is specified. If *CHAR (character type) is specified by <b>Type of value (TYPE)</b> parameter, the EBCDIC value of the character string is used as an unsigned integer in the comparison. If a character constant is specified in this parameter, it can be no longer than 32 characters.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.RANGE"></a>
<h3>Range of values (RANGE)</h3>
<p>Specifies the range, or limits, for the value of the qualifier. The qualifier value must be greater than or equal to the lower limit value specified, and it must be less than or equal to the upper limit value specified. For nonnumeric data types, such as *CHAR, the range of values and the data specified is right-justified and padded on the left with blanks. A numeric range should not be used to define an interval for nonnumeric data unless leading zeros are specified or the data is only 1 character in length. This parameter is not valid if either the <b>Valid values (VALUES)</b> parameter, or the <b>Relational expression (REL)</b> parameter is specified. Character constants specified in this parameter can be no longer than 32 characters.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.SPCVAL"></a>
<h3>Special values (SPCVAL)</h3>
<p>Specifies a list of up to 300 entries that define special values that can be entered on the parameter named in the <b>Keyword (KWD)</b> parameter on the PARM statement. Each entry specifies a character string (a from-value) that can be entered even though it may not meet all validity checking requirements. If the entered character string matches the from-value of one of the entries, and the to-value is specified, the string is replaced with the to-value and is then passed to the command processing program without further checking. If the to-value is omitted, the from-value is passed to the command processing program. The from-value is a character string, but the to-value can be anything that is passable. If a CL variable is used for the from-value, its type must be *CHAR. However, the first qualifier can only have special to-values with the from-values that are a name, a generic name, or an asterisk (*) followed by a name such as *ALL.
</p>
<p>Each to-value must be passable to the command processing program. The to-value must be no longer than is specified on the <b>Length specification (LEN)</b> parameter and, if *INT2, *INT4, *UINT2 or *UINT4 is specified for the <b>Type of value (TYPE)</b> parameter, the type of the to-value must be the same. If a character type (such as *CHAR or *NAME) is specified for the <b>Type of value (TYPE)</b> parameter, the to-value must be a character string. Character constants specified in this parameter can be no longer than 32 characters. If a to-value is not specified, the from-value must be passable.
</p>
<p>If a to-value of *CURLIB is specified, the name of the current library is passed to the command processing program rather than the value *CURLIB. If the from-value is *CURLIB and no to-value is specified, or if the to-value is *CURLIB and it is enclosed in apostrophes, the value *CURLIB is passed to the command processing program.
</p>
<p>Variables cannot be coded for this value.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.MIN"></a>
<h3>Minimum values required (MIN)</h3>
<p>Specifies whether the qualifier being defined in this QUAL statement is required or optional. If this parameter is not specified, 0 is assumed, which means the qualifier is optional. If a required qualified name is needed, 1 must be specified for this parameter on both the first QUAL and on the PARM or ELEM that refers to it.
</p>
<dl>
<dt><b><u>0</u></b></dt>
<dd>The qualifier is optional on the name being qualified.
</dd>
<dt><b>1</b></dt>
<dd>The qualifier is required on the name being qualified; it must be entered.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.ALWUNPRT"></a>
<h3>Allow unprintable characters (ALWUNPRT)</h3>
<p>Specifies whether this QUAL statement should accept the hexadecimal characters above X'FF' or those in the range of X'00' to X'3F'. This parameter is valid only if *CHAR or *X is specified for the <b>Type of value (TYPE)</b> parameter,
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>All characters can be sent to the display or printer.
</dd>
<dt><b>*NO</b></dt>
<dd>Unprintable characters cannot be passed to the command processing program.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.ALWVAR"></a>
<h3>Allow variable names (ALWVAR)</h3>
<p>Specifies whether variable names are allowed for the qualifier. *NO is not allowed if *VARNAME, *ZEROELEM, *NULL, or a statement label is specified for the <b>Type of value (TYPE)</b> parameter,
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>Variable names can be used for the qualifier.
</dd>
<dt><b>*NO</b></dt>
<dd>Variable names cannot be used for the qualifier.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.FULL"></a>
<h3>Full field required (FULL)</h3>
<p>Specifies whether the number of characters in the qualifier value must be exactly the same as the number specified in the <b>Length specification (LEN)</b> parameter (if specified) or its default length (if LEN is not specified).
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>The number of characters in the qualifier value can be less than that specified by the. <b>Length specification (LEN)</b> parameter.
</dd>
<dt><b>*YES</b></dt>
<dd>The number of characters in the qualifier value must equal the number specified by the <b>Length specification (LEN)</b> parameter or the default length for that type. The exact length is valid only if *CHAR, *NAME, or *GENERIC is specified for the <b>Type of value (TYPE)</b> parameter.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.EXPR"></a>
<h3>Value an expression (EXPR)</h3>
<p>Specifies whether the qualifier can accept an expression containing a character concatenation.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>The qualifier value cannot be a concatenation expression.
</dd>
<dt><b>*YES</b></dt>
<dd>The qualifier value can be a concatenation expression.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.VARY"></a>
<h3>Varying length (VARY)</h3>
<p>Specifies whether the qualifier value that is passed to the command processing program is preceded by a length value that indicates the number of characters entered for the qualifier's value.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>The qualifier value is not preceded by a length value.
</dd>
</dl>
<p><b>Element 1: Return length value</b>
</p>
<dl>
<dt><b>*YES</b></dt>
<dd>The qualifier value passed to the command processing program is preceded by a binary length field that indicates the number of characters actually specified for the qualifier. *YES is valid only if *CHAR, *NAME, *SNAME, *CNAME, or *GENERIC is specified for the <b>Type of value (TYPE)</b> parameter. *YES must be specified if PASSATR(*YES) and RTNVAL(*YES) are specified.
<p>
<b>Note: </b>The length value is the actual number of characters entered for the command parameter with trailing blanks removed. The length value passed may be different than the defined parameter length or the declared variable length. The length of the field containing the character string data is determined by the defined length for the parameter or the declared LEN for CL Program variables. The length value defines how many characters in the character string data field were actually entered for the command parameter.
</p>
</dd>
</dl>
<p><b>Element 2: Value length</b>
</p>
<dl>
<dt><b><u>*INT2</u></b></dt>
<dd>The qualifier value is an integer passed as a 2-byte signed binary number.
</dd>
<dt><b>*INT4</b></dt>
<dd>The qualifier value is an integer passed as a 4-byte signed binary number.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.PASSATR"></a>
<h3>Pass attribute byte (PASSATR)</h3>
<p>Specifies whether an attribute byte is to be passed to the command processing program with the qualifier. The attribute byte precedes the qualifier data.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>No attribute byte is passed with the qualifier.
</dd>
<dt><b>*YES</b></dt>
<dd>An attribute byte is passed with the qualifier.
<p>The attribute byte has two fields:
</p>
<ol>
<li>The leftmost bit of the attribute byte indicates whether or not a value was specified. If the leftmost bit is '0'B, the value passed to the command processing program is a default value and was not specified in the command string. If the leftmost bit is '1'B, the value passed to the command processing program was specified in the command string.
</li>
<li>The remaining seven bits describe the value passed to the command processing program when *CHAR is specified for the <b>Type of value (TYPE)</b> parameter.
<p>
<pre>
Attribute Description
---------- --------------------------------------
'0000010'B Meets *NAME rules, like <b>A_B</b>
'0000100'B Meets *GENERIC rules, like <b>AB*</b>
'1000101'B Quoted character string, like <b>'A B'</b>
'0000101'B Unquoted character string, like <b>5A</b>
'1001000'B Logical constant, <b>'0'</b> or <b>'1'</b>
'0001100'B Hexadecimal value, like <b>X'C1C2'</b>
'0100001'B Unsigned numeric value, like <b>5</b>
'0101001'B Unsigned numeric with decimal point,
like <b>5.2</b>
'0110001'B Signed numeric value, like <b>-5</b>
'0111001'B Signed numeric with decimal point,
like <b>-5.2</b>
</pre>
</p>
</li>
</ol>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.DSPINPUT"></a>
<h3>Display input (DSPINPUT)</h3>
<p>Identifies whether the keyword value is to be shown in the job log or in a prompt display.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>Indicates that the parameter value is shown on the prompt display and in the job log.
</dd>
<dt><b>*PROMPT</b></dt>
<dd>The response *PROMPT indicates that the parameter value is shown on the prompt display but not in the job log.
</dd>
<dt><b>*NO</b></dt>
<dd>Indicates that the parameter value is not shown on either the prompt display or in the job log.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.CHOICE"></a>
<h3>Choice text (CHOICE)</h3>
<p>Specifies the choices text that is displayed to the right of the input field on the prompt screen. Up to 30 characters of text can be displayed.
</p>
<dl>
<dt><b><u>*VALUES</u></b></dt>
<dd>The choices text is generated based on the values specified for the TYPE, RSTD, RANGE, SNGVAL, SPCVAL, and VALUES parameters. If constants are specified for the RANGE parameter, the choices text begins with the minimum value and the maximum value separated by a hyphen. If RANGE is not specified with constants as the minimum and maximum values, and RSTD(*NO) is specified, the choices text begins with a short description of the parameter type based on the value specified for the TYPE parameter. Values specified for the SNGVAL parameter are added to the choices text, in the order the values are defined in the command definition source and separated by a comma and a blank. The last entries added to the choices text are values specified for the SPCVAL or VALUES parameter, in the order the values are defined in the command definition source and separated by a comma and a blank. If there are too many values to fit in 30 characters, the last value is followed by three periods.
<p>The following are examples of possible choices text generated by CHOICE(*VALUES):
</p>
<ul>
<li>If TYPE(*DEC) and RANGE(1.0 999.9) and SPCVAL((*NOMAX -1)) are specified, the choices text will be:
<p>
<pre>
1.0-999.9, *NOMAX
</pre>
</p>
</li>
<li>If TYPE(*NAME) and RSTD(*NO) and SNGVAL(*ALL) and SPCVAL(*LIBL *CURLIB) are specified, the choices text will be:
<p>
<pre>
Name, *ALL, *LIBL, *CURLIB
</pre>
</p>
</li>
<li>If RSTD(*YES) and SNGVAL(*ALL) and SPCVAL(*ALRTBL *BNDDIR *CHTFMT *CLD *CLS *CMD) are specified, the choices text will be:
<p>
<pre>
*ALL, *ALRTBL, *BNDDIR...
</pre>
</p>
</li>
</ul>
</dd>
<dt><b>*NONE</b></dt>
<dd>No values are displayed.
</dd>
<dt><b>*PGM</b></dt>
<dd>A program that is called determines the values that are displayed. The program that is called is identified in <b>Choice program (CHOICEPGM)</b> parameter of the PARM statement.
</dd>
<dt><b><i>message-identifier</i></b></dt>
<dd>Specify the message ID of the message used to retrieve the message containing the text for the possible values field. The message file specified on the <b>Message file for prompt text (PMTFILE)</b> parameter of the Create Command (CRTCMD) command is used to find the message.
</dd>
<dt><b><i>'choices-text'</i></b></dt>
<dd>Specify no more than 30 characters, enclosed in apostrophes.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.CHOICEPGM"></a>
<h3>Choice program (CHOICEPGM)</h3>
<p>Specifies the program to be called during command prompting to fill in the possible choices text and the permissible values. This parameter must be specified if *PGM is specified on the <b>Choice text (CHOICE)</b> parameter and may not be specified otherwise.
</p>
<p><b>Single values</b>
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No program is identified to fill in the possible choices text and permissible values.
</dd>
</dl>
<p><b>Qualifier 1: Choice program</b>
</p>
<dl>
<dt><b><i>name</i></b></dt>
<dd>Specifies the name of the program to be called during prompting to fill in the possible choices text or permissible values. If an exception occurs when the program is called, no possible choices text is left blank, and the list of permissible values is taken from the command.
</dd>
</dl>
<p><b>Qualifier 2: Library</b>
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>All libraries in the library list for the current thread are searched until the first match is found.
</dd>
</dl>
<dl>
<dt><b>*CURLIB</b></dt>
<dd>The current library for the job is used to locate the program. If no library is specified as the current library for the job, QGPL is used.
</dd>
<dt><b><i>name</i></b></dt>
<dd>Specify the name of the library where the program is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.INLPMTLEN"></a>
<h3>Initial prompt length (INLPMTLEN)</h3>
<p>Specifies the length of the input field initially displayed for the qualifier when the command is prompted. The user can extend the field to a maximum length of 512 bytes by entering an ampersand (&amp;) in the first position of the field, followed by a blank. INLPMTLEN is valid only if TYPE is specified as *NAME, *SNAME, *CNAME, *GENERIC, or *CHAR. If FULL(*YES), RSTD(*YES), or CONSTANT are specified, INLPMTLEN(*CALC) must be specified or defaulted.
</p>
<dl>
<dt><b><u>*CALC</u></b></dt>
<dd>The prompter will determine the length of the prompt field based on the type and length of the parameter.
</dd>
<dt><b>*PWD</b></dt>
<dd>If the current value of system value QPWDLVL is '0' or '1', the prompt field will be 10 bytes long. Otherwise, the length of the prompt field will be determined by the length of the parameter. INLPMTLEN(*PWD) is valid only if TYPE is specified as *CHAR, *NAME, *SNAME, or *CNAME.
</dd>
<dt><b><i>initial-prompt-length</i></b></dt>
<dd>Specify the initial length in bytes. Valid values are 1-12, 17, 25, 32, 50, 80, 132, 256, and 512.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="QUAL.PROMPT"></a>
<h3>Prompt text or message ID (PROMPT)</h3>
<p>Specifies the prompt text, if any, that is used for the qualifier (defined in this QUAL statement). This parameter is not allowed for the first qualifier or for a qualifier for which the <b>Constant value (CONSTANT)</b> parameter is specified. The prompt text for the first qualifier comes from the PROMPT parameter of the PARM or ELEM statement pointing to the qualifier. The prompt text gives a short description of the qualifier which appears next to the qualifier input field when the command is prompted.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>No prompt text is shown for the qualifier defined by this QUAL statement. This qualifier is still prompted by an input field, but no text is shown with it.
</dd>
<dt><b><i>message-identifier</i></b></dt>
<dd>Specify the message identifier that specifies the message containing the prompt text of up to 30 characters that is shown when the program is prompting the qualifier. If a message having the specified identifier cannot be found in the message file specified in the <b>Message file for prompt text (PMTFILE)</b> parameter of the Create Command (CRTCMD) command, the message identifier itself is used as the prompt text.
</dd>
<dt><b><i>'prompt-text'</i></b></dt>
<dd>Specify the prompt text that is shown when the program is prompting the qualifier. The text must be a character string of no more than 30 characters, enclosed in apostrophes.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="QUAL.COMMAND.EXAMPLES">Examples</a> </h3>
<p><b>Example 1: Qualified Job Name as One Element</b>
</p>
<p>
<pre>
PARM KWD(SPLFILE) TYPE(L1) DFT(*) SNGVAL(*)
L1: ELEM TYPE(*NAME) MIN(1) /* For file name */
ELEM TYPE(Q1)
Q1: QUAL TYPE(*NAME) MIN(1) /* For job name */
QUAL TYPE(*NAME) /* For user name */
QUAL TYPE(*CHAR) LEN(6) /* For job number */
</pre>
</p>
<p>The SPLFILE parameter is optional and, if not specified, defaults to an asterisk (*). Otherwise, the value consists of a two-element list. The first element is a file name and it is required. The second element is a qualified job name. The first qualifier is required; the last two qualifiers are optional. The following are some examples of valid SPLFILE parameter syntax:
</p>
<ul>
<li>SPLFILE(*)
</li>
<li>SPLFILE(MYSPLFILE MYJOB)
</li>
<li>SPLFILE(MYSPLFILE 123456/USERA/MYJOB)
</li>
</ul>
<p><b>Example 2: List of Qualified Object Names as One Element</b>
</p>
<p>
<pre>
PARM KWD(DTAMBRS) TYPE(L1) DFT(*ALL) MAX(32) +
SNGVAL(*ALL)
L1: ELEM TYPE(Q1) MIN(1)
ELEM TYPE(*NAME) MIN(0) MAX(32) SPCVAL(*NONE) +
DFT(*NONE)
Q1: QUAL TYPE(*NAME) MIN(1)
QUAL TYPE(*NAME) DFT(*CURRENT) SPCVAL(*CURRENT)
</pre>
</p>
<p>The parameter named DTAMBRS is optional and, if not specified, defaults to *ALL. Otherwise, the value consists of a list, each element of which is itself a list. Each sublist consists of a qualified file name optionally followed by one or more member names. If no member name is specified, *NONE is taken as the default. If no library qualifier is specified for the file, *CURRENT is taken as the default. Each sublist can contain one file name and up to 32 member names. Up to 32 such sublists can appear as the value of DTAMBRS. The following are some examples of valid DTAMBRS parameter syntax:
</p>
<ul>
<li>DTAMBRS(*ALL)
</li>
<li>DTAMBRS((PFILE1 *NONE))
</li>
<li>DTAMBRS((LIB1/PFILE1 (MBR1 MBR2)))
</li>
<li>DTAMBRS((*CURRENT/PFILE1 (MBR1 MBR2 MBR3)) (LIB2/PFILE2 (MBRA MBRB)))
</li>
</ul>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="QUAL.ERROR.MESSAGES">Error messages</a> </h3>
<p>None
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#QUAL.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>