|
here it is : One CL to change msgQ One procedure to receive message One main PGM to make decision for recevied messages. These pgm are old, so do not tke care about the style. I think that it will give you the basic idea. Hope this help. For the pdf, lines preceded by a comma are in /copy. PGM MONMSG MSGID(CPF0000) CHGMSGQ MSGQ(*USRPRF) DLVRY(*BREAK) PGM(*LIBL/£_RCVMSG) CHGMSGQ MSGQ(*WRKSTN) DLVRY(*BREAK) PGM(*LIBL/£_RCVMSG) ENDPGM £_RcvMSG is the pgm that will receive user messages. here is the procedure for RCVMSG : global : d DftAct s 10 inz('*REMOVE ') d DftFmt s 8 inz('RCVM0100') d DftTyp s 10 inz('*ANY ') d DftKey s 4 inz(' ') d DftWait s 10u 0 inz(0) d DftLib s 10 inz('*LIBL ') * d WAct s 10 d WKey s 4 d WLib s 10 * D ApiError ds Export D Bytesavail 10u 0 inz(%size(ApiError)) D Bytesused 10u 0 D ExcptId 7 D ExcptId2 1 D ExcptDta 256 P RcvMsg B Export D PI 1024 Varying d QName 10 Value d MsgKey 4 Value Options(*nopass) d MsgAct 10 Value Options(*nopass) d QLib 10 Value Options(*nopass) * c If %parms<2 <---1---------+ c Eval WKey = DftKey | c -X c Eval WKey = MsgKey | c Endif <---1---------+ * c If %parms<3 <---1---------+ c or MsgAct=' ' | c Eval WAct = DftAct | c -X c Eval Wact = MsgAct | c Endif <---1---------+ * c If %parms<4 <---1---------+ c Eval WLib = DfTLib | c -X c Eval Wlib = QLib c Endif <---1-------- * c Eval QualName = QName + Wlib * c Callp QMHRCVM( c RcvTxt : c RcvLen : c DftFmt : c QualName : c DftTyp : c WKey : c DftWait : c Wact : c ApiError) * c Return RcvTxt * P E ----- Original Message ----- From: "Simonse, Arco (CMK)" <ArcoSimonse@xxxxxxxxxxxxxxxxx> To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx> Sent: Monday, June 20, 2005 9:53 AM Subject: RE: formatting message content > Hi Richard, > > I have very little experience in message handling, so I would be very > pleased if you can send me an example. > > Thanks, Arco Simonse > > > -----Oorspronkelijk bericht----- > > Van: rpg400-l-bounces@xxxxxxxxxxxx > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Namens Richard ECUYER > > Verzonden: maandag 20 juni 2005 09:38 > > Aan: RPG programming on the AS400 / iSeries > > Onderwerp: Re: formatting message content > > > > in this case i will use a srvpgm to display message, only one > > screen of one field (with wrap keyword like someone suggest) > > and make a little change to the user MSGQ (chgmsgq) make it > > *break and add you own message to monitor the MSGQ. > > I did this yet, it works fine except that only one job by > > user can be monitor because of the *BREAK mode. > > I can send you the piece of code to monitor the messages if you want. > > > > Hope this help. > > > > > > ----- Original Message ----- > > From: "Simonse, Arco (CMK)" <ArcoSimonse@xxxxxxxxxxxxxxxxx> > > To: "RPG programming on the AS400 / iSeries" <rpg400-l@xxxxxxxxxxxx> > > Sent: Monday, June 20, 2005 8:02 AM > > Subject: RE: formatting message content > > > > > > > Hi Richard, > > > > > > I realize that I did not make myself very clear. Sorry for that. > > > I do already use QMHRTVM. I get the message text from the > > message file, > > > formatted with the format characters and containing the substituted > > > variables. > > > But once I have it, I want to display the message text to > > the user. And > > > there is the problem. Do I have to parse the text into > > display fields > > > and show it by executing a display format, or is there > > somewhere an API > > > or command that displays a message to the user? It is not > > enough to add > > > the message to the msgq of the user, it has to be a kind of > > > break-message because it's neccessary that the user takes > > notice of the > > > message immediately. > > > > > > Thanks, Arco Simonse > > > > > > > -----Oorspronkelijk bericht----- > > > > Van: rpg400-l-bounces@xxxxxxxxxxxx > > > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Namens Richard ECUYER > > > > Verzonden: zaterdag 18 juni 2005 09:41 > > > > Aan: RPG programming on the AS400 / iSeries > > > > Onderwerp: Re: formatting message content > > > > > > > > There is an APi that retrieve a message formatted with > > > > variables : QMHRTVM Here is a sample : > > > > > > > > * > > > > * Variables locales > > > > ...................................................... > > > > d RcvTxt s 1024 > > > > d RcvLen s 10u 0 > > > > d FmtName s 8 > > > > d QualName s 20 > > > > d RplData s 1024 Varying > > > > d RplLen s 10u 0 > > > > d RplValue s 10 > > > > d Rtnctl s 10 > > > > * > > > > D Dsmessage ds > > > > D Len1 10u 0 > > > > D Len2 10u 0 > > > > D Len3 10u 0 > > > > D Len4 10u 0 > > > > D Len5 10u 0 > > > > D Len6 10u 0 > > > > D TxtHlp 1024 > > > > * > > > > c Eval QualName = MsgFil + MsgLib > > > > c Eval FmtName = 'RTVM0100' > > > > c Eval RcvLen = %len(DsMessage) > > > > c Eval RplData = MsgDta > > > > c Eval RplLen = %len(MsgDta) > > > > c Eval RplValue = '*YES' > > > > c Eval RtnCtl = '*NO' > > > > * > > > > c Callp QMHRTVM( > > > > c DsMessage: > > > > c RcvLen : > > > > c FmtName : > > > > c MsgId : > > > > c QualName : > > > > c RplData : > > > > c RplLen : > > > > c RplValue : > > > > c Rtnctl : > > > > c ApiError) > > > > > > > > > > > > ----- Original Message ----- > > > > From: "Simonse, Arco (CMK)" <ArcoSimonse@xxxxxxxxxxxxxxxxx> > > > > To: "RPG programming on the AS400 / iSeries" > > <rpg400-l@xxxxxxxxxxxx> > > > > Sent: Friday, June 17, 2005 11:19 PM > > > > Subject: RE: formatting message content > > > > > > > > > > > > > Hi Carel, > > > > > > > > > > Thanks for pointing me to this API. I hadn't thought of > > > > really putting > > > > > the message on a message queue, my first intentention was > > > > to retrieve > > > > > the message description directly from the message file. > > But via the > > > > > queue is better I realize now. And thank you for > > explaining me the > > > > > CNTFLD/WRDWRAP keywords, they were new for me. > > > > > > > > > > Best regards, > > > > > Arco Simonse > > > > > -- > > > > > > -----Oorspronkelijk bericht----- > > > > > > Van: rpg400-l-bounces@xxxxxxxxxxxx > > > > > > [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Namens Carel Teijgeler > > > > > > Verzonden: vrijdag 17 juni 2005 22:44 > > > > > > Aan: rpg400-l@xxxxxxxxxxxx > > > > > > Onderwerp: Re: formatting message content > > > > > > > > > > > > Arco, > > > > > > > > > > > > If you know the MSGID and the MSGDTA for those substitutuion > > > > > > variables, then you can use the Send Programme Message and > > > > > > Receive Programme Message APIs. In the receiver variable of > > > > > > the second API you get the message in subbfield MSG (IIRC). > > > > > > > > > > > > Show the text in a display field with CNTFLD(60) and WRDWRAP, > > > > > > no formatting required. > > > > > > > > > > > > Success. > > > > > > > > > > > > Regards, > > > > > > Carel Teijgeler. > > > > > > > > > > > > *********** REPLY SEPARATOR *********** > > > > > > > > > > > > On 17-6-05 at 18:14 Simonse, Arco \(CMK\) wrote: > > > > > > > > > > > > >I use the QMHRTVM API to retrieve message descriptions from > > > > > > the message > > > > > > >file. If I want to show the retrieved second-level message > > > > > > text in my > > > > > > >program to the user, I will have to reformat this retrieved > > > > > > text, because it is one long text. > > > > > > >Of course I can go and write my own text parser to > > reformat the > > > > > > >messagetext by the use of the formatting characters &N, &P, > > > > > > and &B that are in the messagetext. > > > > > > >But I wonder if there's another way to do it. Maybe an API > > > > > > or some other solution I don't know of. > > > > > > > > > > > > > >Any point would be appreciated. > > > > > > > > > > > > > > > > > > > > > > > > -- > > > -- > > > DISCLAIMER: > > > This message contains information that may be privileged or > > > confidential and is the property of C.Meijer B.V. It is > > intended only for > > the person to whom it is addressed. If you are not the > > intended recipient, > > you are not authorized to read, print, retain, > > copy,disseminate, distribute, > > or use this message or any part thereof. If you > > > receive this message in error, please notify the sender > > immediately and > > delete all copies of this message. > > > > > > This footnote also confirms that this email message has > > been swept by the > > presence of computer viruses > > > > > > > > > -- > > > This is the RPG programming on the AS400 / iSeries > > (RPG400-L) mailing list > > > To post a message email: RPG400-L@xxxxxxxxxxxx > > > To subscribe, unsubscribe, or change list options, > > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > > > or email: RPG400-L-request@xxxxxxxxxxxx > > > Before posting, please take a moment to review the archives > > > at http://archive.midrange.com/rpg400-l. > > > > > > > > > > -- > > This is the RPG programming on the AS400 / iSeries (RPG400-L) > > mailing list > > To post a message email: RPG400-L@xxxxxxxxxxxx > > To subscribe, unsubscribe, or change list options, > > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > > or email: RPG400-L-request@xxxxxxxxxxxx > > Before posting, please take a moment to review the archives > > at http://archive.midrange.com/rpg400-l. > > > > > DISCLAIMER: > This message contains information that may be privileged or > confidential and is the property of C.Meijer B.V. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain, copy,disseminate, distribute, or use this message or any part thereof. If you > receive this message in error, please notify the sender immediately and delete all copies of this message. > > This footnote also confirms that this email message has been swept by the presence of computer viruses > > > -- > This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list > To post a message email: RPG400-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/rpg400-l > or email: RPG400-L-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/rpg400-l. > >
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.