Author |
Message
|
bobWong |
Posted: Sat Aug 18, 2007 8:16 am Post subject: how to control the output message in MQOutput |
|
|
Newbie
Joined: 18 Aug 2007 Posts: 8
|
Hi Friends ,
I am new to WMB and now using V6. According to my tests, the message put into the MQOutput queue is just a sub tree of whole message tree in WMB runtime -- Seems only the message body is contained.
I am now dealing with XMLNSC domain. And now have such a issue , the logic of the runtime message structure :
XMLNSC
namespace1:MessageType1
namespace2:MessageType2
........
Is it possible to just put the namespace2:MessageType2 section to the output qeueu ?
I know there is a setting for output domain , something like Properties.MessageDomain='XMLNSC' . But seems can not deal with my case.
Thanks in advance. |
|
Back to top |
|
 |
Vitor |
Posted: Sat Aug 18, 2007 2:32 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
You can build the message body (used in the MQOutput node) to be anything you want. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
bobWong |
Posted: Sat Aug 18, 2007 4:44 pm Post subject: |
|
|
Newbie
Joined: 18 Aug 2007 Posts: 8
|
Thanks for your reply.
Quote: |
--------------------------------------------------------------------------------
You can build the message body (used in the MQOutput node) to be anything you want. |
Is the message body you mean here is also the message body in the runtime message tree ? If there is a case that there are many domains in the message body,
<MRM>
<........>
<XMLNSC>
<.........>
then , How I can make sure only one required domain is output in MQOutput ? Also, I may also need to only a sub section of a given domain , is there a way for that ? |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Aug 18, 2007 5:42 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You can build the tree presented to the output node however you choose.
You can therefore build it with only one domain in it.
You can therefore build it with only the piece of the input message that you need.
This should have been covered on the first day of the training you received. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
bobWong |
Posted: Sat Aug 18, 2007 6:54 pm Post subject: |
|
|
Newbie
Joined: 18 Aug 2007 Posts: 8
|
Thanks Jeff,
Yes, I know I can only have one domain in the message body, but in my scenario I need keep both a MRM and XMLNSC in it. I have an MQInput node to read XMLNSC data and in the flow , I constructed a MRM domain.
Here is a runtime capture of the data ,
Message
Properties
MessageSet:CHARACTER:
MessageType:CHARACTER:
MessageFormat:CHARACTER: Encoding:INTEGER:546
...............
..............
XMLNSC
XmlDeclaration
Version:CHARACTER:1.0
Encoding:CHARACTER:UTF-8
WbiCustomerCi
p:CHARACTER:http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/metadata
wbiaddress:CHARACTER:http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbiaddress
wbicustomerci:CHARACTER:http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci
xsi:CHARACTER:http://www.w3.org/2001/XMLSchema-instance
schemaLocation:CHARACTER:http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbicustomerci WbiCustomerCi.xsd http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/wbiaddress ../wbiaddress/Wbiaddress.mxsd http://www.ibm.com/xmlns/prod/websphere/j2ca/peoplesoft/metadata ../metadata/PeopleSoftASI.mxsd
Customerid:CHARACTER:1022
Date1:CHARACTER:2001-01-01
Time1:CHARACTER:12:00:00
Datetime1:CHARACTER:2001-12-31 12:00:00
Customerfirstname:CHARACTER:Customerfirstname
Customerlastname:CHARACTER:Customerlastname
Customerdob:CHARACTER:2001-01-01
InteractiveMode:CHARACTER:false
GetHistoryItems:CHARACTER:false
EditHistoryItems:CHARACTER:false
GetDummyRows:CHARACTER:false
control
methodName:CHARACTER:createWbiCustomerCi
MRM
Borrowed
VideoTitle:CHARACTER:title
Cost:INTEGER:200
I have tried sending all this data into a MQOutput, then the MQOutput node will thrown an exception... Seems MQOutput can handle only one domain in the body. Is that true ?
If yes, would it be possible to explicitly select which domain the MQOutput will deal with ?
Thanks.! |
|
Back to top |
|
 |
gkorodi |
Posted: Sun Aug 19, 2007 4:23 pm Post subject: |
|
|
Novice
Joined: 28 Sep 2003 Posts: 13 Location: Boston-London-Budapest
|
Going out on a limb here, since you have not given much info about input/output formats and requirements, but you can just set the Properties.MessageDomain to XML (if that is the output) and make the MRM structure one of the elements in your XMLNSC substree, which will be the actual message body of the MQ message.
If you need to output MRM, you can just set the Properties.MessageFormat/Type/etc. to the message set variables, and populate the MRM as needed.
There is no real need to output two domains in the same message! Maybe in a paralell universe?! _________________ Gabe "The Hun" Korodi |
|
Back to top |
|
 |
bobWong |
Posted: Sun Aug 19, 2007 6:34 pm Post subject: |
|
|
Newbie
Joined: 18 Aug 2007 Posts: 8
|
Quote: |
Going out on a limb here, since you have not given much info about input/output formats and requirements, but you can just set the Properties.MessageDomain to XML (if that is the output) and make the MRM structure one of the elements in your XMLNSC substree, which will be the actual message body of the MQ message.
If you need to output MRM, you can just set the Properties.MessageFormat/Type/etc. to the message set variables, and populate the MRM as needed.
There is no real need to output two domains in the same message! Maybe in a paralell universe?! |
Actually, I did not find I can set 'Properties.MessageDomain' in the content assist. I can only set MessageFormat/MessageSet/MessageType
Also, If I want to output the message body, is it a must that there is only one domain in the message body ? As you said, I need to make the MRM structure one of the elements in the XMLNSC substree....
Thanks! |
|
Back to top |
|
 |
kimbert |
Posted: Mon Aug 20, 2007 1:02 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You have not yet explained what you are trying to do, and why. That would really help. Anyway, the facts are:
- You cannot output a message tree containing more that one domain
- You CAN use ASBITSTREAM to serialize part of your message tree to a BLOB, and then output that BLOB as part of another message. I'm not telling you to do that - because I don't know what your requirements are yet |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Aug 20, 2007 1:46 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
bobWong wrote: |
As you said, I need to make the MRM structure one of the elements in the XMLNSC substree....
Thanks! |
So I'd go with kimbert's suggestion. (ASbitstream)
Assuming that your data is all text you can also cast the blob to char before setting the value of your xml element.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
|