ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum IndexWebSphere Interchange Server + AdaptersHow to access the Input BO structure for mapping to an XML

Post new topicReply to topic
How to access the Input BO structure for mapping to an XML View previous topic :: View next topic
Author Message
prk
PostPosted: Fri Jun 16, 2006 8:13 am Post subject: How to access the Input BO structure for mapping to an XML Reply with quote

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
View user's profile Send private message
vk
PostPosted: Mon Jun 19, 2006 7:46 pm Post subject: Reply with quote

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
View user's profile Send private message
prk
PostPosted: Fri Jun 23, 2006 11:57 am Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexWebSphere Interchange Server + AdaptersHow to access the Input BO structure for mapping to an XML
Jump to:



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
Protected by Anti-Spam ACP


Theme by Dustin Baccetti
Powered by phpBB 2001, 2002 phpBB Group

Copyright MQSeries.net. All rights reserved.