Author |
Message
|
kirank |
Posted: Fri Jul 07, 2006 8:39 am Post subject: WBI SAP adapter with Message broker |
|
|
 Centurion
Joined: 10 Oct 2002 Posts: 136 Location: California
|
Hi,
We are using the WBI SAP adapter with message broker. For message broker IBM's documentation always tells you to create a message set for a business object and then use that message set to parse the message in MQ input node. Message sets tend to be proprietary so I was thinking of using XML parser on MQ Input node rather than MRM. So is it possible that SAP adapter writes a message to the queue in XML domain and then I can use default XML parser on Input node to get the message in XML domain. Then I can use something generic like a stylesheet to transform the message to other XML formats. Has anyody implemented SAP adapter or any other adapter like this with Message broker? Does it work?
Regards
Kiran |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jul 07, 2006 3:23 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Message sets aren't "proprietary". They are annotated XSD.
I believe that the SAP adapter does not produce well-formed XML messages. So I believe you will have to create a message set.
Honestly, though, it sounds like you don't actually want to use Broker - you want to use a lightweight XSLT engine. Which is fine, but you'll have trouble finding one that scales as well as Broker does - and if you ever really need to talk to something that doesn't speak XML, then you will have to spend a lot more time and effort trying to develop an XSLT that will create the necessary messages (I don't want to think about trying to write an XSLT that would understand packed decimals) than you would if you just used a message set. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kishoreraju |
Posted: Sat Jul 08, 2006 11:03 pm Post subject: |
|
|
Disciple
Joined: 30 Sep 2004 Posts: 156
|
If you are using WBI SAP Adapter with Message Broker. The Adater always gives an XML message with MQRFH2 headers(with Application specific data).you can XMLNS parser in the MQ Input Node.
But As per my Knowledge on adapters with Message broker you have to genarate a message set with the BO's that adapter is using and you have to specifiy the Message set information when you are configuring the adater . |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 10, 2006 12:51 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
then I can use default XML parser on Input node |
Never, ever use the XML domain for new message flows. Always use either XMLNS ( if on v5) or XMLNSC ( if on v6 ). |
|
Back to top |
|
 |
smeunier |
Posted: Thu Jul 13, 2006 6:13 am Post subject: |
|
|
 Partisan
Joined: 19 Aug 2002 Posts: 305 Location: Green Mountains of Vermont
|
I have large scale SAP WBIMB Adapter environment running. A Message Set is only required because when you build the BO and add it to the cfg, you must specify the message set id in the cfg for the adapter. The adapter then builds a RFH2 header containing this information and forces the parser to look for the Message set id in the dictionary. I built a message set for the Parent BO only to satisfy the dictionary requirement. I never used the message set for parsing and referenced the fields directly from the Inputroot.
Code: |
-- Enter SQL below this line. SQL above this line might be regenerated, causing any modifications to be lost.
DECLARE NS_control NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_sap_idoccontrol';
DECLARE NS_cwdata NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_wip_received_cwdata';
DECLARE NS_Root NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_wip_received';
DECLARE NS_seg1 NAMESPACE 'http://www.ibm.com/websphere/crossworlds/2002/BOSchema/MD_SAP_BO_z_wip_received_z2wip_received_wafcar000';
DECLARE RefToWafCar REFERENCE TO InputBody.NS_Root:"Data_record".NS_cwdata:"MD_SAP_BO_z_wip_received_cwdata".NS_cwdata:"MD_SAP_BO_z_wip_received_z2wip_received_wafcar000";
DECLARE RefToCtrl REFERENCE TO InputBody.NS_Root:"Control_record".NS_control:"MD_SAP_BO_sap_idoccontrol";
SET OutputRoot.XML.(XML.Element)Z_WIP_RECEIVED.IDOC.Z1WIP_RECEIVED_WAFCAR.WAFER_CARRIER_ID = RefToWafCar.NS_seg1:"MD_SAP_BO_z_wip_received_z2wip_received_wafcar000".NS_seg1:"WAFER_CARRIER_ID";
|
Hope this helps somewhat. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jul 13, 2006 6:35 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Point taken, but...
Quote: |
SET OutputRoot.XML.(XML.Element)Z_WIP_RECEIVED.IDOC.Z1WIP_RECEIVED_WAFCAR.WAFER_CARRIER_ID = RefToWafCar.NS_seg1:"MD_SAP_BO_z_wip_received_z2wip_received_wafcar000".NS_seg1:"WAFER_CARRIER_ID";
|
Did you read the post which preceded yours? XML domain should not be used for new message flows. Please use XMLNS or XMLNSC. |
|
Back to top |
|
 |
|