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

513 lines
21 KiB
HTML
Raw Permalink Normal View History

2024-04-02 14:02:31 +00:00
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Create S/36 Message File (CRTS36MSGF)</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="CRTS36MSGF.Top_Of_Page"></a>
<h2>Create S/36 Message File (CRTS36MSGF)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>All environments (*ALL)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#CRTS36MSGF.PARAMETERS.TABLE">Parameters</a><br>
<a href="#CRTS36MSGF.COMMAND.EXAMPLES">Examples</a><br>
<a href="#CRTS36MSGF.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="CRTS36MSGF"></a>
<p>The Create System/36 Message File (CRTS36MSGF) command creates a message file from your System/36 message source member. This enables you to convert your System/36 message source to the message source on this system.
</p>
<p>System/36 message source consists of 3 types of statements:
</p>
<ol>
<li>The message control statement must be the first record in the source. Only one control statement is allowed. The control statement has the following syntax:
<p>
<pre>
name&lt;,level&gt; &lt;comment&gt;
</pre>
</p>
<p>where: <b>name</b> is the name of the message file being created or changed. The name must start in column 1 of the source record. Level must be a 1 or 2 or a blank, and is separated from the name by a comma. A level 1 indicates that the source is for message text (first-level messages); a level 2 indicates that the source is for online help information (second-level messages). If level is omitted or blank, a first level message is assumed. Anything after the first blank in the control statement is considered to be a comment and is ignored.
</p>
</li>
<li>Comment records that start with an asterisk (*) in column 1. All comment records are ignored.
</li>
<li>One or more message text statements may be defined. The message text statement has the following syntax:
<p>
<pre>
mmmm text
</pre>
</p>
<p>where: <b>mmmm</b> is the System/36 Message Identification Code (MIC) and must start in column 1 and consist of 4 digits (0-9). All 4 digits are required. The 7-character message identifier is created by adding the message prefix specified by the MSGPFX parameter in front of the MIC. Column 5 is ignored and should be left blank. Text is the text of the message being defined and starts in column 6. The message text statements must be arranged so that the MICs are not in descending order. If there is insufficient room to define the entire message in a single record, the MIC can be repeated in column 1 of the next record and the text can be continued starting in column 6.
</p>
<p>A first level message is restricted to a maximum of 75 characters, and a second level message is restricted to a maximum of 225 characters unless RESTRICT(*NO) is specified. Trailing blanks on the last record for each MIC are not counted. The record length used when processing the SRCMBR is the RCDLEN source attribute for that member. This attribute defaults to the source file record length, but can be set or changed when using the CHGS36SRCA, EDTS36SRCA, or RSTS36LIBM commands. The RCDLEN source attribute is the member's logical record length. If the RCDLEN source attribute is less than the record length of the source file, all characters after the logical record length are ignored. If any record contains any non-blank characters after the logical record length, a diagnostic message is issued as a warning.
</p>
</li>
</ol>
<p><b>Restriction</b>: Option 5 of the operating system must be installed to run this command. This command can be run either natively or in the System/36 environment.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="CRTS36MSGF.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="#CRTS36MSGF.SRCMBR"><b>SRCMBR</b></a></td>
<td valign="top">S/36 message source member</td>
<td valign="top"><i>Name</i></td>
<td valign="top">Required, Positional 1</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTS36MSGF.SRCFILE"><b>SRCFILE</b></a></td>
<td valign="top">S/36 source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top">Qualifier 1: S/36 source file</td>
<td valign="top"><i>Name</i>, <b><u>QS36SRC</u></b></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*LIBL</u></b>, *CURLIB</td>
</tr><tr>
<td valign="top"><a href="#CRTS36MSGF.MSGLIB"><b>MSGLIB</b></a></td>
<td valign="top">Message file library</td>
<td valign="top"><i>Name</i>, <b><u>*CURLIB</u></b></td>
<td valign="top">Optional, Positional 3</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.REPLACE"><b>REPLACE</b></a></td>
<td valign="top">Replace message file</td>
<td valign="top"><b><u>*NO</u></b>, *YES</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.MSGPFX"><b>MSGPFX</b></a></td>
<td valign="top">Message identifier prefix</td>
<td valign="top"><i>Name</i>, <b><u>USR</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.OPTION"><b>OPTION</b></a></td>
<td valign="top">Option</td>
<td valign="top"><b><u>*CREATE</u></b>, *ADD, *CHANGE</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.SUBST"><b>SUBST</b></a></td>
<td valign="top">Allow # substitution fields</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.RESTRICT"><b>RESTRICT</b></a></td>
<td valign="top">Enforce S/36 restrictions</td>
<td valign="top"><b><u>*YES</u></b>, *NO</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.AUT"><b>AUT</b></a></td>
<td valign="top">Authority</td>
<td valign="top"><i>Name</i>, *USE, *ALL, *CHANGE, *EXCLUDE, <b><u>*LIBCRTAUT</u></b></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#CRTS36MSGF.TOFILE"><b>TOFILE</b></a></td>
<td valign="top">To CL source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional</td>
</tr>
<tr>
<td valign="top">Qualifier 1: To CL source file</td>
<td valign="top"><i>Name</i>, <b><u>QCLSRC</u></b>, *NONE</td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, <b><u>*CURLIB</u></b></td>
</tr><tr>
<td valign="top"><a href="#CRTS36MSGF.TOMBR"><b>TOMBR</b></a></td>
<td valign="top">To CL source member</td>
<td valign="top"><i>Name</i>, <b><u>*NONE</u></b>, *SRCMBR</td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#CRTS36MSGF.HALT"><b>HALT</b></a></td>
<td valign="top">Issue msg if error occurs</td>
<td valign="top"><b><u>*YES</u></b>, *NO, *IGNORE</td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="CRTS36MSGF.SRCMBR"></a>
<h3>S/36 message source member (SRCMBR)</h3>
<p>Specifies the source member that is used to create the message file. The first record that is not a comment record in the source member specifies the name of the message file being created or changed. The first record that is not a comment record also specifies whether the text in this source member is for the first-level or second-level message text.
</p>
<p>This is a required parameter.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.SRCFILE"></a>
<h3>S/36 source file (SRCFILE)</h3>
<p>Specifies the source file that is used to create the message file.
</p>
<dl>
<dt><b><u>QS36SRC</u></b></dt>
<dd>The source file QS36SRC is used.
</dd>
<dt><b><i>file-name</i></b></dt>
<dd>Specify the name of the source file that contains the member specified on the <b>S/36 message source member (SRCMBR)</b> parameter.
</dd>
</dl>
<p>The possible library values are:
</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 file. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library where the source file is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.MSGLIB"></a>
<h3>Message file library (MSGLIB)</h3>
<p>Specifies the library that is used to store the message file being created.
</p>
<dl>
<dt><b><u>*CURLIB</u></b></dt>
<dd>The current library for the job is used to store the message file. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b>*SRCLIB</b></dt>
<dd>The source library is used to store the message file.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library where the created message file is stored.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.REPLACE"></a>
<h3>Replace message file (REPLACE)</h3>
<p>Specifies whether or not an existing message file is replaced. This parameter is ignored if OPTION(*CREATE) is not specified.
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>An existing message file is not replaced.
</dd>
<dt><b>*YES</b></dt>
<dd>An existing file is replaced by the one being created.
<p>
<b>Note: </b>The message file is not created if it has the same name and library as an existing program or display file.
</p>
<p>If any terminating errors are encountered, the existing message file is not replaced. If the message file already exists, the <b>Authority (AUT)</b> parameter is ignored and all of the authorities for the old message file are copied to the new message file that replaces it.
</p>
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.MSGPFX"></a>
<h3>Message identifier prefix (MSGPFX)</h3>
<p>Specifies the message prefix that is used to create messages. The default prefix of USR must be used if the message is used to build a menu.
</p>
<dl>
<dt><b><u>USR</u></b></dt>
<dd>The message prefix USR is used.
</dd>
<dt><b><i>message-prefix</i></b></dt>
<dd>Specify the three-character message prefix to use with message identifiers.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.OPTION"></a>
<h3>Option (OPTION)</h3>
<p>Specifies what to do with the message file that is specified in the source member.
</p>
<dl>
<dt><b><u>*CREATE</u></b></dt>
<dd>A message file is created with the specified name.
</dd>
<dt><b>*ADD</b></dt>
<dd>Messages are added to the specified message file.
</dd>
<dt><b>*UPDATE</b></dt>
<dd>Messages are changed in the specified message file. If a message does not exist, it is created and added to the message file.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.SUBST"></a>
<h3>Allow # substitution fields (SUBST)</h3>
<p>Specifies that System/36 text replacement fields are converted into the notation that represents text replacement fields in message file (*MSGF) objects. Although *YES is the default, not everyone uses text replacement fields and *NO is a way to make sure that a field is not converted by mistake. Replacement fields are represented by a pair of trailing ## symbols in the S/36 source.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>The replacement text fields are converted. A string of # symbols in the message text source is converted to a replacement text field only when the string occurs at the start or end of the message text, or when the string is preceded and followed by one of the following delimiter characters:
<dl>
<dt><b>' '</b></dt>
<dd>blank
</dd>
<dt><b>.</b></dt>
<dd>period
</dd>
<dt><b>&lt;</b></dt>
<dd>less than
</dd>
<dt><b>(</b></dt>
<dd>left parenthesis
</dd>
<dt><b>+</b></dt>
<dd>plus
</dd>
<dt><b>&amp;</b></dt>
<dd>ampersand
</dd>
<dt><b>*</b></dt>
<dd>asterisk
</dd>
<dt><b>)</b></dt>
<dd>right parenthesis
</dd>
<dt><b>;</b></dt>
<dd>semicolon
</dd>
<dt><b>-</b></dt>
<dd>minus
</dd>
<dt><b>,</b></dt>
<dd>comma
</dd>
<dt><b>&gt;</b></dt>
<dd>greater than
</dd>
<dt><b>?</b></dt>
<dd>question
</dd>
<dt><b>:</b></dt>
<dd>colon
</dd>
<dt><b>'</b></dt>
<dd>apostrophe
</dd>
<dt><b>=</b></dt>
<dd>equal
</dd>
<dt><b>"</b></dt>
<dd>double quote
</dd>
</dl>
</dd>
<dt><b>*NO</b></dt>
<dd>The replacement text fields are not converted.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.RESTRICT"></a>
<h3>Enforce S/36 restrictions (RESTRICT)</h3>
<p>Specifies whether System/36 restrictions on message text length are enforced.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>System/36 restrictions are enforced. Message text is limited to 75 characters. Online help for messages is limited to 225 characters.
</dd>
<dt><b>*NO</b></dt>
<dd>System/36 restrictions are not enforced.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.AUT"></a>
<h3>Authority (AUT)</h3>
<p>Specifies the authority you are giving to users who do not have specific authority to the object, who are not on the authorization list, and whose users' group has no specific authority to the object.
</p>
<p>If OPTION(*CREATE) and REPLACE(*YES) is specified and the message file already exists, the <b>Authority (AUT)</b> parameter is ignored and all of the authorities for the old message file are copied to the new message file that replaces it. The AUT parameter is always ignored when OPTION (*ADD) or (*UPDATE) is specified.
</p>
<dl>
<dt><b><u>*LIBCRTAUT</u></b></dt>
<dd>The authority for the object is the same as the value specified on the <b>Create authority (CRTAUT)</b> parameter of the library in which the object is being created. If the value specified on the CRTAUT parameter is changed, the new value will not affect any existing objects.
</dd>
</dl>
<dl>
<dt><b>*USE</b></dt>
<dd>The user can perform basic operations on the object, such as running a program or reading a file. The user cannot change the object. Use (*USE) authority provides object operational (*OBJOPR), read (*READ), and execute (*EXECUTE) authorities.
</dd>
</dl>
<dl>
</dl>
<dl>
<dt><b>*ALL</b></dt>
<dd>The user can perform all operations except those limited to the owner or controlled by authorization list management (*AUTLMGT) authority. The user can control the object's existence, specify the security for the object, change the object, and perform basic functions on the object. The user also can change ownership of the object.
</dd>
</dl>
<dl>
</dl>
<dl>
<dt><b>*CHANGE</b></dt>
<dd>The user can perform all operations on the object except those limited to the owner or controlled by object existence (*OBJEXIST) and object management (*OBJMGT) authorities. The user can change and perform basic functions on the object. *CHANGE authority provides object operational (*OBJOPR) authority and all data authority. If the object is an authorization list, the user cannot add, change, or remove users.
</dd>
</dl>
<dl>
</dl>
<dl>
<dt><b>*EXCLUDE</b></dt>
<dd>The user cannot access the object.
</dd>
</dl>
<dl>
<dt><b><i>authorization-list-name</i></b></dt>
<dd>Specify the name of an authorization list to be used for authority to the object. Users included in the authorization list are granted authority to the object as specified in the list. The authorization list must exist when the object is created.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.TOFILE"></a>
<h3>To CL source file (TOFILE)</h3>
<p>Specifies the name and library of the source file in which to store the CL source that was used to create the message file. If the file does not already exist, a new source file is created if the user is authorized to the CRTSRCPF (Create Source Physical File) command.
</p>
<dl>
<dt><b><u>QCLSRC</u></b></dt>
<dd>The source file, QCLSRC, is used.
</dd>
<dt><b><i>file-name</i></b></dt>
<dd>Specify the name of the source file in which the source is stored.
</dd>
</dl>
<p>The possible library values are:
</p>
<dl>
<dt><b><u>*CURLIB</u></b></dt>
<dd>The current library for the job is used to locate the file. If no library is specified as the current library for the job, the QGPL library is used.
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library where the source file is located.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.TOMBR"></a>
<h3>To CL source member (TOMBR)</h3>
<p>Specifies the name of the source file member in which to store the data description specifications (DDS) source. If the member does not exist, it is created. When the member name is the same as that of the display file name, and the to-file is QS36DDSSRC in the same library as the display file being created, the DDS is saved in this member only if the compile operation of the display file is successful. To guarantee that the DDS is saved, specify the name of some other source file, library, or member.
</p>
<dl>
<dt><b><u>*NONE</u></b></dt>
<dd>The CL source is not stored in the source file specified on the <b>To CL source file (TOFILE)</b> parameter.
</dd>
<dt><b>*SRCMBR</b></dt>
<dd>If no member name is specified, the member name specified on the <b>S/36 message source member (SRCMBR)</b> parameter is used. The same name and library should <b>not</b> be specified for both the TOFILE parameter and the SRCFILE parameter, since this would destroy your original System/36 message source.
</dd>
<dt><b><i>member-name</i></b></dt>
<dd>Specify the name of the source file member in which to store the CL source. The specified member is replaced if it exists. If it does not exist, it is created. If any terminating errors are encountered, the member is not added or changed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="CRTS36MSGF.HALT"></a>
<h3>Issue msg if error occurs (HALT)</h3>
<p>Specifies whether processing stops when an error is detected.
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>The request ends with an error message.
</dd>
<dt><b>*NO</b></dt>
<dd>The request ends with a diagnostic message, and a return code of 2034 is set.
</dd>
<dt><b>*IGNORE</b></dt>
<dd>If an error that can be ignored is detected in the source, a diagnostic message is issued, and the current source statement is ignored. Processing continues with the next source statement. If the error cannot be ignored, processing stops and an error message is issued.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CRTS36MSGF.COMMAND.EXAMPLES">Examples</a> </h3>
<p>
<pre>
CRTS36MSGF SRCMBR(MYMSGSRC) SRCFILE(MYLIB/QS36SRC)
MSGLIB(WORKLIB) REPLACE(*YES)
</pre>
</p>
<p>This command creates a message file named MYMSGSRC in library WORKLIB. If a message file with the same name already exists, this new message file replaces the existing one.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="CRTS36MSGF.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>SSP1727</b></dt>
<dd>Message file &amp;1 not found in library &amp;2.
</dd>
<dt><b>SSP5017</b></dt>
<dd>TOFILE library &amp;1 not found.
</dd>
<dt><b>SSP6124</b></dt>
<dd>Unexpected error occurred.
</dd>
<dt><b>SSP7375</b></dt>
<dd>Error &amp;1 received by &amp;2 utility.
</dd>
<dt><b>SSP8663</b></dt>
<dd>User not authorized to access &amp;1.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#CRTS36MSGF.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>