SNDLNGMSG SEND LONG MESSAGE TAAMSIT
The Send Long Message command is intended as a debugging aid to send
one or more messages from a large variable. This allows the value of
the variable to be more easily seen on a command entry display or in
the job log. The message length may be between 10 and 512. A ruler
A typical series of commands would be:
DCL &CMD *CHAR LEN(3000)
CHGVAR &CMD (' ... ')
CALL QCMDEXC PARM(&CMD 3000)
After building up the command, SNDLNGMSG sends one or more messages
to the program message queue (by default) of the program using
SNDLNGMSG. If the CALL to QCMDEXC fails, the complete set of
messages that were sent will exist in the job log. If the CALL
completes normally, a RMVMSG CLEAR(*ALL) may be used to clear out the
job log messages.
The length of the message defaults to 512 bytes (the largest message
that can be sent). A shorter length is often desirable if attempting
to keep each message on one line of text for either the command entry
display or in the job log.
A special value *FMT exists for the MSGLEN parameter. This allows
formatting of the text (words are not split over 2 lines) and the
length of each line is constrained as follows:
** If the command is run in an interactive job, messages designed
for a command entry display with a length of 73 bytes are
** If the command is run in a batch job, messages designed for a
job log with a length of 58 bytes are used.
If you do not want the 'non'splitting' function, but do want to
specify a length of the line, typical lengths would be:
Command entry line = 73 Max on one line of a display
Job log = 58 Max on job log message
A ruler may be requested to assist in finding specific positions
within the message. If a ruler is needed, a typical message length
would be 50. This will allow you to more easily count positions.
The full message value is examined and only those segments (defined
by the MSGLEN parameter) will be sent as a message if they are
SNDLNGMSG escape messages you can monitor for
None. Escape messages from based on functions will be re-sent.
Command parameters *CMD
MSG The message to be split up by the MSGLEN value and
sent as separate messages. Up to 5000 bytes may be
The full message value is examined and only those
segments (defined by the MSGLEN parameter) will be
sent as a message if they are non-blank
MSGLEN The message length to be sent. The default is 512
which is the maximum length message that can be
sent. The length must be between 10 and 512.
If you just need to see the message text, 512 is a
*FMT should be specified if you want formatted text
(words are not split between two lines). The length
of the line will be 73 if the command is run
interactively and 58 if the command is run in batch.
If you want words to be split over the lines,
typical choices are 73 for a command entry message
and 58 for a job log message.
If RULER(*YES) is specified, the message length must
be between 20 and 80. A typical choice would be 50
to assist you in counting specific positions within
RULER A *YES/*NO value for whether a 'ruler' should be
sent as the first message identifying the positions.
*NO is the default to not send a 'ruler' message.
*YES may be specified to send a 'ruler' as the first
message. If *YES is specified, the MSGLEN value
must be between 20 and 80.
A typical length is 50 to allow a simple
determination of the exact positions within the
TOPGMQ The program message queue to send the message to.
The default is *SAME meaning the message queue of
the program using SNDLNGMSG. This allows the
program to clear out the messages if the program
completes normally by using RMVMSG CLEAR(*ALL).
*PRV may be entered to have the message sent to the
program prior in the call stack.
The following TAA Tools must be on your system:
SNDESCINF Send escape information
SNDESCMSG Send escape message
None, the tool is ready to use.
Objects used by the tool
Object Type Attribute Src member Src file
------ ---- --------- ---------- ----------
SNDLNGMSG *CMD TAAMSIT QATTCMD
TAAMSITC *PGM CLP TAAMSITC QATTCL
Added to TAA Productivity tools November 15, 2005