<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SAP Integration Experts - DataXstream &#187; Message Mapping</title>
	<atom:link href="http://www.dataxstream.com/tag/message-mapping/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dataxstream.com</link>
	<description>SAP Certified Consultants</description>
	<lastBuildDate>Sat, 24 Jul 2010 11:29:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Fun With SAP PI Message-Mapping</title>
		<link>http://www.dataxstream.com/2009/06/fun-with-message-mapping/</link>
		<comments>http://www.dataxstream.com/2009/06/fun-with-message-mapping/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 20:12:49 +0000</pubDate>
		<dc:creator>Craig Stasila</dc:creator>
				<category><![CDATA[SAP PI Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[Craig Stasila]]></category>
		<category><![CDATA[Message Mapping]]></category>
		<category><![CDATA[XI/PI]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=1188</guid>
		<description><![CDATA[My previous post discussed the &#8220;hidden&#8221; menu in the SAP PI message mapping tool that can only be unlocked by pressing &#60;Ctrl&#62; + &#60;Shift&#62; while right clicking in the data flow editor area.  Hands down, the best feature of this menu is the import/export functionality.  I have no idea why the SAP developers buried such [...]]]></description>
			<content:encoded><![CDATA[<p>My previous post discussed the &#8220;hidden&#8221; menu in the SAP PI message mapping tool that can only be unlocked by pressing &lt;Ctrl&gt; + &lt;Shift&gt; while right clicking in the data flow editor area.  Hands down, the best feature of this menu is the import/export functionality.  I have no idea why the SAP developers buried such a useful feature in such a hard-to-find menu.  Whatever the reason, now that we know that we can import and export message mappings, we can exploit this fact to make our map-developing lives easier.</p>
<p>Most SAP PI developers have had a situation where a relatively minor change to the target message causes real havoc to the entire message mapping.  For <span>relatively</span> small maps, it may not be a big deal. For maps with complex logic, this can be a big deal requiring hours of tedious rework.  Recently, I was faced with a requirement change that required my message mapping to change correlations from 1:1 to 1:N.  Since this interface used the RFC adapter (which supports multiple messages), I was able to implement a 1:N multi-mapping message split. In the new interface design, the file adapter will process one file and pass it to the integration engine.  The integration engine will perform a multi-mapping message split to break-up the message.  The new, individual messages will be sent via one adapter engine call to the RFC adapter.  The RFC adapter will handle each message individually, calling each in a separate logical unit of work (LUW).</p>
<p>The steps below will detail how to switch a message mapping from a 1:1 correlation to a 1:N correlation <strong>without remapping anything!</strong>
<span id="more-1188"></span>
<em><strong>Note:</strong> The steps outlined below assume a moderate understanding of SAP XI/PI and gives does not give comprehensive instructions for every step.  Please post any questions to the comments section of this blog.</em></p>
<ul>
<li><strong>Step 1</strong> Before starting anything, make a safe copy of your message mapping. This will give you the ability to perform before and after comparisons and afford you some protection if something were to happen to your original mapping</li>
<li><strong>Step 2</strong> Use the hidden menu command (&lt;Ctrl&gt; + &lt;Shift&gt; + right click for those of you not paying attention) to download the current version of your message mapping.  SAP PI will save a file with the extension .mte.<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/02-export.jpg" rel="shadowbox[post-1188];player=img;"><img src="http://www.dataxstream.com/wp-content/uploads/2009/06/02-export.jpg" alt="" width="472" height="238" />
</a>The .mte file you just exported is really just an XML file.  Opening the .mte file in Internet Explorer will yield something that looks like this
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/03-mapping-xml.jpg" rel="shadowbox[post-1188];player=img;"><img src="http://www.dataxstream.com/wp-content/uploads/2009/06/03-mapping-xml.jpg" alt="" width="588" height="660" /></a>
The entire message mapping is contained in the file, including any user-defined functions, brick layout, and test cases.  This will be <strong>very</strong> useful!</li>
<li><strong>Step 2</strong> Change the target occurrence in the message mapping. This is done on the <em>Messages</em> tab of the message mapping.
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/00-messages.jpg" rel="shadowbox[post-1188];player=img;"><img src="http://www.dataxstream.com/wp-content/uploads/2009/06/00-messages.jpg" alt="" width="560" height="347" />
</a>Changing the occurrence on the target message <em>appears</em> to have little effect on the message mapping, until you switch back to the <em>Design</em> tab and you see this ugly message box:
<img src="http://www.dataxstream.com/wp-content/uploads/2009/06/01-error-message.jpg" alt="" />
<strong>Oh noes!</strong> PI added <em>&lt;Messages&gt;</em> and <em>&lt;Message1&gt;</em> tags to the source and target messages! Since the target message structure changed,  all of my hard-fought mappings are lost! Who can save me from hours of tedious remapping?
Fear not, plucky mapper, in a few steps, <strong>you</strong> can save the day by  converting the entire map without remapping a thing!</li>
<li><strong>Step 3</strong> Use your favorite text editor to open the .mte mapping file.  We will use the find/replace functionality to mass change the source mappings.  You will need the services of the copy of the map you made in step 1.  To get the value to find, copy the path of the root node in the unscathed map. To get the value to replace, copy the path of the node just below the &lt;Message1&gt; node in the new map.
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/04-copy-path.jpg" rel="shadowbox[post-1188];player=img;"><img src="http://www.dataxstream.com/wp-content/uploads/2009/06/04-copy-path.jpg" alt="" width="328" height="107" /></a>
Here is the find/replace text for the example in the graphic:</p>
<p><code>Replace:
/ns0:Personnel_MT
with
/ns0:Messages/ns0:Message1/ns1:Personnel_MT</code></li>
<li><strong>Step 4</strong> Repeat step 3 for the target message.<code>Replace:
/ns1:Z_BAPI_II_KENEXA
with
/ns0:Messages/ns0:Message1/ns2:Z_BAPI_II_KENEXA</code></p>
<p>Save the .mte file in the text editor</li>
<li><strong>Step 5</strong> Providing you didn&#8217;t inadvertently screw something up, you should be able to import the .mte file to the Integration Builder
<a style="text-decoration: none;" href="http://www.dataxstream.com/wp-content/uploads/2009/06/05-import.jpg" rel="shadowbox[post-1188];player=img;"><img src="http://www.dataxstream.com/wp-content/uploads/2009/06/05-import.jpg" alt="" width="450" height="196" /></a></li>
<li><strong>Step 6</strong> Now change the occurrence on the corresponding interface mapping to match the message mapping occurrence set in step 2.  Save and activate all of your changes.</li>
<li><strong>Step 7</strong> The final step is to change the Interface Determination in the Integration Directory to utilize your new multi-mapping message split.</li>
</ul>
<p>As you can see, the ability to export/import message mappings can really save you a lot of time.  If you have any other tips regarding message mapping export/import, please share the in the comments.</p>
<p>Happy Mapping!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/06/fun-with-message-mapping/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>PI Message Mapping Editor &#8220;Hidden&#8221; Menu</title>
		<link>http://www.dataxstream.com/2009/06/pi-message-mapping-editor-hidden-menu/</link>
		<comments>http://www.dataxstream.com/2009/06/pi-message-mapping-editor-hidden-menu/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 14:05:07 +0000</pubDate>
		<dc:creator>Craig Stasila</dc:creator>
				<category><![CDATA[SAP PI Blog]]></category>
		<category><![CDATA[SAP Technical]]></category>
		<category><![CDATA[Craig Stasila]]></category>
		<category><![CDATA[Message Mapping]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[XI/PI]]></category>

		<guid isPermaLink="false">http://www.dataxstream.com/?p=1131</guid>
		<description><![CDATA[When I was young, one of my favorite Nintendo games was Contra by Konami Corporation (old-skool NES).  Standard play with Contra afforded you with 3 lives.  I was not particularly adept at Contra (I only excel at driving games) and 3 lives was not nearly enough for me.  The only way the game was fun for me was [...]]]></description>
			<content:encoded><![CDATA[<p>When I was young, one of my favorite Nintendo games was Contra by Konami Corporation (old-skool NES).  Standard play with Contra afforded you with 3 lives.  I was not particularly adept at Contra (I only excel at driving games) and 3 lives was not nearly enough for me.  The only way the game was fun for me was to enter the Konami &#8220;cheat code&#8221;.  This cheat code gave me 3o lives!  I could get 10x the Contra playing excitement before I got obliterated by one of the many end-of-level &#8220;bosses&#8221;.  It was with the help of that cheat code that my friend Jeff and I were able to beat the game during a marathon, overnight Contra session.  It has been over 20 years since I played Contra, but I still remember the cheat code key sequence:
<code>up, up, down, down, left, right, left, right, B, A, start</code></p>
<p>Now that I&#8217;m a little older, I&#8217;ve graduated from NES to SAP PI.  It&#8217;s not nearly as fun, but every bit as challenging.  And at least I get paid to do it.  I looked, but could not find anybody to pay me to play Contra.  Instead of the many end of level &#8220;bosses&#8221; the only boss I have to worry about is my project manager&#8211;I don&#8217;t know which one is more evil.</p>
<p>Similar to Contra, the message mapping editor in XI/PI has a menu with helpful items that is &#8220;hidden.&#8221;  Unless, that is, you know the secret key combination to unlock it.
In PI, open any message mapping in edit mode.  While holding the &lt;Ctrl&gt;+&lt;Shift&gt; keys, right click in the data flow editor window.  You will be rewarded with this menu.</p>
<p style="text-align: center;"><a href="http://www.dataxstream.com/wp-content/uploads/2009/06/01-menu.jpg" rel="shadowbox[post-1131];player=img;"><img class="aligncenter" src="http://www.dataxstream.com/wp-content/uploads/2009/06/01-menu.jpg" alt="" width="477" height="299" /></a></p>
<p>Here is a short rundown of some of the menu options:</p>
<ul>
<li><strong><span style="text-decoration: underline;">Last Used</span></strong> This menu keeps track of recently used mapping functions.  It can be a real time saver if you are using mapping functions from multiple function groups.</li>
<li><strong><span style="text-decoration: underline;">Tools\Export Tools\Import</span></strong> The import/export functionality of the message mapping editor is, single handedly, the best feature of the hidden menu.  The import functionality allows you to transfer message mappings from disparate SAP PI systems.  The import/export functions also can reduce work in other ways that I will discuss in detail in later blogs.</li>
<li><strong><span style="text-decoration: underline;">Tools\Export Tools\Export</span></strong> The export function downloads the source of your message mapping to your local hard drive.  The file includes the map&#8217;s header data, data flow logic, user-defined functions, test cases, and documentation.</li>
<li><span style="text-decoration: underline;"><strong>Tools\Color schema\Schema XI20 SP3</strong></span> This option changes the data flow editor color scheme to look like it did in XI2.0 SP3.  I never used XI 2.0, so I don&#8217;t know if this color scheme is accurate.  I can tell you, however, that the brick colors are brighter in this color scheme<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/02-xi20-color-scheme.jpg" rel="shadowbox[post-1131];player=img;"><img style="border: 0px initial initial;" src="http://www.dataxstream.com/wp-content/uploads/2009/06/02-xi20-color-scheme.jpg" alt="" width="232" height="39" /></a></li>
<li><strong><span style="text-decoration: underline;">Tools\Color schema\Schema XI30 &#8220;accessible&#8221;</span></strong> Personally, I really like this color scheme. The data flow editor&#8217;s ugly grey background is replaced with a more eye-pleasing white.  I switch to this color scheme whenever I am capture screen grabs of the data flow editor for documentation purposes.<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/03-xi30-accessible-color-scheme.jpg" rel="shadowbox[post-1131];player=img;"><img style="border: 0px initial initial;" src="http://www.dataxstream.com/wp-content/uploads/2009/06/03-xi30-accessible-color-scheme.jpg" alt="" width="232" height="39" /></a></li>
<li><strong><span style="text-decoration: underline;">Tools\Local Compilation</span></strong> While I&#8217;m not quite sure exactly what this option does, I would assume that it changes on which system the compilation of the map occurs.  When checked I think the compilation of the map would occur on your workstation instead of the server, but I have not been able to confirm this thru testing, nor have I found any documentation to support this claim.</li>
<li><strong><span style="text-decoration: underline;">Tools\JarClassTest</span></strong> This togges the JarClassTest option.  I have yet to detect a difference in the behavior when compiling/testing, nor have I found any documentation on this item.  If anybody out there has any information, please post a comment.</li>
<li><strong><span style="text-decoration: underline;">Tools\Autosize Bricks</span></strong> This function is useful, especially if you have fields or user-defined functions (UDFs) that have long names.  By selecting this menu, you no longer have to guess what field or function each brick is for.<br />
<a href="http://www.dataxstream.com/wp-content/uploads/2009/06/05-autosize-on.jpg" rel="shadowbox[post-1131];player=img;"><img class=" alignnone" title="Autosize On" src="http://www.dataxstream.com/wp-content/uploads/2009/06/05-autosize-on.jpg" border="0" alt="" width="233" height="40" /></a> vs.  <a href="http://www.dataxstream.com/wp-content/uploads/2009/06/04-autosize-off.jpg" rel="shadowbox[post-1131];player=img;"><img class=" alignnone" title="Autosize Off" src="http://www.dataxstream.com/wp-content/uploads/2009/06/04-autosize-off.jpg" border="0" alt="" width="232" height="39" /></a></li>
<li><strong><span style="text-decoration: underline;">Encoding</span></strong> This option allows you to change the encoding in the XML tag of the target message</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.dataxstream.com/2009/06/pi-message-mapping-editor-hidden-menu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
