|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
  |
|
How to access the Input BO structure for mapping to an XML |
View previous topic :: View next topic |
Author |
Message
|
prk |
Posted: Fri Jun 16, 2006 8:13 am Post subject: How to access the Input BO structure for mapping to an XML |
|
|
Centurion
Joined: 17 Feb 2004 Posts: 102
|
Hi,
This is the message that lands in the Broker (WBIMB) input queue from SAP. Used mySAP ODA to generate Business objects using the mySAP Adaptare. I need to map it to an XML going out but am having an issue accessing the elements of the Input node.
Here is the Input message to broker and at the end is the coding in ESQL to map this to an XML. Any help would be greatly appreciated. The ouput generates only the Hardcoded values but none of the mapped ones using Input root.
Ane help is greatly appreciated.
------------------------------------------------------------------------------------
‡ ! l MD ÿÿÿÿ 3 MQHRF2 AMQ PRH354D D€Pó à PRH354D mqm 441 java 2006061416133705 ÿÿÿÿ " RFH ˜ ¸MQSTR ¸ L<mcd><Msd>xml</Msd><Set>4</Set><Type>sap_zmkal</Type><Fmt>CwXML</Fmt></mcd> d<jms><Dst>queue:///SAPCONNECTOR/DELIVERYALIASQUEUE</Dst><Tms>1150301617042</Tms><Dlv>2</Dlv></jms> ¸<usr><WSDLBinding>sap_zmkalAgentDeliveryBinding</WSDLBinding><WSDLOperation>sap_zmkalCreate</WSDLOperation><PrivacyLevel>None</PrivacyLevel><MessageType>sap_zmkal</MessageType></usr> <?xml version="1.0" encoding="UTF-8"?>
<sap_zmkal:sap_zmkal xmlns:sap_zmkal="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/sap_zmkal" xmlns:sap_zmkal_cwdata="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/sap_zmkal_cwdata" xmlns:sap_zmkal_z2mkal000="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/sap_zmkal_z2mkal000" xmlns:sap_idoccontrol="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/sap_idoccontrol" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.ibm.com/websphere/crossworlds/2002/BOSchema/sap_zmkal file:sap_zmkal.xsd" version="3.0.0" verb="Create" locale="en_US" delta="false">
<sap_zmkal:Control_record>
<sap_idoccontrol:sap_idoccontrol version="1.0.0" verb="" locale="en_US" delta="false">
<sap_idoccontrol:Name_of_table_structure>EDI_DC40</sap_idoccontrol:Name_of_table_structure>
<sap_idoccontrol:Client>226</sap_idoccontrol:Client>
<sap_idoccontrol:IDoc_number>0000000001312802</sap_idoccontrol:IDoc_number>
<sap_idoccontrol:SAP_Release_for_IDoc>640</sap_idoccontrol:SAP_Release_for_IDoc>
<sap_idoccontrol:Status_of_IDoc>30</sap_idoccontrol:Status_of_IDoc>
<sap_idoccontrol:Direction_for_IDoc_transmission>1</sap_idoccontrol:Direction_for_IDoc_transmission>
<sap_idoccontrol:Output_mode>2</sap_idoccontrol:Output_mode>
<sap_idoccontrol:Name_of_basic_type>ZMKAL</sap_idoccontrol:Name_of_basic_type>
<sap_idoccontrol:Logical_message_type>ZMKAL</sap_idoccontrol:Logical_message_type>
<sap_idoccontrol:EDI_message_type>ZMKAL</sap_idoccontrol:EDI_message_type>
<sap_idoccontrol:Sender_port>SAPD01</sap_idoccontrol:Sender_port>
<sap_idoccontrol:Partner_type_of_sender>LS</sap_idoccontrol:Partner_type_of_sender>
<sap_idoccontrol:Partner_number_of_sender>ALE226</sap_idoccontrol:Partner_number_of_sender>
<sap_idoccontrol:Receiver_port>B000000001</sap_idoccontrol:Receiver_port>
<sap_idoccontrol:Partner_type_of_recipient>LS</sap_idoccontrol:Partner_type_of_recipient>
<sap_idoccontrol:Partner_number_of_recipient>RM06_PMX</sap_idoccontrol:Partner_number_of_recipient>
<sap_idoccontrol:IDoc_creation_date>20060614</sap_idoccontrol:IDoc_creation_date>
<sap_idoccontrol:IDoc_creation_time>121334</sap_idoccontrol:IDoc_creation_time>
<sap_idoccontrol:EDI_ALE_Serialization_field>20060501125007</sap_idoccontrol:EDI_ALE_Serialization_field>
</sap_idoccontrol:sap_idoccontrol>
</sap_zmkal:Control_record>
<sap_zmkal:Data_record>
<sap_zmkal_cwdata:sap_zmkal_cwdata version="3.0.0" verb="" locale="en_US" delta="false">
<sap_zmkal_cwdata:sap_zmkal_z2mkal000 size="1">
<sap_zmkal_z2mkal000:sap_zmkal_z2mkal000 version="3.0.0" verb="" locale="en_US" delta="false">
<sap_zmkal_z2mkal000:MANDT>226</sap_zmkal_z2mkal000:MANDT>
<sap_zmkal_z2mkal000:MATNR>B00031861200</sap_zmkal_z2mkal000:MATNR>
<sap_zmkal_z2mkal000:WERKS>RM06</sap_zmkal_z2mkal000:WERKS>
<sap_zmkal_z2mkal000:VERID>0003</sap_zmkal_z2mkal000:VERID>
<sap_zmkal_z2mkal000:STLAL>06</sap_zmkal_z2mkal000:STLAL>
<sap_zmkal_z2mkal000:PLNNR>50003352</sap_zmkal_z2mkal000:PLNNR>
<sap_zmkal_z2mkal000:ALNAL>01</sap_zmkal_z2mkal000:ALNAL>
<sap_zmkal_z2mkal000:TEXT1>VAL-0000901</sap_zmkal_z2mkal000:TEXT1>
<sap_zmkal_z2mkal000:BSTMI> 0.000</sap_zmkal_z2mkal000:BSTMI>
<sap_zmkal_z2mkal000:BSTMA> 0.000</sap_zmkal_z2mkal000:BSTMA>
</sap_zmkal_z2mkal000:sap_zmkal_z2mkal000>
</sap_zmkal_cwdata:sap_zmkal_z2mkal000>
</sap_zmkal_cwdata:sap_zmkal_cwdata>
</sap_zmkal:Data_record>
<sap_zmkal:ObjectEventId>SAPConnector_1150301617035_2</sap_zmkal:ObjectEventId>
</sap_zmkal:sap_zmkal>
-----------------------------------------------------------------------------------
CREATE PROCEDURE TransformMessage() BEGIN
DECLARE MsgId CHAR;
DECLARE strInRootTag CHAR;
DECLARE strInRootNS CHAR;
DECLARE strOutRootTag CHAR;
DECLARE strMANDT CHAR;
DECLARE strMATNR CHAR;
DECLARE strWERKS CHAR;
DECLARE strVERID CHAR;
DECLARE strSTLAL CHAR;
DECLARE strPLNNR CHAR;
DECLARE strALNAL CHAR;
DECLARE strTEXT1 CHAR;
DECLARE strBSTMI CHAR;
DECLARE strBSTMA CHAR;
--DECLARE strZPVTEXT CHAR;
--SET OutputRoot.Properties.MessageDomain = 'MRM';
SET OutputRoot.Properties.MessageDomain = 'XML';
SET OutputRoot.Properties.MessageSet = 'IVKG7EO002001';
SET OutputRoot.Properties.MessageFormat = 'XML1';
IF InputRoot.MQRFH2.mcd.Type = 'sap_zmkal' THEN
SET strInRootTag = 'sap_zmkal_z2mkal000:sap_zmkal_z2mkal000';
SET strInRootNS = 'sap_zmkal_z2mkal000';
SET strOutRootTag = 'ZMKAL';
END IF;
SET strMANDT = strInRootNS ||':MANDT';
SET strMATNR = strInRootNS ||':MATNR';
SET strWERKS = strInRootNS ||':WERKS';
SET strVERID = strInRootNS ||':VERID';
SET strSTLAL = strInRootNS ||':STLAL';
SET strPLNNR = strInRootNS ||':PLNNR';
SET strALNAL = strInRootNS ||':ALNAL';
SET strTEXT1 = strInRootNS ||':TEXT1';
SET strBSTMI = strInRootNS ||':BSTMI';
SET strBSTMA = strInRootNS ||':BSTMA';
--SET strZPVTEXT = strInRootNS ||':ZPVTEXT';
SET OutputRoot.MQMD.Format = 'MQSTR ';
SET OutputRoot.MQRFH2 = NULL;
SET OutputRoot.XML.(XML.XmlDecl).(XML.Version) = '1.0';
SET OutputRoot.XML.(XML.XmlDecl).(XML."Encoding") = 'UTF-8';
-- SET OutputRoot.XML.{strOutRootTag}."MessageId" = MsgId;
/*
SET OutputRoot.XML.{strOutRootTag}."MANDT" = InputRoot.XML.{strInRootTag}.{strMANDT};
SET OutputRoot.XML.{strOutRootTag}."MATNR" = InputRoot.XML.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."WERKS" = InputRoot.XML.{strInRootTag}.{strWERKS};
SET OutputRoot.XML.{strOutRootTag}."VERID" = InputRoot.XML.{strInRootTag}.{strVERID};
SET OutputRoot.XML.{strOutRootTag}."STLAL" = InputRoot.XML.{strInRootTag}.{strSTLAL};
SET OutputRoot.XML.{strOutRootTag}."PLNNR" = InputRoot.XML.{strInRootTag}.{strPLNNR};
SET OutputRoot.XML.{strOutRootTag}."ALNAL" = InputRoot.XML.{strInRootTag}.{strALNAL};
SET OutputRoot.XML.{strOutRootTag}."TEXT1" = InputRoot.XML.{strInRootTag}.{strTEXT1};
SET OutputRoot.XML.{strOutRootTag}."BSTMI" = InputRoot.XML.{strInRootTag}.{strBSTMI};
SET OutputRoot.XML.{strOutRootTag}."BSTMA" = InputRoot.XML.{strInRootTag}.{strBSTMA};
*/
--SET OutputRoot.XML.{strOutRootTag}."ZPVTEXT" = InputRoot.XML.{strInRootTag}.{strZPVTEXT};
SET OutputRoot.XML.{strOutRootTag}."MANDT" = 'Start of Test';
SET OutputRoot.XML.{strOutRootTag}."MATNR" = InputRoot.XML.sap_zmkal:Data_record.sap_zmkal_cwdata:sap_zmkal_cwdata.sap_zmkal_cwdata:sap_zmkal_z2mkal000.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR1" = InputRoot.XML.sap_zmkal:Data_record.sap_zmkal_cwdata:sap_zmkal_cwdata.sap_zmkal_cwdata:sap_zmkal_z2mkal000.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR2" = InputRoot.XML.sap_zmkal_cwdata:sap_zmkal_cwdata.sap_zmkal_cwdata:sap_zmkal_z2mkal000.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR3" = InputRoot.XML.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR4" = InputRoot.XML.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR5" = InputRoot.XML.sap_zmkal:Data_record.sap_zmkal_cwdata:sap_zmkal_cwdata.sap_zmkal_cwdata:sap_zmkal_z2mkal000.{strInRootTag}.{strMATNR};
SET OutputRoot.XML.{strOutRootTag}."MATNR6" = InputRoot.XML.strMATNR;
SET OutputRoot.XML.{strOutRootTag}."MATNR7" = InputRoot.XML.MATNR;
SET OutputRoot.XML.{strOutRootTag}."MATNR8" = InputRoot.XML.sap_zmkal_z2mkal000:sap_zmkal_z2mkal000.sap_zmkal_z2mkal000:MATNR;
SET OutputRoot.XML.{strOutRootTag}."MATNR8" = InputRoot.XML.sap_zmkal_z2mkal000:MATNR;
SET OutputRoot.XML.{strOutRootTag}."MATNR9" = InputRoot.XML.SAPorder.MATNR;
SET OutputRoot.XML.{strOutRootTag}."MATNR10" = InputRoot.XML.SAPorder:MATNR;
SET OutputRoot.XML.{strOutRootTag}."MANDT1" = 'END OF Test';
SET OutputRoot.Properties.MessageType = strOutRootTag;
END;
------------------------------------------------------------------------------------- |
|
Back to top |
|
 |
vk |
Posted: Mon Jun 19, 2006 7:46 pm Post subject: |
|
|
Partisan
Joined: 20 Sep 2005 Posts: 302 Location: Houston
|
If you have the XSD which is defined in the connector repository, then you can import the XSD and create an XML message set in WMB.
Then you dont have to put in all the namespace settings in the ESQL. You can just drag and drop the fields from the message set definition, if you are using a mapping node. I think content assist in compute node will also help in doing the mapping.
Regards,
VK. |
|
Back to top |
|
 |
prk |
Posted: Fri Jun 23, 2006 11:57 am Post subject: |
|
|
Centurion
Joined: 17 Feb 2004 Posts: 102
|
Hi VK,
I created an XML message set in Message Broker 6.0 and referenced it in my Flow. Here is how I am accessing it in my esql
SET OutputRoot.XML.{strOutRootTag}."Test1" = InputRoot.MRM.BSTMI;
SET OutputRoot.XML.{strOutRootTag}."Test2" = InputRoot.MRM.BSTMA;
Where the BSTMI, BSTMA, etc are written using the Content assist in Compute node for the mapping. Running the flow in Debug mode also results in Empty row returned for those values.
What am I doing wrong ? |
|
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
|
|
|
|