The Fix Qualified Name command allows you to add a library qualifier
to non-system commands (and optionally to system commands) used
within CL source. The source is updated to include the library that
the command is found in. The source is reformatted in a manner
similar to if you had prompted for every command in SEU. The library
of the command must be on the library list and the first occurrence
is used.
Library qualifying command names can be important to prevent
potential conflicts where the same command name appears in different
libraries with potentially different parameters and/or different
command processing programs (CPP).
You may specify a single member, a generic member name, or all
members of a source file to be fixed.
A typical command would be entered as:
FIXQLFNAM MBR(*ALL) INPSRCF(QCLSRC)
OUTSRCF(QCLSRC2)
Because all of the members will be rewritten, no members can exist in
the QCLSRC2 file when the command begins. The QCLSRC2 file must
exist.
The default is to library qualify non-system commands (not in QSYS or
QSYS38) that are not already qualified. The commands may be in
TAATOOL or user libraries. If the command is found, the library
where the command was found is used to add the library qualifier.
Reformatting of the source would occur in a manner similar to the use
of F4 in SEU. A listing occurs with one line per member plus any
errors.
If a command cannot be found on the library list, the member is not
copied or replaced. FIXQLFNAM determines if the command exists
anywhere on the system and if the same name exists, the libraries
where the name was found are listed.
See also the FIXQLFCPP tool which will library qualify the calls in
user command definition objects.
FIXQLFNAM escape messages you can monitor for
---------------------------------------------
TAA9891 One or more errors were found.
Escape messages from based on functions will be re-sent.
Command parameters *CMD
------------------
MBR The member to be fixed by adding a library qualifier
to non-system commands (not found in QSYS). A
specific member, a generic member, or all members in
the file (special value *ALL) may be specified.
INPSRCF The qualified file name of the input source file.
The library value defaults to *LIBL. *CURLIB may
also be used. The file must be a source file with a
record length of 92 to 240 (80 - 228 bytes of data).
OUTSRCF The qualified file name of the output source file.
The file defaults to *INPSRCF meaning the
reformatted source will be written back to the input
source file member if no errors occur.
The library qualifier defaults to blank which means
to use the same library as the INPSRCF. *LIBL or
*CURLIB may also be used. The file must be a source
file with a record length of 92 to 240 (80 - 228
bytes of data).
If a single member is being reformatted to a
different file (not being updated), the member must
not exist.
If all members in a file are being reformatted to a
different file, no members may exist in the output
source file.
If generic members in a file are being reformatted
to a different file, the corresponding member may
not exist.
Any members which are not of a type CLP, CLLE, or
CMD will be identified on the listing and will not
appear in the output file.
SYSCMD A *YES/*NO parameter that determines if system
commands (commands in QSYS or QSYS38) will be
library qualified. The default is *NO.
*YES may be specified to library qualify system
commands.
ALWLDGCOM A *YES/*NO parameter that defaults to *YES which
allows any comments to the left of a command to be
retained. The comment must be totally contained
within the first 13 positions of the source record.
If you place a comment in positions 1-13 before a
command and then prompt for the command in SEU, the
string that is returned places the comment at the
end of the command.
*NO causes any comments in 1-13 to be placed at the
end of the command as if you had prompted with SEU.
CMDCOL A *YES/*NO parameter that determines if the command
names will be kept in the same column (beginning in
position 14).
*NO is the default meaning the qualified library
name will begin in position 14 as if you had
prompted for the command in SEU. The command name
follows the library qualifier. If library
qualifiers are of different lengths, the command
names will not begin in the same column. In
addition, if SYSCMD(*NO) is specified, any
unqualified system command names would begin in
position 14.
*YES may be specified to align all command names in
position 14. If a qualified name exists, it is
placed to the left of the command name. If
insufficient room exists to the left of the command
(because of a label or comment), the qualifier is
added beginning in position 14 and the command is
flagged on the listing.
SEQNBRS The default is *RESEQ which causes the reformatted
source to be sequenced as 1.00, 2.00 etc.
The value *SAME causes FIXQLFNAM to attempt to use
the same sequence numbers as were input. Because
some commands are contained on multiple records and
the number of output records may not be the same as
the number of input records, some changes may occur.
The sequence number of the first record of each
command is used as a base. Each additional record
to be output for the same command is bumped by .01.
Thus for SEQNBRS(*SAME), if the first record of a
command was 78.00, the first record output for the
command would be 78.00. Any additional records for
the same command would be 78.01, 78.02 etc.
MAXFMTWTH The maximum formatting width to be used. The
default is *FILE to format the statements to the
length of the source statements within the file.
A length can be specified between 80 and 240 to
format the statement based on a shorter width.
For example, if your source statements are wider
than 80, but you want to format them for an 80 byte
wide display, specify MAXFMTWTH(80).
ESCAPE A *YES/*NO value for whether an escape message will
be sent if errors exist. *NO is the default meaning
the command completes normally with a completion
message that describes whether errors exist or not.
*YES may be specified to send TAA9891 as an escape
message if errors exist.
Restrictions
------------
See previous comments.
Prerequisites
-------------
The following TAA Tools must be on your system:
CHKGENERC Check generic
CVTMBRLST Convert member list
EDTVAR Edit variable
FILEFDBCK File feedback
HLRMVMSG HLL Remove message
RPGSTSDS RPG status data structure
RTVQLFNAM Retrieve qualified name
RTVDBFA Retrieve data base file attributes
RTVOBJLST Retrieve object list
RTVSYSVAL3 Retrieve system value 3
RTVVALA Retrieve value attributes
SNDCOMPMSG Send completion message
SNDESCMSG Send escape message
SNDSTSMSG Send status message
Implementation
--------------
None, the tool is ready to use.
Objects used by the tool
------------------------
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
FIXQLFNAM *CMD TAACMER QATTCMD
TAACMERC *PGM CLP TAACMERC QATTCL
TAACMERC2 *PGM CLP TAACMERC2 QATTCL
TAACMERC3 *PGM CLP TAACMERC3 QATTCL
TAACMERC4 *PGM CLP TAACMERC4 QATTCL
TAACMERR *PGM RPG TAACMERR QATTRPG
Structure
---------
FIXQLFNAM Cmd
TAACMERC CL pgm - Gets member list
TAACMERR RPG pgm - Print and update program
TAACMERC2 CL pgm - Copies temporary source to out file
TAACMERC3 CL pgm - Determines the qualified library name
TAACMERC4 CL pgm - Checks for member existence
TAACMERC5 CL pgm - Does RTVQLFNAM if command is not found
|