|
Thanks Rick for helping so far. Now I know I am on the right track. I did the debug and found all the other things fine except SubLength and SubSize. (which I thought should have contained the field size.) Thanks, Sudha Sudha Ramanujan SunGard Futures Systems sramanujan@xxxxxxxxxxxxxxxxxx (312) 577 6179 (312) 577 6101 - Fax -----Original Message----- From: Rick.Chevalier@xxxxxxxxxxxxxxx [mailto:Rick.Chevalier@xxxxxxxxxxxxxxx] Sent: Friday, January 07, 2005 1:51 PM To: rpg400-l@xxxxxxxxxxxx Subject: RE: QMHRTVM Have you used debug to look at what is in your data array at the substitution variable offset? Just to make sure there is data at that location and to confirm what you think you should see is really there. The code looks fine. I don't see anything obviously wrong. Sorry I can't be of more help. Rick -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of SRamanujan@xxxxxxxxxxxxxxxxxx Sent: Friday, January 07, 2005 12:25 PM To: rpg400-l@xxxxxxxxxxxx Subject: RE: QMHRTVM Thanks Rick. Sorry about the typo. Below gets me the message from offset and I substring offset +1 to the length of LMSGR to get the message c eval TextPtr = %addr(Data(OSMsg)) The below gets me the details of fields in that data structure. c eval SubTextPtr = %addr(Data(OSSVfmt)) I assumed the data structure SubMsgInfo will contain all the respective info but I can only get the type and not the length of the field. Sudha Ramanujan SunGard Futures Systems sramanujan@xxxxxxxxxxxxxxxxxx (312) 577 6179 (312) 577 6101 - Fax -----Original Message----- From: Rick.Chevalier@xxxxxxxxxxxxxxx [mailto:Rick.Chevalier@xxxxxxxxxxxxxxx] Sent: Friday, January 07, 2005 11:11 AM To: rpg400-l@xxxxxxxxxxxx Subject: RE: QMHRTVM <snip> I look for number of fields defined from position 27 to 40B <snip> I think this is a typo. The number of substitution field formats begins in 37 not 27. Your data structure looks right. <snip> then I get the field description offset at position returned in 89 to 92B <snip> What do you do with the offset? Rick -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of SRamanujan@xxxxxxxxxxxxxxxxxx Sent: Friday, January 07, 2005 10:46 AM To: rpg400-l@xxxxxxxxxxxx Subject: RE: QMHRTVM Thanks Rick. I am using RTVM0300 format. I paste my code below. d TextPtr s * d SubTextPtr s * d WPMsgInfo ds d Data 1 dim(32767) d BytesRet 1 4B 0 d BytesAvail 5 8B 0 d MsgSevL 9 12B 0 d AlertIndex 13 16B 0 d AlertOpt 17 25 d LogInd 26 26 d MsgID 27 33 d Reserved1 34 36 d #SVarFmt 37 40B 0 d CCSIDText 41 44B 0 d CCSIDData 45 48B 0 d CCSIRText 49 52B 0 d OSDftRep 53 56B 0 d LDftRepR 57 60B 0 d LDftRepA 61 64B 0 d OSMsg 65 68B 0 d LMsgR 69 72B 0 d LMsgA 73 76B 0 d OSMsgH 77 80B 0 d LMsgHR 81 84B 0 d LMsgHA 85 88B 0 d OSSVFmt 89 92B 0 d LSVFmtR 93 96B 0 d LSVFmtA 97 100B 0 d LSVFmtE 101 104B 0 d WPMsgText ds BASED(TextPtr) d MsgText 300 d WPError ds d EBytesP 1 4b 0 INZ(40) d EBytesA 5 8b 0 d EMsgID 9 15 d EReserved 16 16 d EData 17 56 d SubMsgInfo ds BASED(SubTextPtr) d SubLength 1 4B 0 d SubSize 5 8B 0 d SubType 9 18 c EXSR $RTVMSG c dou (BytesRet > BytesAvail) c eval TextPtr = %addr(Data(OSMsg)) c eval MsgR = LMsgR c exsr getmsg c if (LMsgHr > 0) c eval TextPtr = %addr(Data(OSMsgH)) c eval MsgR = LMsgHR c exsr getmsg c endif c eval SubTextPtr = %addr(Data(OSSVfmt)) Sudha Ramanujan SunGard Futures Systems sramanujan@xxxxxxxxxxxxxxxxxx (312) 577 6179 (312) 577 6101 - Fax -----Original Message----- From: Rick.Chevalier@xxxxxxxxxxxxxxx [mailto:Rick.Chevalier@xxxxxxxxxxxxxxx] Sent: 2005年1月7日 10:13 To: rpg400-l@xxxxxxxxxxxx Subject: RE: QMHRTVM Could you expand on this some? What return format are you using? Could you provide the DS definition containing the number of fields and description offset? Rick -----Original Message----- From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]On Behalf Of SRamanujan@xxxxxxxxxxxxxxxxxx Sent: Friday, January 07, 2005 9:41 AM To: rpg400-l@xxxxxxxxxxxx Subject: QMHRTVM Hi all, I am trying to use the API to retrieve message from a message file. I am not able to retrieve the data field information. I look for number of fields defined from position 27 to 40B then I get the field description offset at position returned in 89 to 92B use the subfield structure as follows: d SubMsgInfo ds BASED(SubTextPtr) d SubLength 1 4B 0 d SubSize 5 8B 0 d SubType 9 18 Referring above structure, I get the type of field(s) defined but am still unable to get the length. Is there any way I could get to this? TIA, Sudha Sudha Ramanujan SunGard Futures Systems sramanujan@xxxxxxxxxxxxxxxxxx (312) 577 6179 (312) 577 6101 - Fax -- 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. Privileged and Confidential. This e-mail, and any attachments there to, is intended only for use by the addressee(s) named herein and may contain legally privileged or confidential information. If you have received this e-mail in error, please notify me immediately by a return e-mail and delete this e-mail. You are hereby notified that any dissemination, distribution or copying of this e-mail and/or any attachments thereto, is strictly prohibited. Privileged and Confidential. This e-mail, and any attachments there to, is intended only for use by the addressee(s) named herein and may contain legally privileged or confidential information. If you have received this e-mail in error, please notify me immediately by a return e-mail and delete this e-mail. You are hereby notified that any dissemination, distribution or copying of this e-mail and/or any attachments thereto, is strictly prohibited. -- 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. Privileged and Confidential. This e-mail, and any attachments there to, is intended only for use by the addressee(s) named herein and may contain legally privileged or confidential information. If you have received this e-mail in error, please notify me immediately by a return e-mail and delete this e-mail. You are hereby notified that any dissemination, distribution or copying of this e-mail and/or any attachments thereto, is strictly prohibited. -- 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.