Posted: Wed Feb 03, 2010 4:39 am Post subject: SOAPRoot To MQRoot
Novice
Joined: 02 Feb 2010 Posts: 13
Hi all,
I m developing a code where i m getting a Web Service on a SOAPInput and using SOAPExtract i m removing the Envelop and others headers.
After this i m puting it on a compute node whose output should contain messageID in the MQRoot inside MQMD header.
But if i jus do
OutputRoot.MQMD.MsgID = InputRoot.MQMD.MsgID;
It creates a MQMD in SOAPRoot and as it does not contain any MsgID nothing is set ..
So how can i completely remove a Message and create a new Message
ALSO I DONOT NEED ANOTHER SUBFLOW .. coz this can be done by using a MQINPUT node .. i DONOT want that .. i want it in the same flow
Posted: Wed Feb 03, 2010 4:49 am Post subject: Re: SOAPRoot To MQRoot
Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
akshat.jain wrote:
But if i jus do
OutputRoot.MQMD.MsgID = InputRoot.MQMD.MsgID;
It creates a MQMD in SOAPRoot and as it does not contain any MsgID nothing is set ..
Post your code. Especially the part where you've built the new OutputRoot.
akshat.jain wrote:
So how can i completely remove a Message and create a new Message
Presumably you'd still want some details from the old message in the new one?
akshat.jain wrote:
ALSO I DONOT NEED ANOTHER SUBFLOW .. coz this can be done by using a MQINPUT node .. i DONOT want that .. i want it in the same flow
Why are you trying to manipulate a SOAP message without using a SOAP node? In any event if you use an MQInput node (which will work) you'll need a Compute node to manipulate the message.
What do you mean "another" subflow? Is this in a sub flow? If so, why? What's the design rational here? There's certainly no apparent reason why what you're suggesting couldn't be done in a single main flow. _________________ Honesty is the best policy.
Insanity is the best defence.
Posted: Wed Feb 03, 2010 6:10 am Post subject: Re: SOAPRoot To MQRoot
Centurion
Joined: 05 Dec 2006 Posts: 146 Location: Leersum, The Netherlands
akshat.jain wrote:
But if i jus do
OutputRoot.MQMD.MsgID = InputRoot.MQMD.MsgID;
It creates a MQMD in SOAPRoot and as it does not contain any MsgID nothing is set ..
Because your input is not MQ there is no InputRoot.MQMD, just add the MQHeader node to generate a MQMD.
If you really really want to do this in ESQL with a (kn)own MsgId then do first a ResetContentDescriptor to BLOB and then a Compute node with something like below.
Code:
SET OutputRoot.Properties = InputRoot.Properties;
CREATE LASTCHILD OF OutputRoot DOMAIN('MQMD') NAME 'MQMD';
SET OutputRoot.MQMD.Version = MQMD_CURRENT_VERSION;
SET OutputRoot.MQMD.Format = MQFMT_STRING;
SET OutputRoot.MQMD.MsgId = SUBSTRING(UUIDASBLOB || UUIDASBLOB FROM 1 FOR 24);
SET OutputRoot.MQMD.CodedCharSetId = InputRoot.Properties.CodedCharSetId;
SET OutputRoot.MQMD.Encoding = InputRoot.Properties.Encoding;
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