Search This Blog

Monday, November 28, 2011

Message Mapping Simplified - Part I


It was initially very hard for me to understand the message mapping when we are trained on SAP XI.I browsed help.sap.com and ended up getting more confused. After working with SAP XI for some time however the intuition is changed. I will try to simplify the message mapping by elucidating the concepts in the nutshell. Blog does not cover the message mapping in detail but just gives the basic understanding for any new XI developers. Part 1 of the blog provides a base for conceptual understanding of message mapping with suitable examples.

As we know XI produces the XML documents at the inbound/outbound of the integration pipeline, there is a need for us to map the source XML doc to the target XML doc. Message Mapping editor is a built in feature, which helps to map the source and target XML messages graphically. In this blog we discuss various terms related to it.

Definition: Message Mapping
Firstly, let me define the message mapping in the way I look at it: <CITE>"Message Mapping is nothing but a set of rules for producing target XML from the source XML.These rules are nothing but relations between the source XML tags and target XML tags". </CITE> These rules keep varying according to the business requirements on the source and target XML documents.

Sample Rule :
Sample Mapping
Definition: Occurrence:
One example of such rule is that every occurrence of source XML tags <name> should produce that many occurrences of target XML tags <name>. This example pricks me to define occurrence: <CITE>"Occcurence is just a counter to track the number of times the given XML tag can occur in the XML file generated at the integration engine pipe line" .</CITE> We define the minimum and maximum occurrences of a tag in the data type editor of XI. If we define the minimum occurrence of a tag <X> as n means that there should be at least n <X> tags in the XML file generated at the integration pipeline. It will give a mapping error incase the XML file does not contain at least n <X> tags in the XML file at the runtime.

Illustration of Occurence:
Occurence
Illustration of Mapping Error:
Mapping Error
Definition: Representation:
Before we proceed further it is better if we have a clear understanding of the 3 terms:
1. Element: Simple XML tag.
2. Attribute: Property of XML tag.
3. Node: Logical grouping of set of XML tags.
In XI it is represented as shown below:

XML representation in XI:
XML tag representatin in XI
Additionally there is color indicator for the target XML messages:
1.Red Color indicates that target nodes/elements/attributes are mandatory and has to be definetly mapped.
2.Green Color with a red circle at the bottom indicates that there is a minimum occurrence specified for the tag which has to be met in the mapping.
3.Green color indicates that we can map the nodes/elements/attributes according to the requirements.

Color Indication in the Mapping Editor:
Color Indicator in XI Mapping Editor 
Contexts in Message Mapping:
Once the above concepts are clear we can proceed to the most confusing part of message mapping called “Context Handling”. Initially when I was browsing through the training materials and mapping patterns it was really hard for me to exactly figure out what the term “Context” means. (Forget about context handling and context changing).

Definition: Context
After working out few examples I figured out that: <CITE>"Context of an element is nothing but just the level (with reference to its parent node) where the XML tag appears in the given XML document".</CITE> Level of any element is set to the immediate parent node by default.

Definition: Context Changing
Once the definition of context is very clear the rest of the terms are automatically clarified.<CITE>"Context Changing is just changing the level of XML tag (element level in the XSD) in the XML document or It is just the flexibility provided by XI for changing the XSD of the XML document at the runtime".</CITE> Example given below might make you to understand it better. I added a <CITE>Qualifications</CITE> node and <CITE>Description</CITE> element in the source data type and one<CITE> Qual_Desc</CITE> element in the target data type.

Default Context

The context of the <CITE>Description</CITE> tag is automatically set to the <CITE>Qualification</CITE> by default in XI which means that always <CITE>Description</CITE> XML tag occurs under <CITE>Qualification</CITE> XML tag as shown below.

Source XML message interpretation by the Mapping runtime before context change:
XML before Context Change

I changed the context of the <CITE>Description</CITE> tag to the root <CITE>MT_SRC</CITE> XML tag as shown below.

Changing Context in XI

Source XML message interpretation by the Mapping runtime after context change:
XML after Context Change

Definition: Context Handling
Contexts in XI can be handled by various ways like node functions, advanced functions, which will be, illustrated more in detail in the next blog. We also have queuing mechanisms for handling complex Context Changing in advanced user functions.

Once the above concepts are clear , working with the message mapping and trouble shooting any errors that occurred became relatively very easy for me. Part II will provide some more good examples for playing around with message mapping feature provided by XI.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.