On 1/31/11 10:01 AM, Laine, Rogers wrote:
I have the below CL program that will not return the message text
from &MSGTXT in the RCVMSG command.
What am I missing here.
PGM PARM(&MSGKEY &TOMSGQ &TOLIB)
DCL &MSGKEY *CHAR 4
DCL &TOMSGQ *CHAR 10
DCL &TOLIB *CHAR 10
DCL &MSGTXT *CHAR 132
RCVMSG MSGQ(&TOLIB/&TOMSGQ) MSGTYPE(*ANY) +
KEYVAR(&MSGKEY) MSG(&MSGTXT)
SNDMSG MSG(&MSGTXT) TOUSR(MISRML1)
The program [as coded] works fine for me, considering that...
The MsgKey as a parameter is coded to function as a return value, not
as a means to locate any particular message. As Scott K suggests, use
MSGKEY(&MSGKEY) instead of KEYVAR(&MSGKEY), if intending to perform
selection of a message by its message key.
If there are no messages in the named non-program message queue, then
the value of &MSGTXT and &MSGKEY will be blanks, and the same effect for
when there were only "old messages" available on the *MSGQ. For
testing, note that the CL request to CHGMSGQ TheLib/TheMsgQname
RESET(*YES) may be valuable to reset any previously "received" messages
[old messages] left on the queue from either an explicit or a defaulted
RMV(*NO) on some prior RCVMSG [test] processing. An "old message" can
not be retrieved via MSGTYPE(*ANY) [nor via MSGTYPE(*INFO) noted in
another message as having had provided desirable results]; a MSGKEY()
must be utilized, or an "ordered" selection via MSGTYPE() such as
*FIRST, *LAST must be requested.
Regards, Chuck
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.