|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Dynamic RCD parsing. |
« View previous topic :: View next topic » |
Author |
Message
|
Jose_Manuel |
Posted: Thu Apr 10, 2003 12:34 am Post subject: Dynamic RCD parsing. |
|
|
Newbie
Joined: 10 Apr 2003 Posts: 2
|
Hi All:
I have to parse and format/route multiple message types arriving on a single queue
(like http://www.mqseries.net/phpBB2/viewtopic.php?t=8312).
I have a general MRM-CWF that can read all messages (all messages
have the same header, so this MRM-CWF just read the fields of the
header and store the rest as a Binary field).
From the fields in the header I know (asking a database), the particular
MRM-CWF (MessageSet & MessageType) of the message, and I want to
dinamically parse this message (without modifing the Message Flow).
I have tried to use:
MQInput (Generic Message) -> Compute (Change MessageType
and MessageSet) -> RCD -> Compute (Generic Transform
Concrete Message) -> MQOutput
...but I can't parse the message (I get an empty message).
(the ESQL code in the compute node (copy message headers selected) is:
SET OutputRoot.Properties.MessageDomain = 'MRM';
SET OutputRoot.Properties.MessageFormat = 'CWF';
SET OutputRoot.Properties.MessageSet = 'XXXXXX';
SET OutputRoot.Properties.MessageType = 'XXXXXXX';
)
Anybody knows if it can be done? (dinamically parsing a MRM Message
in a RCD or Compute node)
I don't want to include any information about the MessageType and
MessageSet in the Message Flow.
Any ideas welcome. |
|
Back to top |
|
 |
Jose_Manuel |
Posted: Wed Apr 23, 2003 6:18 am Post subject: A solution |
|
|
Newbie
Joined: 10 Apr 2003 Posts: 2
|
A working solution without RCS nodes (thanks to JMML from
IBM Business Consulting Services - Spain):
MQInput (MRM-General) -> Compute (Copy message headers)->
-> (MRM-Concrete).
ESQL Code in the Compute node:
DECLARE newMessageSet CHAR;
DECLARE newMessageType CHAR;
DECLARE msgBLOB BLOB;
...
code that gets from a DataBase and the 'header message fields'
the 'MessageSet' and 'MessageType' of the concrete message
and puts it in newMessageSet and newMessageType.
...
set msgBLOB=BITSTREAM(InputRoot.MRM);
SET OutputRoot.Properties.MessageDomain='MRM';
SET OutputRoot.Properties.MessageFormat='CWF';
SET OutputRoot.Properties.MessageSet=newMessageSet;
SET OutputRoot.Properties.MessageType=newMessageType;
CREATE LASTCHILD OF OutputRoot DOMAIN ('MRM')
PARSE(msgBLOB, 546, 437, newMessageSet, newMessageType,
'CWF'); |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|