The Check DDS Spelling command checks the literals in either DSPF or
PRTF type source. A spooled file is created if any spelling errors
You must have a dictionary on your system such as TAADFT. 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:
CHKDDSSPE SRCFILE(QDDSSRC) MBR(xxx)
CHKDDSSPE SRCFILE(QDDSSRC) 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
Only literals (those beginning with an apostrophe in position 45) are
checked. Only the data in the literal section of the DDS specs is
checked. If the previous line indicates a literal continuation, the
continuation line is checked also.
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
Handling of multi line literals
If a literal requires more than a single source record (record ends
with + or -), the literal is built up in a work area before checking
the spelling. This ensures that any words that are split across
multiple source statements are properly checked.
If an error is found, the first source record and sequence number are
shown as the error. If the error is on a continuation record, you
will not be able to see the exact source record in error by looking
at the output.
Because of the way the API returns errors, the CHKDDSSPE function
will not always identify the proper statement where the error exists.
For example, you may have spelled the word 'for ' as 'fo '. The
first scan occurs for the word in error followed by a blank. If a
match is not found, a period is added and the scan occurs for 'fo.'.
If a match is not found, a + is added and the scan occurs for 'fo+'.
If a match is not found, a scan occurs for the exact length of the
word in error.
Because of this technique, the spell checking will find the error,
but when it attempts to identify the statement that contains the
error, it may indicate the wrong statement.
If this occurs, position to the statement shown and scan for the word
that is incorrect. You should come to it within a few statements.
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 CHKDDSSPE.
The API has significant overhead to begin checking. To improve the
performance of the CHKDDSSPE command, a block of 1000 bytes is passed
containing only literals.
While spell checking is occurring, the CPU is very busy.
Command parameters *CMD
SRCFILE The qualified file name of the source file to be
checked. QDDSSRC 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.
SRCTYP The source type to be checked. *DSPPRT is the
default to check any source types of DSPF or PRTF.
An individual type may be named for the types DSPF,
DSPF38, PRTF, or PRTF38.
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 does not output
the spooled file unless spelling errors occur.
*NO may be specified to retain the spooled file
whether spelling 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
ESCAPE A *YES/*NO value for whether to send the TAA9893
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 QDCT 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.
Only valid DDS specifications are checked.
If the error occurs on a continuation record (a literal spans
multiple source records), only the first record of the statement is
shown and its sequence number.
In some cases the wrong statement will be identified because of the
way in which the API returns information. See the previous
The following TAA Tools must be on your system:
EDTVAR Edit variable
FILEFDBCK File feedback
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
------ ---- --------- ---------- ----------
CHKDDSSPE *CMD TAATXTF QATTCMD
TAATXTFC *PGM CLP TAATXTFC QATTCL
TAATXTFR *PGM RPG TAATXTFR QATTRPG
TAATXTFR2 *PGM RPG TAATXTFR2 QATTRPG