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

268 lines
12 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>Retrieve Group Attributes (RTVGRPA)</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="RTVGRPA.Top_Of_Page"></a>
<h2>Retrieve Group Attributes (RTVGRPA)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>
<ul><li>Interactive program (*IPGM)</li>
<li>Interactive REXX procedure (*IREXX)</li>
</ul><b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#RTVGRPA.PARAMETERS.TABLE">Parameters</a><br>
<a href="#RTVGRPA.COMMAND.EXAMPLES">Examples</a><br>
<a href="#RTVGRPA.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="RTVGRPA"></a>
<p>The Retrieve Group Attributes (RTVGRPA) command retrieves information about the group in which the job that issued the command belongs. The following attributes can be retrieved:
</p>
<ul>
<li>The group job name of the job calling the RTVGRPA command
</li>
<li>A list containing information about all active jobs in the group
</li>
<li>A count of the number of active jobs in the group
</li>
<li>The name of the group message queue
</li>
<li>The library in which the group message queue resides
</li>
<li>The group job name and job number of the previously active job in the group
</li>
<li>A control code indicating why the currently active job in the group gained control
</li>
</ul>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="RTVGRPA.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="#RTVGRPA.GRPJOB"><b>GRPJOB</b></a></td>
<td valign="top">CL var for GRPJOB (10)</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional, Positional 1</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.GRPJOBL"><b>GRPJOBL</b></a></td>
<td valign="top">CL var for GRPJOB list (1056)</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.GRPJOBCNT"><b>GRPJOBCNT</b></a></td>
<td valign="top">CL var for GRPJOBCNT (3 0)</td>
<td valign="top"><i>Decimal number</i></td>
<td valign="top">Optional, Positional 3</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.MSGQ"><b>MSGQ</b></a></td>
<td valign="top">CL var for MSGQ (10)</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.MSGQLIB"><b>MSGQLIB</b></a></td>
<td valign="top">CL var for MSGQLIB (10)</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.PRVGRPJOB"><b>PRVGRPJOB</b></a></td>
<td valign="top">CL var for PRVGRPJOB (16)</td>
<td valign="top"><i>Character value</i></td>
<td valign="top">Optional</td>
</tr>
<tr>
<td valign="top"><a href="#RTVGRPA.CTLCDE"><b>CTLCDE</b></a></td>
<td valign="top">CL var for CTLCDE (3 0)</td>
<td valign="top"><i>Decimal number</i></td>
<td valign="top">Optional</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="RTVGRPA.GRPJOB"></a>
<h3>CL var for GRPJOB (10) (GRPJOB)</h3>
<p>Specifies the name of the CL variable that receives the group job name of the job. The variable must be a character variable with a minimum length of 10 characters. If the group job name has fewer characters than the variable allows, the value is padded on the right with blanks.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.GRPJOBL"></a>
<h3>CL var for GRPJOB list (1056) (GRPJOBL)</h3>
<p>Specifies the name of the CL variable that receives the list of jobs in the group. Each entry contains the job's group job name (10), job number (6), and the 50 characters of descriptive text. The maximum number of entries in the variable is 16. The entries are ordered by most recently active job. The variable must be a character variable with a minimum length of 1056 characters. If the group job list has fewer characters than the variable allows, the value is padded on the right with blanks.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.GRPJOBCNT"></a>
<h3>CL var for GRPJOBCNT (3 0) (GRPJOBCNT)</h3>
<p>Specifies the CL variable that receives the count of active jobs in the group. The CL variable must be a three-position decimal variable with no decimal positions. The CL variable contains the number of non-blank entries in the group job list. The count includes all of the active jobs in the group. Jobs that have not completely ended (jobs that have been canceled) are not counted.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.MSGQ"></a>
<h3>CL var for MSGQ (10) (MSGQ)</h3>
<p>Specifies the name of the CL variable that receives the group message queue name. This variable must be a character variable with a minimum length of 10 characters. If the message queue name has fewer characters than the variable allows, the value is padded on the right with blanks. If there is no message queue associated with the group, the CL variable is set to the special value of *NONE.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.MSGQLIB"></a>
<h3>CL var for MSGQLIB (10) (MSGQLIB)</h3>
<p>Specifies the name of the CL variable that receives the name of the library that contains the group message queue. This variable must be a character variable with a minimum length of 10 characters. If the library name has fewer characters than the variable allows, the value is padded on the right with blanks. If there is no message queue associated with the group, the CL variable is set to blanks.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.PRVGRPJOB"></a>
<h3>CL var for PRVGRPJOB (16) (PRVGRPJOB)</h3>
<p>Specifies the name of the CL variable that receives the group job name and job number of the previously active job in the group. The variable must be a character variable with a minimum length of 16 characters. If the group job name has fewer characters than the variable allows, the value is padded on the right with blanks. If there is no previously active job in the group, the group job name portion of the CL variable is set to the special value of *NONE, and the job number portion of the CL variable is set to blanks. The CL variable is returned in the following format:
</p>
<p>
<pre>
Group-job-name CHAR(10)
Job-number CHAR(6)
</pre>
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="RTVGRPA.CTLCDE"></a>
<h3>CL var for CTLCDE (3 0) (CTLCDE)</h3>
<p>Specifies the name of the CL variable that receives information about why the active job in the group has gained control. The CL variable must be a three-position decimal variable with no decimal positions. The following control codes (and their meanings) are possible:
</p>
<dl>
<dt><b>0</b></dt>
<dd>There was no previously active job (no Transfer to Group Job (TFRGRPJOB) commands have been run for this group).
</dd>
<dt><b>10</b></dt>
<dd>The previously active job selected this job to be transferred to on the TFRGRPJOB command.
</dd>
<dt><b>20</b></dt>
<dd>The previously active job's first group program ended normally, and this job was the most recently active job in the group.
</dd>
<dt><b>30</b></dt>
<dd>The previously active job was ended by the End Group Job (ENDGRPJOB) command, and this job was selected to gain control (the <b>Group job to be resumed (RSMGRPJOB)</b> parameter specified this group job).
</dd>
<dt><b>40</b></dt>
<dd>The previously active job was ended by the ENDGRPJOB command and selected a job other than this job to gain control (which was ended before it could be resumed). Since this job was the most recently active job in the group, control is passed to it.
</dd>
<dt><b>50</b></dt>
<dd>The previously active job was ended by the ENDGRPJOB command, and this job was the most recently active job in the group (the RSMGRPJOB parameter specified *PRV).
</dd>
<dt><b>60</b></dt>
<dd>The previously active job's first group program ended abnormally, and this job was the most recently active job in the group.
</dd>
<dt><b>70</b></dt>
<dd>The previously active job was ended by the End Job (ENDJOB) command, and this job was the most recently active job in the group.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RTVGRPA.COMMAND.EXAMPLES">Examples</a> </h3>
<p>Assume jobs 030001/QUSER/WORKST01 and 030002/QUSER/WORKST01 are group jobs with group job names GROUPJ1 and GROUPJ2, respectively. Also assume that message queue QGPL/GROUPMSGQ is associated with the group. If group job GROUPJ1 has just issued the TFRGRPJOB command to transfer to group job GROUPJ2, and GROUPJ2 called the following CL program:
</p>
<p><b>PGM Example</b>
</p>
<p>
<pre>
DCL VAR(&amp;GRPJOBN) TYPE(*CHAR) LEN(10)
DCL VAR(&amp;GRPJOBL) TYPE(*CHAR) LEN(1056)
DCL VAR(&amp;GRPCOUNT) TYPE(*DEC) LEN(3 0)
DCL VAR(&amp;MSGQNAME) TYPE(*CHAR) LEN(10)
DCL VAR(&amp;MSGQLIB) TYPE(*CHAR) LEN(10)
DCL VAR(&amp;PRVJOB) TYPE(*CHAR) LEN(16)
DCL VAR(&amp;CTLCODE) TYPE(*DEC) LEN(3 0)
RTVGRPA GRPJOB(&amp;GRPJOBN) GRPJOBL(&amp;GRPJOBL) +
GRPJOBCNT(&amp;GRPCOUNT) MSGQ(&amp;MSGQNAME) +
MSGQLIB(&amp;MSGQLIB) PRVGRPJOB(&amp;PRVJOB) +
CTLCDE(&amp;CTLCODE)
</pre>
</p>
<p>The contents of the CL variables returned are as follows:
</p>
<p>
<pre>
&amp;GRPJOBN: GROUPJ2
&amp;GRPJOBL: GROUPJ2 030002 50 characters of text for
this group job...
GROUPJ1 030001 50 characters of text for
this group job...
</pre>
</p>
<p>Fourteen more entries, full of blanks
</p>
<p>
<pre>
&amp;GRPCOUNT: 002
&amp;MSGQNAME: GROUPMSGQ
&amp;MSGQLIB: QGPL
&amp;PRVJOB: GROUPJ1 030001
&amp;CTLCODE: 010
</pre>
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="RTVGRPA.ERROR.MESSAGES">Error messages</a> </h3>
<p><b><u>*ESCAPE Messages</u></b>
</p>
<dl>
<dt><b>CPF1309</b></dt>
<dd>Subsystem cannot complete the &amp;1 command.
</dd>
<dt><b>CPF1311</b></dt>
<dd>Job is not a group job.
</dd>
<dt><b>CPF1317</b></dt>
<dd>No response from subsystem for job &amp;3/&amp;2/&amp;1.
</dd>
<dt><b>CPF1351</b></dt>
<dd>Function check occurred in subsystem for job &amp;3/&amp;2/&amp;1.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#RTVGRPA.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>