The Compare Program Parameters command compares the parameter lists
being passed between programs. A single program, a generic set of
programs, or all programs in a library may be compared. The programs
must have been written in either CL or RPG and the source must still
exist where the programs were created from.
A typical command would be:
The program would be accessed and the source member determined. The
source would be scanned to determine the Call commands (or Call
operations in RPG). The called program would be determined (only
literals or RPG constants can be used) and the source for the called
program would be accessed and the parameter lists compared.
The CMPSRCPARM TAA Tool is used to make the comparisons. A listing
is produced with one line per for each call and whether the parameter
If the parameter lists do not match, the CMPSRCPARM spooled file will
Another typical command would be to check all of a generic set of
or all of the programs in a library such as:
Several restrictions exist with the CMPSRCPARM tool and other base
tools used. The following are the major restrictions:
** Only CL or RPG source types are supported.
** The source for the programs must exist in the same
file/library/member used to create the programs.
** Any externally described files must exist on the library list
to be included. If they do not exist, a comparison is
attempted, but may not have all of the information.
** The name on the Call must be a literal or an RPG constant. If
a variable name is used, the Call is flagged.
** Any calls to programs in QSYS or QGY cannot be compared.
These Calls are flagged. See the parameter BYPQSYS that
allows these CALLs to be bypassed and not considered an error.
** See the parameter BYPNOCALLS to prevent the message text which
describes an error and will cause the spooled file to be
** RPG field descriptions are accessed by RTVRPGFLD which has
** CL variable descriptions are accessed by RTVCLPVAR which has
Command parameters *CMD
PGM The qualified name of the program to be checked. A
single program, a generic name, or the special value
*ALL may be used. The library value defaults to
*USRLIBL. *ALLUSR or *CURLIB may also be used.
DLTSPLF Determines whether to delete the spooled files
caused by the sub tool CMPSRCPARM if the parameter
lists match. *YES is the default to cause the
spooled files to be deleted if a match occurs.
*NO may be specified to retain all spooled files.
RQDEXTDSC Determines whether any externally described files
are required. *YES is the default. If an
Externally Described file is specified in the
source, it must exist on the library list or an
error will occur.
*NO may be specified in which case if an Externally
Described file exists, the field specifications are
used. If an Externally Described file does not
exist, no error occurs, but the information about
some of the fields may be missing.
BYPQSYS A *NO/*YES parameter for whether to consider calls
to programs in QSYS or QGY (which are not checked)
*NO is the default to consider these calls an error.
An escape message is sent and the spooled file
describes the error.
*YES may be specified to bypass these CALLs and not
consider them an error.
BYPNOCALLS A *YES/*NO parameter for whether to consider a
program that has no CALLs an error.
*YES is the default to not consider it an error.
*NO may be specified to flag these types of programs
and the command will end with an escape message.
RESTARTPGM If PGM(*ALL) is specified, this parameter provides a
form of recovery by allowing processing to begin
with the name of a program.
The default is *NONE which must be used if PGM is
other than *ALL.
When PGM(*ALL) is used, a restart of *NONE means to
process all of the programs.
If a restart name is entered with PGM(*ALL), any
programs that are 'less than' the restart name are
bypassed. The restart name does not have to exist
as a program.
The sub tool CMPSRCPARM has several restrictions along with the other
base tools used. The major restrictions were listed previously.
The following TAA Tools must be on your system:
CMPSRCPARM Compare source parameters
EDTVAR Edit variable
RTVPGMA Retrieve program attributes
RTVCLPCALL Retrieve CLP calls
RTVILEMODA Retrieve ILE module attributes
RTVRPGCALL Retrieve RPG calls
RTVSYSVAL3 Retrieve system value 3
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDSTSMSG Send status message
None, the tool is ready to use.
Objects used by the tool
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
CMPPGMPARM *CMD TAAPGMO QATTCMD
TAAPGMOC *PGM CLP TAAPGMOC QATTCL
TAAPGMOR *PGM RPG TAAPGMOR QATTRPG