The Check Command Spelling command checks words within quotes in CMD
type source. For example, words within 'prompt text' or 'choice
text' can be checked for misspellings. A spooled file is created if
any spelling errors exist. The the QTWCHKSP API is used. Unique
spelling dictionaries can be created with the CRTSPADCT command which
is part of the Operating System.
Special dictionaries are supplied with the TAA Productivity Tools.
See the discussion with the TAADCT TAA Tool.
The command operates on either a single member or all members in a
file such as:
CHKCMDSPE SRCFILE(QCMDSRC) MBR(xxx)
CHKCMDSPE SRCFILE(QCMDSRC) MBR(*ALL)
If MBR(*ALL) is requested, a summary spooled file is output with one
line per member.
The spelling dictionaries used may be specified on the command or
Both CMD and CMD38 source types are checked. Any other source types
A Command Definition statement may be made up of one or more source
lines. The statement is assembled in a work area and then words
inside of quotes are extracted to a second work area. Words within
comments are bypassed. If two consecutive quotes are found, one is
output to the second work area. When all words to be checked have
been extracted from a source statement, the second work area is
passed to the Spell Checker.
If a word is found inside quotes such as 'mssage' the error word is
printed along with the first or only source line that makes up the
statement and its sequence number. If the misspelled word is on a
continuation source line the context of the spelling error is not
shown. You must review the source itself to see the error word in
It is valid to split a word over two source lines (the first ending
with a + continuation) and have the word validly checked.
After each ending quote, it is assumed a word has ended and a blank
is added to prevent the next word from being concatenated with the
first. For example, if you specify:
'Hello' *CAT 'friend'
both words would pass the spell checker. However if you specify:
'fr' *CAT 'iend'
both words will be flagged as misspelled.
A source member can be up to 240 bytes in record length. Only the
first 97 bytes of the source statement field will be printed if an
If MBR(*ALL) is specified, a change date may be entered so only those
members which have been changed after the change date will be
Because of the technique used, the following will occur:
** It is possible to have text within a keyword that is not
surrounded by quotes. For example, you might have
PROMPT(TESTFILE). The text will not be checked in this case.
** It is also possible to place quotes around a value that is not
text such as PMTOVRPGM('ABC'). In this case ABC will be
considered a misspelled word. You should expect some degree
of 'noise' with CHKCMDSPE.
You can reduce the amount of 'noise' by creating a dictionary of your
The performance of the spell check API is not as good as that used by
the Office Editor or Text Management. You should not expect great
performance from CHKCLSPE.
The API has significant overhead to begin checking.
While spell checking is occurring, the CPU is very busy.
CHKCMDSPE escape messages you can monitor for
TAA9891 Not a CMD source type or no CMD types exist
TAA9892 Spelling errors - only if ESCAPE(*YES)
Escape messages from based on functions will be re-sent.
Command parameters *CMD
SRCFILE The qualified file name of the source file to be
checked. QCMDSRC is the default. The library value
defaults to *LIBL. *CURLIB may also be specified.
MBR The member to be spell checked. *ALL is the default
to check all members in the file. A single member
or a generic member name may be specified.
DLTSPLF Determines if the spooled file is deleted if the
correct spelling exists. *YES is the default
meaning to delete the spooled file if no errors
exist. The current implementation is that the
spooled file will not be created unless errors
*NO may be specified to retain the spooled file
whether errors exist or not.
CHGDATE If MBR(*ALL) is specified, any date entered will be
checked against the last change date of each member.
If the member was changed on or after the change
date, it will be checked. Members which were last
changed before the change date will be bypassed.
The change date (if any) should be entered in job
The intention of the CHGDATE parameter is to
minimize the performance once an entire source file
is checked. After that point, you may just check
the members that have changed by specifying a change
ESCAPE A *YES/*NO value for whether to send the TAA9892
message as an escape type if spelling errors exist.
*YES is the default.
*NO may be specified to receive a completion
DICT The qualified name of the spelling dictionary to be
used. The default is *DFT which means to use the
A list of up to 8 dictionaries may be named. A
dictionary must be created by the CRTSPADCT command.
DCTARA An optional parameter that allows a list of
dictionaries to be specified by naming a data area
in library TAADCT that contains the list. The
default is *DFT. A data area may only be named if
DICT(*DFT) is used.
If a dictionary is named, DCTARA(*NONE) must be
The list of dictionaries must be entered according
to the CRTDCTARA TAA Tool and the data area
containing the dictionaries must exist in the TAADCT
library. Up to 8 dictionaries may be named in the
If both DICT(*DFT) and DCTARA(*DFT) are specified,
the following rules exist.
1) If the library TAADCT does not exist, the TAADFT
dictionary in TAATOOL is used.
2) If the TAADCT library exists, a data area by the
name of the user of the job is searched for in
TAADCT. If it does not exist, a data area by the
name of SYSTEM is searched for in TAADCT.
3) If neither data area exists, the TAADFT
dictionary in TAATOOL is used.
You must have valid Command Definition specifications.
See the previous discussion on the technique used to determine the
words to be checked.
The following TAA Tools must be on your system:
CHKGENERC Check generic
CVTDAT Convert date
CVTMBRLST Convert member list
EDTVAR Edit variable
HLRMVMSG HLL Remove message
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
------ ---- --------- ---------- ----------
CHKCMDSPE *CMD TAATXTK QATTCMD
TAATXTKC *PGM CLP TAATXTKC QATTCL
TAATXTKR *PGM RPG TAATXTKR QATTRPG
TAATXTKR2 *PGM RPG TAATXTKR2 QATTRPG