ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Problem with accessing elements of message tree

Post new topic  Reply to topic
 Problem with accessing elements of message tree « View previous topic :: View next topic » 
Author Message
datspats
PostPosted: Wed May 09, 2007 1:54 am    Post subject: Problem with accessing elements of message tree Reply with quote

Voyager

Joined: 12 Apr 2007
Posts: 80
Location: Mumbai

Hello,

I am coming across the problem where the ESQL code is getting the NULL value when reading element of message tree in the MRM domain.

I am using RCD node for parsing and after this i have put trace node. Trade node to a file shows output with the Message tree generated under MRM as required.
e.g
(0x01000021):MRM = (
(0x01000013):DataMessageBody = (
(0x0300000B):ABC = 'XX000111'
(0x0300000B): CODE = 'CODEA'
)

and DataMessageBody is repeated for 1 or more than 1 time.

When I am reading the content of message in compute node using the statement InputRoot.MRM.DataMessageBody[1].ABC the value returned is NULL.

SET temp = InputRoot.MRM.DataMessageBody[1].ABC;
value of temp is NULL.


Could you all please let me now what is the problem? where I am going wrong.

regards
Back to top
View user's profile Send private message Yahoo Messenger
AkankshA
PostPosted: Wed May 09, 2007 2:20 am    Post subject: Reply with quote

Grand Master

Joined: 12 Jan 2006
Posts: 1494
Location: Singapore

Have u declared in your MRM parser that DataMessageBody element can have multiple occurence.... perhaps not i suppose

try this
SET temp = InputRoot.MRM.DataMessageBody.ABC
_________________
Cheers
Back to top
View user's profile Send private message Visit poster's website
datspats
PostPosted: Wed May 09, 2007 2:24 am    Post subject: Reply with quote

Voyager

Joined: 12 Apr 2007
Posts: 80
Location: Mumbai

Hi Akanksha,

I have already mentioned the same. DataMessageBody element is repeated 1 to -1 in message set.

regards
Back to top
View user's profile Send private message Yahoo Messenger
AkankshA
PostPosted: Wed May 09, 2007 2:29 am    Post subject: Reply with quote

Grand Master

Joined: 12 Jan 2006
Posts: 1494
Location: Singapore

oops... i am sorry, missed that line
_________________
Cheers
Back to top
View user's profile Send private message Visit poster's website
Monk
PostPosted: Wed May 09, 2007 2:30 am    Post subject: Reply with quote

Master

Joined: 21 Apr 2007
Posts: 282

Can you post the properties of your RCD node?
_________________
Thimk
Back to top
View user's profile Send private message
AkankshA
PostPosted: Wed May 09, 2007 2:35 am    Post subject: Reply with quote

Grand Master

Joined: 12 Jan 2006
Posts: 1494
Location: Singapore

hey your code appears fine to me

can you please try sending a msg with multiple occurence of DataMessageBody and verify using trace node that the tree is created properly....

if possible paste the o/p here
_________________
Cheers
Back to top
View user's profile Send private message Visit poster's website
datspats
PostPosted: Wed May 09, 2007 2:49 am    Post subject: Reply with quote

Voyager

Joined: 12 Apr 2007
Posts: 80
Location: Mumbai

Hi,

I have set the Properties for RCD node as
Message Domain is set to MRM, Rest Check box checked.

Whereas Message Set, Message Type, Message format details are captured at runtime using Properties section of the Root of the input message to the RCD node.
I am filling in the Properties section of Root in the one of the compute node which just before the RCD node.
This is the code in that compute node which is just before RCD node.
SET OutputRoot.Properties.MessageSet = 'Messagesetname';
SET OutputRoot.Properties.MessageType= 'MessageFormatname';
SET OutputRoot.Properties.MessageFormat='TDS';

I am having multiple (3) message types to be parsed in the same flow, that is why this approached is used (single RCD).
FYI : For other 2 messages types the above flow and code is working fine


the Trace node op is

(
(0x01000000):Properties = (
(0x03000000):MessageSet = 'IS_MS_IDX_2007'
(0x03000000):MessageType = 'TRADEMESSAGE'
(0x03000000):MessageFormat = 'TDS'
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2007-05-09 04:44:35.660'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'TESTIN'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = 'MQHRF2 '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d512042524b514d4752202020202002f23f4620083205'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'BRKQMGR '
(0x03000000):UserIdentifier = '154121 '
(0x03000000):AccountingToken = X'16010515000000e07b3c460068001818494617cae4030000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 's\154121\Desktop\rfhutil.exe'
(0x03000000):PutDate = DATE '2007-05-09'
(0x03000000):PutTime = GMTTIME '04:44:35.660'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):MQRFH2 = (
(0x03000000):Version = 2
(0x03000000):Format = ' '
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Flags = 0
(0x03000000):NameValueCCSID = 1208
(0x01000000):usr = (
(0x01000000):filename = (
(0x02000000): = 'tradeExp.idx'
)
)
(0x01000000):mcd = (
(0x01000000):Msd = (
(0x02000000): = 'mrm'
)
(0x01000000):Set = (
(0x02000000): = 'IS_MS_IDX_2007'
)
(0x01000000):Type = (
(0x02000000): = 'TRADEMESSAGE'
)
(0x01000000):Fmt = (
(0x02000000): = 'TDS'
)
)
)
(0x01000021):MRM = (
(0x01000013):TradeMessageBody = (
(0x0300000B):AAA-CODE = 'code2'
(0x0300000B):BBBB-CODE = 'EA'
(0x0300000B):CCCC-DATE = '070117'
.
.
.
.
.
and so on

(0x01000013):TradeMessageBody = (
(0x0300000B):AAA-CODE = 'code1'
(0x0300000B):BBBB-CODE = 'AIR EUR'
(0x0300000B):CCCC-DATE = '070117'

.
.
.
.
.
and so on
regards
Back to top
View user's profile Send private message Yahoo Messenger
datspats
PostPosted: Wed May 09, 2007 3:48 am    Post subject: Reply with quote

Voyager

Joined: 12 Apr 2007
Posts: 80
Location: Mumbai

Refresh...Please repond as this is very urgent issue.

regards
Back to top
View user's profile Send private message Yahoo Messenger
jefflowrey
PostPosted: Wed May 09, 2007 3:58 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

So what you're saying is, given the message you showed the trace of, when you execute the code
SET something = InputRoot.MRM.TradeMessageBody[1]."AAA-CODE";

Then the "something" variable is NULL, and not 'code2'?
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
sarat
PostPosted: Wed May 09, 2007 4:02 am    Post subject: Reply with quote

Centurion

Joined: 29 Jun 2005
Posts: 136
Location: India

Try using FIELDVALUE.......
_________________
With Regards,
Sarat.
Back to top
View user's profile Send private message
datspats
PostPosted: Wed May 09, 2007 6:31 am    Post subject: Reply with quote

Voyager

Joined: 12 Apr 2007
Posts: 80
Location: Mumbai

SET something = "InputRoot"."MRM"."TradeMessageBody"[1]."AAA-CODE"; then something is null.

anyways USER Trace shows also the same as NULL is assigned to the something.

regards
Back to top
View user's profile Send private message Yahoo Messenger
mlafleur
PostPosted: Wed May 09, 2007 6:37 am    Post subject: Reply with quote

Acolyte

Joined: 19 Feb 2004
Posts: 73

That's odd. I don't see any entries for 0x01000021 or 0x01000013 or 0x0300000B here:

http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/topic/com.ibm.etools.mft.fp8.doc/as08560_.htm

I would try accessing it with a MOVE statement with TYPE expression
Back to top
View user's profile Send private message
santy
PostPosted: Thu May 10, 2007 6:11 am    Post subject: Reply with quote

Centurion

Joined: 03 Nov 2006
Posts: 141

Hi datspats,

Can you try this code:

SET temp = InputRoot.MRM.DataMessageBody[1] ;
------

Else
SET temp = InputBody.DataMessageBody[1] ;
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Problem with accessing elements of message tree
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.