Hi Richard
V5R3 has the GENCMDDOC command - it can create UIM source or HTML. The UIM
option gives you help sections for each parameter.
This CMD source
CMD PROMPT(LKJH)
PARM KWD(JOBNAME) TYPE(*GENERIC) LEN(10) +
SPCVAL((*ANY)) MIN(1) PROMPT('Job name')
PARM KWD(JOBQ) TYPE(NAME1) DFT(*ANY) +
SNGVAL((*ANY)) PROMPT('Job queue')
NAME1: QUAL TYPE(*NAME) LEN(10) MIN(1)
QUAL TYPE(*NAME) LEN(10) MIN(1) PROMPT('Library')
DEP CTL(*ALWAYS) PARM((JOBNAME) (JOBQ)) +
NBRTRUE(*GT 0)
DEP CTL(&JOBNAME *EQ *ANY) PARM((&JOBQ *NE *ANY))
results in this UIM source
:pnlgrp.
.************************************************************************
.* Help for command
LKJH
.************************************************************************
:help
name='LKJH'.
LKJH -
Help
:p.The LKJH (LKJH) command
<...>
.* Describe the function provided by the
command.
:p.:hp2.Restrictions::ehp2.
:ul.
:li.
You must have
<...>
.* List all special authorities required to run the
command.
:li.
You must have
<...>
.* List object or data authorities required to run the
command.
:li.
This command is conditionally threadsafe,
<...>
.* If conditionally threadsafe, list threadsafe conditions or
restrictions.
:li.
<...>
.* Describe other command-level
restrictions.
.* Parameter-level restrictions belong in parameter help sections, not
here.
:eul.
:ehelp.
.*******************************************
.* Help for parameter
JOBNAME
.*******************************************
:help
name='LKJH/JOBNAME'.
Job name (JOBNAME) -
Help
:xh3.Job name
(JOBNAME)
:p.Specifies
<...>
.* Describe the function provided by the
parameter.
:parml.
:pt.:pk
def.*ANY:epk.
:pd.
<...>
.* Describe the function provided by the pre-defined parameter
value.
:pt.:pv.generic-name:epv.
:pd.
Specify the generic name of
<...>
.* Describe the function provided by the user-defined parameter
value.
:pt.:pv.name:epv.
:pd.
Specify the name of
<...>
.* Describe the function provided by the user-defined parameter
value.
:eparml.
:ehelp.
.*******************************************
.* Help for parameter
JOBQ
.*******************************************
:help
name='LKJH/JOBQ'.
Job queue (JOBQ) -
Help
:xh3.Job queue
(JOBQ)
:p.Specifies
<...>
.* Describe the function provided by the
parameter.
:p.:hp2.Single
values:ehp2.
:parml.
:pt.:pk
def.*ANY:epk.
:pd.
<...>
.* Describe the function provided by the pre-defined parameter
value.
:eparml.
:p.:hp2.Qualifier 1: Job
queue:ehp2.
:parml.
:pt.:pv.name:epv.
:pd.
Specify the name of
<...>
.* Describe the function provided by the user-defined parameter
value.
:eparml.
:p.:hp2.Qualifier 2:
Library:ehp2.
:parml.
:pt.:pv.name:epv.
:pd.
Specify the name of
<...>
.* Describe the function provided by the user-defined parameter
value.
:eparml.
:ehelp.
.**************************************************
.*
.* Examples for
LKJH
.*
.**************************************************
:help
name='LKJH/COMMAND/EXAMPLES'.
Examples for LKJH -
Help
:xh3.Examples for
LKJH
:p.:hp2.Example 1: Simple Command
Example:ehp2.
:xmp.
LKJH KWD1(PARMVAL1)
:exmp.
:p.This command
<...>
.* Describe a simple invocation of the
command.
.*
:p.:hp2.Example 2: More Complex Command
Example:ehp2.
:xmp.
LKJH KWD1(PARMVAL1) KWD2(PARMVAL2)
KWD3(PARMVAL3)
:exmp.
:p.This command
<...>
.* Describe a more complex invocation of the
command.
:ehelp.
.**************************************************
.*
.* Error messages for
LKJH
.*
.**************************************************
:help
name='LKJH/ERROR/MESSAGES'.
&msg(CPX0005,QCPFMSG). LKJH -
Help
:xh3.&msg(CPX0005,QCPFMSG).
LKJH
:p.:hp3.*ESCAPE
&msg(CPX0006,QCPFMSG).:ehp3.
.************************************************************************
.* List the *ESCAPE, *STATUS, and *NOTIFY messages signalled from the
command.
.* The following are generic messages defined in message file
QCPFMSG.
.* Modify this list to match the list of error messages for the
command.
.************************************************************************
:DL
COMPACT.
:DT.CPF9801
:DD.&MSG(CPF9801,QCPFMSG,*LIBL,nosub).
:DT.CPF9802
:DD.&MSG(CPF9802,QCPFMSG,*LIBL,nosub).
:DT.CPF9803
:DD.&MSG(CPF9803,QCPFMSG,*LIBL,nosub).
:DT.CPF9807
:DD.&MSG(CPF9807,QCPFMSG,*LIBL,nosub).
:DT.CPF9808
:DD.&MSG(CPF9808,QCPFMSG,*LIBL,nosub).
:DT.CPF9810
:DD.&MSG(CPF9810,QCPFMSG,*LIBL,nosub).
:DT.CPF9811
:DD.&MSG(CPF9811,QCPFMSG,*LIBL,nosub).
:DT.CPF9812
:DD.&MSG(CPF9812,QCPFMSG,*LIBL,nosub).
:DT.CPF9820
:DD.&MSG(CPF9820,QCPFMSG,*LIBL,nosub).
:DT.CPF9830
:DD.&MSG(CPF9830,QCPFMSG,*LIBL,nosub).
:DT.CPF9899
:DD.&MSG(CPF9899,QCPFMSG,*LIBL,nosub).
:EDL.
:ehelp.
:epnlgrp.
HTML version is
<!doctype html PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html;
charset=utf-8">
<title>LKJH (LKJH)</title>
</head>
<body
bgcolor="white">
<a
name="LKJH.Top_Of_Page"></a>
<h2>LKJH (LKJH)</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="#LKJH.PARAMETERS.TABLE">Parameters</a><br>
<a
href="#LKJH.COMMAND.EXAMPLES">Examples</a><br>
<a href="#LKJH.ERROR.MESSAGES">Error
messages</a></td>
<a href="#LKJH.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="LKJH.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"><b>JOBNAME</b></td>
<td valign="top">Job name</td>
<td valign="top">Job
name</td>
<td valign="top"><i>Generic name, name</i>,
<b><u>*ANY</u></b></td>
<td valign="top">Optional, Positional
1</td>
</tr>
<tr>
<td valign="top"
rowspan="3"><b>JOBQ</b></td>
<td valign="top">Job
queue</td>
<td valign="top">Single values: <b><u>*ANY</u></b><br>Other values:
<i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional, Positional
2</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Job
queue</td>
<td
valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2:
Library</td>
<td
valign="top"><i>Name</i></td>
</tr></table>
<table
width="100%">
<table width="100%">
<tr><td align="right"><a href="#LKJH.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<hr size="2" width="100%">
<div>
<h3><a name="LKJH.COMMAND.EXAMPLES">Examples</a></h3>None
</div>
<table width="100%">
<tr><td align="right"><a href="#LKJH.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="LKJH.ERROR.MESSAGES">Error messages</a></h3>Unknown
</div>
<table width="100%">
<tr><td align="right"><a href="#LKJH.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</body>
</html>
Very cool!
Vern
At 09:03 AM 7/8/2004, you wrote:
Hello All,
We are looking for a good tool to automate some of the coding behind
creating help text for CL commands and also green screen programs.
Does anybody know of a good tool for this or do you have something home
grown you're willing to share or sell.
I would also entertain bids to create something.
Any input is appreciated.
Regards,
Richard Schoen
RJS Software Systems Inc.
This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.