Skip to Content
0
Former Member
Aug 29, 2011 at 11:38 PM

Message Mapping - Cross Elements

51 Views

Hi, I have a problem and hopefully I can help. I am developing a mapping message and I need to transform a message with the message structure message_source to message_target structure. The idea is to convert the fields are columns in rows, similar to a crosstab

Message Source Structure

message_source (1..1)
   order_condition_table (0..1)
      item (0..unbounded)
         item_number (0..1)
            ZE01 (0..1)
            ZE02 (0..1)
            ZE03 (0..1)
   order_condition_aditional (0..1)
      item (0..unbounded)
         item_number (0..1)
            ZE04 (0..1)
            ZE05 (0..1)
            ZE06 (0..1)

Message Target Structure

message_target 1..1
    order_conditions 1..1
       item 0..unbounded
         item_number 0..1
         cond_type 0..1
         cond_value 0..1

Example Message Source

<message_source>
   <order_condition_table>
     <item>
       <item_number>0010</item_number>
       <ZE01>11</ZE01>
       <ZE02>12</ZE02>
       <ZE03>13</ZE03>
     </item>
     <item>
       <item_number>0020</item_number>
       <ZE01>21</ZE01>
       <ZE02>22</ZE02>
       <ZE03>23</ZE03>
     </item>
   </order_condition_table>
   <order_condition_aditional>
     <item>
       <item_number>0020</item_number>
       <ZE04>41</ZE04>
       <ZE05>51</ZE05>
       <ZE06>61</ZE06>
     </item>
   </order_condition_aditional>
</message_source>

Example Message Target

<message_target>
  <order_conditions>
      <item>
         <item_number>0010</item_number>
         <cond_type>ZE01</cond_type>
         <cond_value>11</cond_value>
      </item>
      <item>
         <item_number>0010</item_number>
         <cond_type>ZE02</cond_type>
         <cond_value>12</cond_value>
      </item>
      <item>
         <item_number>0010</item_number>
         <cond_type>ZE03</cond_type>
         <cond_value>13</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE01</cond_type>
         <cond_value>21</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE02</cond_type>
         <cond_value>22</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE03</cond_type>
         <cond_value>23</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE04</cond_type>
         <cond_value>41</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE05</cond_type>
         <cond_value>51</cond_value>
      </item>
      <item>
         <item_number>0020</item_number>
         <cond_type>ZE06</cond_type>
         <cond_value>61</cond_value>
      </item>
  </order_conditions>
</message_target>