<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5283839419879477416</id><updated>2012-01-31T05:59:32.761+01:00</updated><category term='UPDATETEXT'/><category term='xpath()'/><category term='Visual Studio'/><category term='Migrating BizTalkMgmtDb'/><category term='Mapping'/><category term='WCF LOB adapter'/><category term='MessageContextPropertyBase'/><category term='filegroup'/><category term='EDI Pipeline'/><category term='EDIFACT'/><category term='BizTalk error handling'/><category term='Duplicate Shape'/><category term='EDIFACT Interchange'/><category term='WE30'/><category term='BAPI IDOCTYPES_FOR_MESTYPE_READ'/><category term='property schema base'/><category term='Hot fix'/><category term='Biztalk 2009'/><category term='filter expression'/><category term='SAP .NET adapter'/><category term='restore'/><category term='SAP'/><category term='EDISendPipeline'/><category term='Streaming'/><category term='Data deletion'/><category term='Case'/><category term='Error'/><category term='parse xml'/><category term='frozen yogurt'/><category term='Query'/><category term='promoted properties'/><category term='HierarchyID'/><category term='frozen yogurt café'/><category term='SAP .NET connector'/><category term='Biztalk error Enterprise Single Signon EntSSO console Admin'/><category term='BizTalk parties'/><category term='backup'/><category term='blog opener'/><category term='SDK Adapter Pack 2'/><category term='CRM'/><category term='SE37'/><category term='orchestration error'/><category term='BizTalk error'/><category term='policy'/><category term='XML'/><category term='Archive Pipeline'/><category term='SendIdoc'/><category term='Dynamic Send Port'/><category term='links'/><category term='Select'/><category term='Else'/><category term='frozenyogurtwelt'/><category term='Assembly'/><category term='IDoc'/><category term='Convoy Pattern'/><category term='Flat files'/><category term='XPath'/><category term='biztalk send port'/><category term='WCF adapter'/><category term='Message Queuing'/><category term='Pipeline Component'/><category term='partition'/><category term='Common Table Expressions'/><category term='EDI_SEGMENTS_ADD_BLOCK'/><category term='Installation'/><category term='Bodypart properties'/><category term='Microsoft.XLANGs.BaseTypes.DesignerPosition'/><category term='ESB'/><category term='Statistics'/><category term='SQL Server'/><category term='Visual Studio 2005'/><category term='Message Flow'/><category term='64bit'/><category term='BizTalk Limitation'/><category term='Bizalk'/><category term='Oracle'/><category term='SAP adapter'/><category term='SMTP'/><category term='Direct Submit Port'/><category term='alk'/><category term='Work around'/><category term='table movement'/><category term='MIME Properties'/><category term='When'/><category term='Partition Elimination'/><category term='partial restore'/><category term='Pipeline'/><category term='WE20'/><category term='SQL Server 2008'/><category term='InvalidOperationException'/><category term='Duplicate GUID'/><category term='orchestration'/><category term='large message'/><category term='MSMQ'/><category term='empty elements'/><category term='Archiving'/><category term='Aggregate Hierarchies'/><category term='HAT'/><category term='Database'/><category term='Biztalk'/><category term='piecemeal restore'/><category term='Recursive TCE'/><category term='MsmqAdapterProperties'/><category term='routing'/><category term='32bit'/><category term='WE60'/><category term='BizTalk bug'/><title type='text'>EAI Technologies &amp; their Pitfalls</title><subtitle type='html'>random pitfalls and their solutions in EAI technologies such as BizTalk</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-7202762699604727939</id><published>2011-09-27T09:41:00.011+02:00</published><updated>2011-10-14T10:40:41.043+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='empty elements'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='parse xml'/><title type='text'>Parse XML with XmlReader (closing empty elements correctly)</title><content type='html'>If you want to parse an XML document with the XmlReader, it might help to use this &lt;a href="http://msdn.microsoft.com/en-us/library/cc189056%28v=vs.95%29.aspx"&gt;XmlReader example from MSDN&lt;/a&gt;. However, there's one thing missing: If you parse an XML with empty elements, such as:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;example1 /&gt;&lt;br /&gt;&amp;lt;example2&gt;bla&amp;lt;/example2&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;the example doesn't set the closing tags write, but like this:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;example1&gt;&lt;br /&gt;&amp;nbsp;&amp;lt;example2&gt;bla&amp;lt;/example2&gt;&lt;br /&gt;&amp;lt;/example1&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In order to omit this problem, you have to write the end elements in case that the reader parses an empty element:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;case &lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;XmlNodeType&lt;/span&gt;.Element:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    writer.WriteStartElement(reader.Name);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    writer.WriteAttributes(reader, &lt;span style="color: rgb(51, 102, 255);"&gt;true&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;if &lt;/span&gt;(reader.IsEmptyElement)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;            &amp;nbsp;writer.WriteEndElement();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;span style="color: rgb(51, 102, 255);"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-7202762699604727939?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/7202762699604727939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=7202762699604727939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7202762699604727939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7202762699604727939'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/parse-xml-with-xmlreader-closing-empty.html' title='Parse XML with XmlReader (closing empty elements correctly)'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4573678356781795342</id><published>2011-09-23T09:43:00.003+02:00</published><updated>2011-09-23T09:47:19.536+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>VS/BTS Error "The system cannot find the file specified"</title><content type='html'>If you receive the error message "The system cannot find the file specified." with the exception code 80070002 while adding a disassembling schema in Visual Studio/BizTalk, it is because VS does not find the assembly from the referenced project with the schema. Just build the referenced project, and then you should be able to add the schema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4573678356781795342?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4573678356781795342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4573678356781795342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4573678356781795342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4573678356781795342'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/vsbts-error-system-cannot-find-file.html' title='VS/BTS Error &quot;The system cannot find the file specified&quot;'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6241336008753358590</id><published>2011-09-14T23:48:00.002+02:00</published><updated>2011-09-15T00:04:12.989+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flat files'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Error details: The Messaging Engine encountered an error during the processing of one or more inbound messages.</title><content type='html'>If you have created a flatfile schema, you might run into the following error:&lt;br /&gt;&lt;blockquote&gt;A message received by adapter "FILE" on receive location "..." with URI "D:\dev\TestFlatfileDis\filedrop\*Copy.txt" is suspended.&lt;br /&gt;Error details: The Messaging Engine encountered an error during the processing of one or more inbound messages.&lt;br /&gt;&lt;/blockquote&gt;In this case, it might be that your test file is running into an error while reading the lines:&lt;br /&gt;&lt;blockquote&gt;Reason: Unexpected data found while looking for:&lt;br /&gt;'\r\n'&lt;br /&gt;The current definition being parsed is Root. The stream offset where the error occured is 13. The line number where the error occured is 3. The column where the error occured is 2.&lt;br /&gt;&lt;/blockquote&gt;To solve this, check that all the lines go until a certain column. If you can't ensure this, you could define the fields (at the end of the line) with MinOccurs=0, so that it can be omitted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6241336008753358590?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6241336008753358590/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6241336008753358590' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6241336008753358590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6241336008753358590'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/error-details-messaging-engine.html' title='Error details: The Messaging Engine encountered an error during the processing of one or more inbound messages.'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-8860439905925002247</id><published>2011-09-07T10:12:00.004+02:00</published><updated>2011-09-07T10:15:07.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>XML-Error Message "content is not allowed in prolog"</title><content type='html'>When we created a BizTalk Mapping in VS2008, the compiler returned the error "line 1 colum 1 content is not allowed in prolog". Since the compiler told us that the error was detected in the very beginning (line 1 column 1), we needed a bit of time to see that actually the error was inside the document, where we had filled an element with a value although this shouldn't contain one.&lt;br /&gt;So, if you get the same error message, check which fields you filled and if one of these shouldn't be filled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-8860439905925002247?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/8860439905925002247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=8860439905925002247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8860439905925002247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8860439905925002247'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/error-message-content-is-not-allowed-in.html' title='XML-Error Message &quot;content is not allowed in prolog&quot;'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6289884875893256372</id><published>2011-09-06T12:59:00.004+02:00</published><updated>2011-09-06T13:44:26.901+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='policy'/><category scheme='http://www.blogger.com/atom/ns#' term='32bit'/><category scheme='http://www.blogger.com/atom/ns#' term='64bit'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>32/64-bit Installation of Oracle Adapter</title><content type='html'>&lt;span style=";font-family:georgia;font-size:100%;"  &gt;After &lt;a href="http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/installing-oracle-wcf-adapter.html"&gt;installing the Oracle Adapter&lt;/a&gt;, it might be that you run into errors in run-time, though you solved all the problems so that you could connect to Oracle in VS. ;-) I ran into the following error&lt;br /&gt;&lt;span style="font-style: italic;"&gt;System.IO.FileNotFoundException: Die Datei oder Assembly Oracle.DataAccess, Version=2.111.7.20, &lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;Actually, the Oracle WCF adapter found the assembly 2.111.7.0, but was searching  the Oracle.DataAccess.dll in the BizTalk installation folder:&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;&lt;span style="font-size:85%;"&gt;LOG: Diese Bindung startet im default-Load-Kontext.&lt;br /&gt;LOG: Die Anwendungskonfigurationsdatei wird verwendet: D:\Program Files  (x86)\Microsoft BizTalk Server 2009\BTSNTSvc64.exe.Config&lt;br /&gt;LOG: Die Computerkonfigurationsdatei von C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\config\machine.config wird verwendet.&lt;br /&gt;LOG: In der Anwendungskonfigurationsdatei wurde eine Umleitung gefunden. 2.111.7.0 wird nach 2.111.7.20 umgeleitet.&lt;br /&gt;LOG: Verweis nach der Richtlinie: Oracle.DataAccess, Version=2.111.7.20, Culture=neutral, PublicKeyToken=89b483f429c47342&lt;br /&gt;LOG: Download von neuem URL file:///D:/Program Files (x86)/Microsoft BizTalk Server 2009/Oracle.DataAccess.DLL.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;The problem was inconsistent image-typing: While VS  ran in 32bit, the BizTalk host instance ran in 64bit so that it didn't  look in the GAC... Using a 32-bit host instance solved the problem;  however, more elegant might be to install a 64-bit version of the  Oracle.DataAccess (that however could cause problems with a 32-bit  VS...)&lt;br /&gt;&lt;br /&gt;Furthermore, deploy the policies "policy.2.x.Oracle.DataAccess"&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt; into the 32- and the 64-bit GAC to because both VS and the administration console of the BizTalk are searching for the assembly.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6289884875893256372?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6289884875893256372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6289884875893256372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6289884875893256372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6289884875893256372'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/3264-bit-installation-of-oracle-adapter.html' title='32/64-bit Installation of Oracle Adapter'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-8738931167768403494</id><published>2011-09-05T14:45:00.013+02:00</published><updated>2011-09-06T13:05:33.993+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SDK Adapter Pack 2'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF LOB adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Installing Oracle WCF-Adapter</title><content type='html'>&lt;span style=";font-family:georgia;font-size:100%;"  &gt;In order to use the LOB WCF-Adapter for Oracle, you have to install an oracle client. Since BizTalk requests the assembly Oracle.DataAccess of version 2.111.7.0 or above, you have to select a correct Oracle client at least in version 11.2.0.21.&lt;br /&gt;&lt;br /&gt;Install the client according to &lt;a href="http://soa-thoughts.blogspot.com/2009/08/biztalk-adapter-pack-20-oraclebinding.html"&gt;Steef-Jan Wigger's explanation.&lt;/a&gt; In &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;%oracle%\product\11.1.0\client_1\odp.net\bin\2.x, you find the Oracle.DataAccess and you can put it to the GAC using &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;OraProvCfg.exe that also redirects all assembly invocations to the actual one. (Otherwise, VS throws an error that it can't find version 2.111.7.0)&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;.&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;br /&gt;Additionally, you can add the sqlnet.ora und tnsnames.ora into %oracle%\product\11.1.0\client_1\Network\Admin. You find samples in the "Sample" folder.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:verdana;" &gt;ORA-1017: invalid name/password:&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;span&gt;When you connect from Visual Studio to the Oracle server, make &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;span&gt;sure to write the username in capital letters, even if the username is not written in capital letters in Oracle (otherwise you get an &lt;/span&gt;&lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.cnblogs.com/upzone/archive/2008/12/26/1363216.html"&gt;ORA-1017: invalid name/password error&lt;/a&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;span style="font-family:verdana;"&gt;)!&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-8738931167768403494?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/8738931167768403494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=8738931167768403494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8738931167768403494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8738931167768403494'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/installing-oracle-wcf-adapter.html' title='Installing Oracle WCF-Adapter'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6848820208887576877</id><published>2011-09-02T11:06:00.004+02:00</published><updated>2011-09-02T11:14:17.662+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='promoted properties'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline Component'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Error Message: "Fehler beim Laden der Eigenschaftenliste anhand des Namespaces, oder Eigenschaften in der Liste nicht gefunden."</title><content type='html'>On a German installation, the BizTalk server threw the following error message after parsing a message:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Fehler beim Laden der Eigenschaftenliste anhand des Namespaces, oder Eigenschaften in der Liste nicht gefunden, Überprüfen Sie, ob das Schema korrekt bereitgestellt wurde.&lt;br /&gt;&lt;/blockquote&gt;Actually, this error states already the problem quite good, which is that the message contains a  promoted property that doesn't exist in the schema property. So, if you get this error message, go through your code and have a close look at all properties that you set and check whether you've spelled their names correctly.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6848820208887576877?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6848820208887576877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6848820208887576877' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6848820208887576877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6848820208887576877'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/09/error-message-fehler-beim-laden-der.html' title='Error Message: &quot;Fehler beim Laden der Eigenschaftenliste anhand des Namespaces, oder Eigenschaften in der Liste nicht gefunden.&quot;'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-7686356774737809310</id><published>2011-08-30T15:58:00.005+02:00</published><updated>2011-08-30T16:02:13.240+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='biztalk send port'/><category scheme='http://www.blogger.com/atom/ns#' term='SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Setting the mail address of Receiver in  the Pipeline Component</title><content type='html'>If you want to send a message with a static or dynamic SMTP send port, you can configure the mail address of the receiver in a pipeline component. Therefore, you have to promote &lt;span style="font-style: italic;"&gt;OutboundTransportLocation &lt;/span&gt;in the message context of the message:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;blockquote&gt;msgContext.Promote("OutboundTransportLocation", "http://schemas.microsoft.com/BizTalk/2003/system-properties", "mailto:" + mailAddress);&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-7686356774737809310?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/7686356774737809310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=7686356774737809310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7686356774737809310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7686356774737809310'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/08/setting-mail-address-of-receiver-in.html' title='Setting the mail address of Receiver in  the Pipeline Component'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5545280254366406159</id><published>2011-08-24T12:18:00.011+02:00</published><updated>2011-08-25T09:42:31.243+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MessageContextPropertyBase'/><category scheme='http://www.blogger.com/atom/ns#' term='filter expression'/><category scheme='http://www.blogger.com/atom/ns#' term='routing'/><category scheme='http://www.blogger.com/atom/ns#' term='promoted properties'/><category scheme='http://www.blogger.com/atom/ns#' term='property schema base'/><category scheme='http://www.blogger.com/atom/ns#' term='ESB'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>How to Filter in Orchestrations on Promoted Properties</title><content type='html'>If you want to do direct-bounding into an orchestration (for example, because you're implementing an ESB where send ports and orchestrations subcribe directly to the message box), you would define filter expressions in the receive shape.&lt;br /&gt;&lt;br /&gt;Basically, you can filter on schema properties that are referenced in the BizTalk project of your orchestration. However, to make them visible (and selectable) here, you have to publish them. You can do this in (at least) two ways:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First, you could promote a field in the incoming message and link the field to a promoted property. This option helps you if you filter on a field that is inside the message.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Second - if the data is not part of the message but a header information - you have to set the "property schema base" of the schema property to &lt;span style="font-style: italic;"&gt;MessageContextPropertyBase&lt;/span&gt;. This way, it gets visible and you can filter on it.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5545280254366406159?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5545280254366406159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5545280254366406159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5545280254366406159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5545280254366406159'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/08/how-to-filter-in-orchestrations-on.html' title='How to Filter in Orchestrations on Promoted Properties'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-7634337475332838466</id><published>2011-06-06T12:36:00.016+02:00</published><updated>2011-09-26T14:31:53.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='Data deletion'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Delete all the Data of a Partition</title><content type='html'>If you want to delete blocks of data, you usually would like to delete blocks instead of deleting rows. If you at the same time use partitions to store your data, and all the data that you want to delete (e.g. all the data from 2010 and before), you can use the partition commands to realize this. Instead of deleting row by row with the delete-Command&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;delete * from table where timestamp &amp;lt; '2011-01-01'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;you would then truncate the data of the partition(s) that contains this data (from 2010 and before). To do this, you have to create a staging table and then use the SWITCH TO command to move the data to this table. Both steps could be done using the SQL Server wizards. If you have created partitions on a table, you could right-click on the table name, choose "Storage", then "Manage partition":&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-s2LT7YoqnLE/Tey8m7mXLeI/AAAAAAAABeg/zBmDpvXrHnE/s1600/menu%2Bmanage%2Bpartition.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 232px;" src="http://1.bp.blogspot.com/-s2LT7YoqnLE/Tey8m7mXLeI/AAAAAAAABeg/zBmDpvXrHnE/s400/menu%2Bmanage%2Bpartition.jpg" alt="" id="BLOGGER_PHOTO_ID_5615070212443811298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In the wizard, you choose "Manage partitioned data in a sliding window scenario" and then enable "Switch Out":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-zcN4fDiqTWU/TezAmbXg9EI/AAAAAAAABew/AmL2JtgoW7Q/s1600/switch%2Bout.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 333px;" src="http://4.bp.blogspot.com/-zcN4fDiqTWU/TezAmbXg9EI/AAAAAAAABew/AmL2JtgoW7Q/s400/switch%2Bout.jpg" alt="" id="BLOGGER_PHOTO_ID_5615074601838113858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The wizard composes now SQL commands to create a staging table with the same columns and indexes as the original table. However, to delete a partition's data you wouldn't need to create all the indexes, it's enough to create the columns. Then you have to invoce the SWITCH TO command to move the data to the staging table:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;ALTER TABLE table SWITCH PARTITION 1 TO stagingTable&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a meta data-operation, no data is moved physically, and thus the data movement doesn't cost a lot. To delete the data, you can then drop the table or truncate it. Both is a block operation and, thus, won't harm the database.&lt;br /&gt;&lt;br /&gt;PS: In case, that other tables have foreign keys to this table, you would have to delete this data beforehand (since it might not make sense to have it without its references anyway). Most usually, you would have these referenced tables also partitioned so that you should think about deleting the partitions of referenced tables in the same transaction.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-7634337475332838466?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/7634337475332838466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=7634337475332838466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7634337475332838466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7634337475332838466'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/06/delete-all-data-of-partition.html' title='Delete all the Data of a Partition'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-s2LT7YoqnLE/Tey8m7mXLeI/AAAAAAAABeg/zBmDpvXrHnE/s72-c/menu%2Bmanage%2Bpartition.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6822717678518342396</id><published>2011-05-25T15:28:00.015+02:00</published><updated>2011-05-30T15:30:18.721+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Partition Elimination'/><title type='text'>Doing Partition Elimination</title><content type='html'>&lt;p&gt;Let us assume, that we want to move old data to secondary filegroups. In this case, we would then partition on the timestamp of a row. However, our applications querys a lot on the primary key column "ID", so we prefer to make the ID instead of the timestamp the partition column.&lt;br /&gt;&lt;br /&gt;The table therefore partitioned like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Partition 1: ID &amp;lt; 99 (before 01-February-2011)&lt;br /&gt;Partition 2: ID 100..199 (February 2011)&lt;br /&gt;Partition 3: ID 200..299 (March 2011)&lt;br /&gt;Partition 4: ID 300..399 (April 2011)&lt;br /&gt;Partition 5: ID &amp;gt; 400 (after 01-May-2011)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;At the same time, there are a lot of queries with timely conditions such as&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;select * from table where timestamp &amp;gt; '2011-04-01' and error is not null&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The SQL Server query optimzer would now search the whole table for entries that are younger then the 1st of April 2011 (and have the error column filled). Since the timestamp is not part of the partition column, the query optimizer doesn't know that all data from April 2011 and younger is in partition 4 and 5 and, hence, it can't do partition elimination but has to go through all partitions.&lt;br /&gt;&lt;br /&gt;How can we help the query optimizer that he only has to look up the concrete partition.&lt;/p&gt;&lt;p&gt;Until now, I found three answers:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You can add a condition to the partition to the query:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;select * from table where timestamp &amp;gt; '2011-04-01' and error is not null &lt;strong&gt;and $partition.function(ID)&amp;gt;=4&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;This way, the SQL Server goes through all rows with an &lt;span style="font-weight: bold;"&gt;clustered index seek&lt;/span&gt; and returns rows from partition 4 and greater. It's fast, but you have to change the query.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can add a condition to the ID to the query:&lt;br /&gt;You can also limit the query to the boundary value of the partition - adding &lt;span style="font-family:courier new;"&gt;&lt;strong&gt;and ID&amp;gt;=300&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;, and thus, &lt;/span&gt;the SQL Server uses a &lt;span style="font-weight: bold;"&gt;clustered index scan&lt;/span&gt;, which is faster than a clustered index seek (see &lt;a href="http://blogs.msdn.com/b/craigfr/archive/2006/06/26/647852.aspx"&gt;Scans vs. Seeks&lt;/a&gt; from Freedman), and furthermore, only reads through the partitions 4 and 5.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You could add a non-clustered index on the timestamp:&lt;br /&gt;Thus, the ID is automatically included because it's in the clustered index. Then, you don't have to change your queries, and the SQL Server can use the index to find the IDs quite fast. This is the most convenient option because you don't change the query; however, the SQL Server needs more steps to find the result.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If you have more ideas, please let me know in a comment. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6822717678518342396?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6822717678518342396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6822717678518342396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6822717678518342396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6822717678518342396'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/05/doing-partition-elimination.html' title='Doing Partition Elimination'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1294393048387125016</id><published>2011-05-19T18:18:00.008+02:00</published><updated>2011-05-20T13:51:34.989+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='filegroup'/><category scheme='http://www.blogger.com/atom/ns#' term='table movement'/><title type='text'>Move a Table to another Filegroup</title><content type='html'>In case you want to move a table to another filegroup, you would have to change the primary key of the table... and also all the foreign keys to that primary key.&lt;br /&gt;&lt;br /&gt;This script allows you to do all this, it drops the constraints of the foreign keys, then it moves the primary key and then it creates again the constraints of the foreign keys.&lt;br /&gt;&lt;br /&gt;You can just run the script - as a result you receive the needed SQL statements to move the table (the script itself doesn't make any changes!!).&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;declare @tablename varchar(50)&lt;br /&gt;set @tablename = --'TableA&lt;br /&gt;declare @newFilegroup varchar(50)&lt;br /&gt;set @newFilegroup = --'FilegroupB'&lt;br /&gt;&lt;br /&gt;declare @tableID int&lt;br /&gt;select @tableID = object_id from sys.tables where name=@tablename&lt;br /&gt;&lt;br /&gt;select 'BEGIN TRANSACTION'&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select 'ALTER TABLE [dbo].[' + t.name + '] DROP CONSTRAINT [' + fk.name + ']' from sys.tables t&lt;br /&gt;inner join sys.foreign_keys fk on t.object_id = fk.parent_object_id&lt;br /&gt;inner join sys.foreign_key_columns fkc on fk.object_id = fkc.constraint_object_id&lt;br /&gt;inner join sys.tables tMove on fkc.referenced_object_id = tMove.object_id&lt;br /&gt;where tMove.name = @tablename&lt;br /&gt;&lt;br /&gt;UNION ALL select 'GO'&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select 'ALTER TABLE [dbo].[' + @tablename + '] DROP CONSTRAINT ' + kc.name + ' WITH (MOVE TO ' + @newFilegroup + ')' from sys.key_constraints kc where kc.parent_object_id = @tableID and kc.type='PK'&lt;br /&gt;&lt;br /&gt;UNION ALL select 'GO'&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select 'ALTER TABLE [dbo].[' + @tablename + '] ADD CONSTRAINT ' + kc.name + ' PRIMARY KEY(' + c.name + ') ' from sys.key_constraints kc&lt;br /&gt;inner join sys.columns c on kc.parent_object_id = c.object_id&lt;br /&gt;where kc.parent_object_id = @tableID and c.is_identity = 1 and kc.type='PK'&lt;br /&gt;&lt;br /&gt;UNION ALL select'GO'&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select 'ALTER TABLE [dbo].[' + t.name + '] WITH CHECK ADD  CONSTRAINT [' + fk.name + '] FOREIGN KEY([' + cMove.name + ']) REFERENCES [dbo].[' + @tablename + '] ([' + c.name + '])' from sys.tables t&lt;br /&gt;inner join sys.foreign_keys fk on t.object_id = fk.parent_object_id&lt;br /&gt;inner join sys.foreign_key_columns fkc on fk.object_id = fkc.constraint_object_id&lt;br /&gt;inner join sys.tables tMove on fkc.referenced_object_id = tMove.object_id&lt;br /&gt;inner join sys.columns c on t.object_id = c.object_id&lt;br /&gt;inner join sys.foreign_keys fkMove on fkMove.object_id=fkc.constraint_object_id&lt;br /&gt;inner join sys.columns cMove on cMove.column_id=fkc.parent_column_id&lt;br /&gt;where tMove.name = @tablename and c.is_identity = 1&lt;br /&gt;and fkc.referenced_object_id=@tableID and fkc.parent_object_id=cMove.object_id&lt;br /&gt;&lt;br /&gt;UNION ALL select 'GO'&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select 'ALTER TABLE [dbo].[' + t.name + '] CHECK CONSTRAINT [' + fk.name + ']' from sys.tables t&lt;br /&gt;inner join sys.foreign_keys fk on t.object_id = fk.parent_object_id&lt;br /&gt;inner join sys.foreign_key_columns fkc on fk.object_id = fkc.constraint_object_id&lt;br /&gt;inner join sys.tables tMove on fkc.referenced_object_id = tMove.object_id&lt;br /&gt;where tMove.name = @tablename&lt;br /&gt;&lt;br /&gt;UNION ALL&lt;br /&gt;&lt;br /&gt;select '--COMMIT'&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;The result of the script looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-hr0qjKrbhSE/TdYiIe2ABaI/AAAAAAAABeU/yxVs-FpHdUI/s1600/Clipboard03.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 118px;" src="http://2.bp.blogspot.com/-hr0qjKrbhSE/TdYiIe2ABaI/AAAAAAAABeU/yxVs-FpHdUI/s400/Clipboard03.jpg" alt="" id="BLOGGER_PHOTO_ID_5608707915050386850" border="0" /&gt;&lt;/a&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1294393048387125016?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1294393048387125016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1294393048387125016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1294393048387125016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1294393048387125016'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/05/move-table-to-another-filegroup.html' title='Move a Table to another Filegroup'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-hr0qjKrbhSE/TdYiIe2ABaI/AAAAAAAABeU/yxVs-FpHdUI/s72-c/Clipboard03.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5030431451300056849</id><published>2011-05-18T15:17:00.004+02:00</published><updated>2011-05-18T16:20:27.530+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='frozen yogurt'/><category scheme='http://www.blogger.com/atom/ns#' term='frozenyogurtwelt'/><category scheme='http://www.blogger.com/atom/ns#' term='frozen yogurt café'/><title type='text'>Eat Frozen Yogurt!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-M63gSpBYVBY/TdPILcGMrpI/AAAAAAAABeM/BoOZJObiYGc/s1600/froyo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 171px; height: 275px;" src="http://3.bp.blogspot.com/-M63gSpBYVBY/TdPILcGMrpI/AAAAAAAABeM/BoOZJObiYGc/s400/froyo.jpg" alt="" id="BLOGGER_PHOTO_ID_5608046059852705426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;My first post in this blog was about &lt;a href="http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/my-first-entry-shows-important-piece-of.html"&gt;motivating software developers with chocolate&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No, I have to advertise a frozen yogurt cafe of friends in Hamburg-Winterhude, which offers delicious frozen yogurt - ice cream mixed with fruits or chocolates - and good gepa coffee (which since all times has motivated developers). If you can't go there by foot (Dorotheenstraße 99), you should at least visit them online: &lt;a href="http://www.facebook.com/FroyoWelt"&gt;FrozenYogurtWelt bei Facebook&lt;/a&gt; and the &lt;a href="http://www.froyowelt.de/"&gt;FrozenYogurtWelt homepage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5030431451300056849?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5030431451300056849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5030431451300056849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5030431451300056849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5030431451300056849'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/05/eat-frozen-yogurt.html' title='Eat Frozen Yogurt!'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-M63gSpBYVBY/TdPILcGMrpI/AAAAAAAABeM/BoOZJObiYGc/s72-c/froyo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-9206969180044064092</id><published>2011-05-11T13:22:00.012+02:00</published><updated>2011-05-20T13:52:50.049+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>Good articels on PARTITION</title><content type='html'>&lt;span style="font-size:100%;"&gt;Here are some articels about PARTITION in SQL Server 2008 that helped me:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Alan Granfield talks about &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.mssqltips.com/tip.asp?tip=1914"&gt;Myths and Truths of partitioning&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Microsoft published a good white paper about &lt;a href="http://msdn.microsoft.com/en-us/library/dd578580%28v=sql.100%29.aspx"&gt;partitioning and index strategies in SQL Server 2008&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A good explanation on &lt;a href="http://weblogs.sqlteam.com/dang/archive/2011/04/17/move-a-partition-to-a-different-file-group-efficiently.aspx"&gt;how to move a partition into another filegroup&lt;/a&gt; comes from Dan Guzman.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Feodor Georgiev writes about &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://sqlconcept.com/2011/04/23/how-to-risk-losing-data-and-how-to-have-most-down-time"&gt;how to risk losing data and how to have most down time.&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;And, a bit of propaganda for myself:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;I wrote a guest post on Feodor's blog &lt;a href="http://sqlconcept.com/"&gt;sqlconcept.com&lt;/a&gt; about how to &lt;a href="http://sqlconcept.com/2011/05/12/using-louis-vitton-and-an-army-bag-to-store-your-historical-data/"&gt;generally handle new and old data with partitioning&lt;/a&gt; (using a Louis Vuitton and an army bag as an example).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-9206969180044064092?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/9206969180044064092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=9206969180044064092' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/9206969180044064092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/9206969180044064092'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/05/good-articels-on-partition.html' title='Good articels on PARTITION'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2958140476198801211</id><published>2011-05-04T15:33:00.016+02:00</published><updated>2011-05-06T13:43:10.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='partition'/><category scheme='http://www.blogger.com/atom/ns#' term='restore'/><category scheme='http://www.blogger.com/atom/ns#' term='piecemeal restore'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='partial restore'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Query a SQL Server Database while it is still restoring</title><content type='html'>&lt;span&gt;PARTITION &lt;/span&gt;is an SQL Server Enterprise Edition feature that can be used to spread data over different partitions, which can be put into different filegroups.&lt;br /&gt;When you think about &lt;span style="font-weight: bold;"&gt;Backup and Restore strategies&lt;/span&gt;, a neat thing is that secondary filegroups can be set read-only and then don't have to be backuped permanently (simply because the data keeps unchanged). Thus, your &lt;span style="font-weight: bold;"&gt;backup runs faster, &lt;/span&gt;because you only backup readwrite filegroups, and thus the backup doesn't effect your database so much. Furthermore, you can do &lt;span style="font-weight: bold;"&gt;piecemeal restore&lt;/span&gt; after a disaster, which means that you can make the database available already after restoring the primary filegroup. So the users can query the restored part of the database until you restored all the filegroups of the database.&lt;br /&gt;&lt;br /&gt;The following example shows how queries to the database work, if one filegroup isn't restored.&lt;br /&gt;&lt;br /&gt;In the example, there are two tables with ID and CreateDate. The second table has a foreign key to the ID of the first table. The tables are partitioned with column ID at value 3, so that ID 1 and 2 of each table reside in partition 1, and ID 3 and 4 in partition 2. The first partition is on filegroup 1, the other on filegroup 2. A join query an the two tables returns this result:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-9gDXmo-05Is/TcKLnkCA1PI/AAAAAAAABd0/X4EsLH3RMw4/s1600/partition%2Bblog%2Bpost.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 113px;" src="http://3.bp.blogspot.com/-9gDXmo-05Is/TcKLnkCA1PI/AAAAAAAABd0/X4EsLH3RMw4/s400/partition%2Bblog%2Bpost.jpg" alt="" id="BLOGGER_PHOTO_ID_5603194398205596914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In case of a crash, we would restore first the primary filegroup. If we run the same query against all the data in the tables, we get an error because not all data is available:&lt;br /&gt;&lt;span style=";font-family:lucida grande;font-size:85%;"  &gt;&lt;span style="font-style: italic;font-family:courier new;font-size:100%;"  &gt;Msg 679, Level 16, State 1, Line 8&lt;br /&gt;One of the partitions of index 'PK_Transfile' for table 'dbo.Transfile'(partition ID 72057594039238656) &lt;span style="font-weight: bold;"&gt;resides on a filegroup ("SECONDARY") that cannot be accessed &lt;/span&gt;because it is offline, restoring, or defunct. This may limit the query result.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In order to make your query run, you have to restrict it to the restored partitions. In this case, you have to restrict the query so that the ID columns of the tables are smaller or equal to 2. Since the partition column is known, the SQL processor knows that it only has to query the first partition and, thus, only enters the first, restored filegroup. The result then is not complete, but it doesn't return an error:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-V5ZtR4HmqsA/TcKaRhCUT_I/AAAAAAAABd8/GksyfHccfoY/s1600/partition%2Bblog%2Bpost%2B2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 66px;" src="http://3.bp.blogspot.com/-V5ZtR4HmqsA/TcKaRhCUT_I/AAAAAAAABd8/GksyfHccfoY/s400/partition%2Bblog%2Bpost%2B2.jpg" alt="" id="BLOGGER_PHOTO_ID_5603210512118861810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This way, you can use PARTITION to get your system run much faster, you can shorten your backup time and you can ease restore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2958140476198801211?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2958140476198801211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2958140476198801211' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2958140476198801211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2958140476198801211'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/05/using-partition-to-improve-backup-and.html' title='Query a SQL Server Database while it is still restoring'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-9gDXmo-05Is/TcKLnkCA1PI/AAAAAAAABd0/X4EsLH3RMw4/s72-c/partition%2Bblog%2Bpost.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1680632704612420321</id><published>2011-01-04T11:24:00.007+01:00</published><updated>2011-01-04T11:31:56.160+01:00</updated><title type='text'>Error creating Flat File IDOC from XML IDOC</title><content type='html'>We receive an SAP IDOC using the WCF adapter; afterwards, the disassembler uses that input file to create an XML document. When we later want to re-create an IDOC flat file from that XML document, the assembler does not create blanks for fields that had been empty in the input file - though they are marked as mandatory fields in the schema.&lt;br /&gt;&lt;br /&gt;In this example, you can see the missing blanks in front of the "INVOIC" segment in the output file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Input file - 2 blank segments in front of "INVOIC"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;EDI_DC40 3000000000000526082700 3012 INVOIC01&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;XML - no tags for the 2 blank &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;segments&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;, which seems okay:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;Receive xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/3/INVOIC01//40B/Receive"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &amp;lt;idocData&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;EDI_DC40 xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/3/INVOIC01//40B"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;TABNAM xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;EDI_DC40&amp;lt;/TABNAM&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;MANDT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;300&amp;lt;/MANDT&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;DOCNUM xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;0000000000526082&amp;lt;/DOCNUM&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;DOCREL xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;700&amp;lt;/DOCREL&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;STATUS xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;30&amp;lt;/STATUS&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;DIRECT xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;1&amp;lt;/DIRECT&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;OUTMOD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;2&amp;lt;/OUTMOD&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;IDOCTYP xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Idoc/Common/"&amp;gt;INVOIC01&amp;lt;/IDOCTYP&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Output file - missing blank &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;segments&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; in front of the "INVOIC":&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;EDI_DC40 3000000000000526082700 3012INVOIC01&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If anyone knows a solution, please comment. If we find one, we let you know this here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1680632704612420321?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1680632704612420321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1680632704612420321' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1680632704612420321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1680632704612420321'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2011/01/error-creating-flat-file-idoc-from-xml.html' title='Error creating Flat File IDOC from XML IDOC'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5243967472121315515</id><published>2010-10-21T12:07:00.007+02:00</published><updated>2010-10-21T15:28:26.076+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk error Enterprise Single Signon EntSSO console Admin'/><title type='text'>Misleading error message part2: "Not enough storage is available to complete this operation" after changes settings with the BizTalk Console</title><content type='html'>Recently (actually since we use our new cluster environment) we receive the this message from time to time after changing some settings with the console:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_gj8qcx1USTk/TMAUHvboWOI/AAAAAAAAAJE/SaHsoJYkuAc/s1600/Bts_error.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 96px;" src="http://1.bp.blogspot.com/_gj8qcx1USTk/TMAUHvboWOI/AAAAAAAAAJE/SaHsoJYkuAc/s400/Bts_error.gif" alt="" id="BLOGGER_PHOTO_ID_5530442465634965730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It finally turns out that restart of the EntSSO service solves the problem although teh eventlog messages lead into another direction (reinstall etc.).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5243967472121315515?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5243967472121315515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5243967472121315515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5243967472121315515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5243967472121315515'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2010/10/misleading-errormessage-part2-not.html' title='Misleading error message part2: &quot;Not enough storage is available to complete this operation&quot; after changes settings with the BizTalk Console'/><author><name>Christian Brückner</name><uri>http://www.blogger.com/profile/10206859406502755658</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_gj8qcx1USTk/TMAUHvboWOI/AAAAAAAAAJE/SaHsoJYkuAc/s72-c/Bts_error.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-442366745572925052</id><published>2010-06-18T10:27:00.004+02:00</published><updated>2010-06-25T14:58:48.296+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk 2009'/><title type='text'>Guest post: Misleading error message with SAP WCF custom adapter</title><content type='html'>In an IDOC receive scenario using the WCF custom adapter with SAP binding we received the following error messages:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;The adapter "WCF-Custom" raised an error message. Details "Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_EXCEPTION. ErrorGroup=RFC_ERROR_APPLICATION_EXCEPTION. SapErrorMessage=OBJECT_UNKNOWN. AdapterErrorMessage=Error returned by RfcCallReceiveEx while calling RFC: IDOCTYPE_READ_COMPLETE..&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The solution is quite simple as it resides in the SAP setting for the RFC connection, transaction SM59. Switching the communication type to Unicode solved the problem.&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_gj8qcx1USTk/TBsxyJ3kWAI/AAAAAAAAAIs/2POjkUiBp-o/s1600/sm59.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 165px;" src="http://2.bp.blogspot.com/_gj8qcx1USTk/TBsxyJ3kWAI/AAAAAAAAAIs/2POjkUiBp-o/s400/sm59.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5484031708965918722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(This post is brougth to you by Franziska Kirschner, our great new team member)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-442366745572925052?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/442366745572925052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=442366745572925052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/442366745572925052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/442366745572925052'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2010/06/guest-post-misleading-error-message.html' title='Guest post: Misleading error message with SAP WCF custom adapter'/><author><name>Christian Brückner</name><uri>http://www.blogger.com/profile/10206859406502755658</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_gj8qcx1USTk/TBsxyJ3kWAI/AAAAAAAAAIs/2POjkUiBp-o/s72-c/sm59.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5255025484261144087</id><published>2009-12-25T18:58:00.003+01:00</published><updated>2011-01-04T10:18:18.916+01:00</updated><title type='text'>Sabbatical</title><content type='html'>I'm taking a sabbatical next year at &lt;a href="http://www.estrellasenlacalle.com/"&gt;Estrellas en la calle in Cochabamba, Bolivia&lt;/a&gt;, thus I won't post anything here in 2010.&lt;br /&gt;- Christoph&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;One year later, I'm back. Thanks for continue posting!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5255025484261144087?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5255025484261144087/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5255025484261144087' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5255025484261144087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5255025484261144087'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/12/sabbatical.html' title='Sabbatical'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1881293411255465830</id><published>2009-12-08T09:19:00.012+01:00</published><updated>2009-12-09T11:13:07.766+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EDISendPipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='EDIFACT Interchange'/><category scheme='http://www.blogger.com/atom/ns#' term='EDI Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk 2009'/><title type='text'>Directly Create an EDIFACT Interchange</title><content type='html'>If you want to create the EDIFACT interchange directly instead of using the built-in functionality of BizTalk, you can create your own schema and send it the EdiSendPipeline. When you use BizTalk's built-in batching functionality, you can see which schema BizTalk uses to prepare the interchange. As far as I see, you can build your custom interchange schema this way:&lt;br /&gt;&lt;br /&gt;Import...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Microsoft.BizTalk.Edi.BaseArtefacts.EdifactServiceSchema.dll (with namespace "http://schemas.microsoft.com/Edi/EdifactServiceSchema")&lt;br /&gt;&lt;/li&gt;&lt;li&gt;the EDI schema, e.g. EFACT_D06A_INVOIC_2.0&lt;/li&gt;&lt;/ul&gt;Create...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;root node "EdifactInterchangeXml"&lt;/li&gt;&lt;li&gt;Below root, Create attribut @DelimiterSetSerializedData and set fixed value to 39:-1:-1:43:58:63:42:44:-1 (if this is how UNA should look like).&lt;/li&gt;&lt;li&gt;Below root, create groups UNA, UNB, UNZ and reference the types from the EdifactServiceSchema&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Below root, create group "TransactionSetGroup" and subgroup "TransactionSet"&lt;/li&gt;&lt;li&gt;Below "TransactionSet", create a group that references the EDIFACT schema&lt;/li&gt;&lt;li&gt;Below "TransactionSet", create attribute @TransactionSetActivityId&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Below "TransactionSet", create attribute @DocType and set fixed value to http://schemas.microsoft.com/BizTalk/EDI/EDIFACT/2006#EFACT_D06A_INVOIC_2.0&lt;/li&gt;&lt;/ul&gt;The result looks like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_veWljF8Zy78/Sx5TlT4IAwI/AAAAAAAABXw/9lZz_afyoaE/s1600-h/EDI+Interchange+INVOIC+Schema.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 332px; height: 218px;" src="http://2.bp.blogspot.com/_veWljF8Zy78/Sx5TlT4IAwI/AAAAAAAABXw/9lZz_afyoaE/s400/EDI+Interchange+INVOIC+Schema.jpg" alt="" id="BLOGGER_PHOTO_ID_5412855702601859842" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1881293411255465830?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1881293411255465830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1881293411255465830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1881293411255465830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1881293411255465830'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/12/directly-create-edifact-interchange.html' title='Directly Create an EDIFACT Interchange'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_veWljF8Zy78/Sx5TlT4IAwI/AAAAAAAABXw/9lZz_afyoaE/s72-c/EDI+Interchange+INVOIC+Schema.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1484928161666957673</id><published>2009-12-08T09:14:00.004+01:00</published><updated>2009-12-08T12:00:58.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk error'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline Component'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Weired Error "This is often an indication that other memory is corrupt." executing pipeline component</title><content type='html'>After migrating our biztalk app to 2009 we received a confusing error message everytime we dropped a file into a file receive location with a pipeline containing a bunch of pipeline components:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"There was a failure executing the receive pipeline: &lt;br /&gt;...&lt;br /&gt;Reason: Attempted to read or write protected memory. This is often an indication that other memory is corrupt"&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After along irritating searching we finally debugged the pipeline component and find the root cause:&lt;br /&gt;The call of &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;message.Context.Read(propertyName, propertyNamespace);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;within an pipeline component must not be done with a "Null" value of "propertyNamespace". Obviously there is no internal check for this and the following call within the unsafe code leads into a Null reference call and the error message above.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1484928161666957673?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1484928161666957673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1484928161666957673' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1484928161666957673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1484928161666957673'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/12/weired-error-this-is-often-indication.html' title='Weired Error &quot;This is often an indication that other memory is corrupt.&quot; executing pipeline component'/><author><name>Christian Brückner</name><uri>http://www.blogger.com/profile/10206859406502755658</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2649928551152279761</id><published>2009-12-04T14:35:00.004+01:00</published><updated>2009-12-08T09:19:04.698+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk 2009'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk bug'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Problems getting the current assembly in VS2008/BTS2009</title><content type='html'>BizTalk 2009 seems to copy self-developed BizTalk assemblies into hidden system folders. If you run into the problem that your assemblies are not updated (although you deploy them in Biztalk, add them to the GAC, or save them to the pipeline components folder), it might be that BizTalk still references an old version of the assembly that is in a system folder.&lt;br /&gt;&lt;br /&gt;In that case, find and delete the old version of the assembly and try again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2649928551152279761?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2649928551152279761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2649928551152279761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2649928551152279761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2649928551152279761'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/12/problems-getting-actual-assembly-in.html' title='Problems getting the current assembly in VS2008/BTS2009'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1199775190869947520</id><published>2009-11-20T12:10:00.008+01:00</published><updated>2009-12-03T15:38:09.082+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIME Properties'/><category scheme='http://www.blogger.com/atom/ns#' term='SMTP'/><category scheme='http://www.blogger.com/atom/ns#' term='Bodypart properties'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Sending E-Mails with multiple attachments with BizTalk 2006</title><content type='html'>If you want to send an email with several attachments using the SMTP Adapter of BizTalk, you have to set the following context properties:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;SMTP properties&lt;/span&gt; of the message: Subject, From, ...&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;MIME properties&lt;/span&gt; of each bodyparts: &lt;span style="font-weight: bold;"&gt;FileName &lt;/span&gt;and &lt;span style="font-weight: bold;"&gt;IsMIMEEncoded&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style=";font-family:georgia;font-size:130%;"  &gt;The latter could look like this:&lt;/span&gt;&lt;br /&gt;inmsg.BodyPart.PartProperties.Write("FileName", "http://schemas.microsoft.com/BizTalk/2003/mime-properties", "file.html");&lt;br /&gt;inmsg.BodyPart.PartProperties.Write("IsMIMEEncoded", "http://schemas.microsoft.com/BizTalk/2003/mime-properties", false);&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1199775190869947520?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1199775190869947520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1199775190869947520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1199775190869947520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1199775190869947520'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/11/sending-e-mails-with-multiple.html' title='Sending E-Mails with multiple attachments with BizTalk 2006'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-531149912366365611</id><published>2009-11-19T11:17:00.005+01:00</published><updated>2009-11-20T14:37:16.278+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='orchestration'/><category scheme='http://www.blogger.com/atom/ns#' term='alk'/><category scheme='http://www.blogger.com/atom/ns#' term='orchestration error'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk bug'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Errors exist for one or more children</title><content type='html'>After changing an orchestration only little, the build process sometimes throws an exception that says "Erros exist for one or more children". This message seems a bit random, since I couldn't find a real problem, like a missing assembly, definition, or port.&lt;br /&gt;&lt;br /&gt;In my case, it helped to recreate the construct shapes from the orchestration by deleting the shape, creating a new one, and adding the code of the deleted one. After that, the error disappeared.&lt;br /&gt;&lt;br /&gt;PS: You can even find the error message also inside the orchestration file. It might help to watch the changes inside the code, while you modify the orchestration in the orchestration designer. This way, you get a feeling of how BizTalk creates the code from the designer, and you can also observe when the error disappears.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-531149912366365611?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/531149912366365611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=531149912366365611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/531149912366365611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/531149912366365611'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/11/errors-exist-for-one-or-more-children.html' title='Errors exist for one or more children'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-7926783059415038496</id><published>2009-11-06T10:11:00.007+01:00</published><updated>2009-11-06T10:40:29.054+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Convoy Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='Statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Is the Convoy Pattern Orchestration getting slow?</title><content type='html'>In our team, we discussed whether our orchestrations that implement the convoy pattern are getting slower while processing message by message. A small test showed that this is not true, even if you call a sub-orchestration for each message. The time line moved like this in our test:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_veWljF8Zy78/SvPsWMQqNWI/AAAAAAAABXo/At_Ew_kEfWg/s1600-h/permessage.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 354px; height: 202px;" src="http://4.bp.blogspot.com/_veWljF8Zy78/SvPsWMQqNWI/AAAAAAAABXo/At_Ew_kEfWg/s400/permessage.jpg" alt="" id="BLOGGER_PHOTO_ID_5400920244139734370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There is just one exception where processing needs longer, but the mean duration is not increasing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-7926783059415038496?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/7926783059415038496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=7926783059415038496' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7926783059415038496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7926783059415038496'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/11/is-convoy-pattern-orchestration-getting.html' title='Is the Convoy Pattern Orchestration getting slow?'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_veWljF8Zy78/SvPsWMQqNWI/AAAAAAAABXo/At_Ew_kEfWg/s72-c/permessage.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1921489611295908161</id><published>2009-10-23T11:58:00.005+02:00</published><updated>2009-10-23T12:06:34.264+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk error'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>The part '%messagepart%' of message '%multipart message%' contained a null value at the end of the construct block.</title><content type='html'>BizTalk throws the following error when one tries to create a multipart message with a message part that was just created from a map in the same construct shape:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Shape name: Send_1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;ShapeId: 11910fdc-f4a1-4391-b09d-6a9bd0275ff8&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Exception thrown from: segment 1, progress 11&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Inner exception: &lt;span style="font-weight: bold;"&gt;The part '%messagepart%' of message '%multipart message%' contained a null value at the end of the construct block.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Exception type: NullPartException&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Source: Microsoft.XLANGs.Engine&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Target Site: Void CheckNonNull()&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;The following is a stack trace that identifies the location where the exception occured&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;at Microsoft.XLANGs.Core.Part.CheckNonNull()&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Somehow, BizTalk looses the value of the message part that was NOT mapped.&lt;br /&gt;&lt;br /&gt;A work-around for this is to create a second construct shape. One just creates the message part in a mapping, and the second shape puts the message parts together.&lt;br /&gt;&lt;br /&gt;Thanks, Christian!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1921489611295908161?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1921489611295908161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1921489611295908161' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1921489611295908161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1921489611295908161'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/10/part-messagepart-of-message-multipart.html' title='The part &apos;%messagepart%&apos; of message &apos;%multipart message%&apos; contained a null value at the end of the construct block.'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4715964978238911558</id><published>2009-10-05T10:01:00.004+02:00</published><updated>2009-10-16T11:52:51.404+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline Component'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>If the Pipeline Component doesn't appear in the Pipeline Editor toolbox</title><content type='html'>If your BizTalk pipeline component doesn't show up in the toolbox of the pipeline editor, you should check these things:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Is the GUID of the pipeline component the same in AssemblyInfo and in the class itself (it appears twice there)?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is the right assembly name used when instanciating an object of ResourceManager?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Are you using the same namespace outside the class, in the properties, and in the ResourceManager?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Is the assembly copied to %biztalk installation%\pipeline components?&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Are you looking for the right component type (encoder, decoder, ...) in the pipeline editor?&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4715964978238911558?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4715964978238911558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4715964978238911558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4715964978238911558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4715964978238911558'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/10/if-pipeline-component-doesnt-appear-in.html' title='If the Pipeline Component doesn&apos;t appear in the Pipeline Editor toolbox'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-3188976845364092507</id><published>2009-09-10T17:27:00.004+02:00</published><updated>2009-09-10T17:35:24.630+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Archiving Table Entries</title><content type='html'>If you want to backup table entries into a second table and delete them in the master table, you can use the folling SQL:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;DELETE FROM masterTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;OUTPUT DELETED.* INTO archiveTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FROM deletionTable&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;WHERE masterTable.ID=deletionTable.ID&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;while deletionTable contains the IDs of the entries, which should be deleted.&lt;br /&gt;&lt;br /&gt;When using this, all entries of the masterTable, which are joined to the IDs in the deletionTable are copied to the archiveTable and then deleted.&lt;br /&gt;&lt;br /&gt;Thanks, Ronny!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-3188976845364092507?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/3188976845364092507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=3188976845364092507' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3188976845364092507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3188976845364092507'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/09/archiving-table-entries.html' title='Archiving Table Entries'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6288131018061013905</id><published>2009-06-03T19:09:00.001+02:00</published><updated>2009-06-03T19:11:33.492+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><category scheme='http://www.blogger.com/atom/ns#' term='EDIFACT'/><title type='text'>EDIFACT in BizTalk 2009</title><content type='html'>In April, I talked at a meeting of the &lt;a href="http://biztalkusergroup.se/"&gt;Swedish BizTalk User Group&lt;/a&gt; on EDIFACT and BizTalk. If you are interested, check my presentation on &lt;a href="http://biztalkusergroup.se/blogs/info/archive/2009/04/01/presentationer-fr-229-n-edi-m-246-tet.aspx"&gt;EDIFACT in BizTalk 2009&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6288131018061013905?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6288131018061013905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6288131018061013905' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6288131018061013905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6288131018061013905'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/06/edifact-in-biztalk-2009.html' title='EDIFACT in BizTalk 2009'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-7750788695995261505</id><published>2009-03-10T15:49:00.004+01:00</published><updated>2009-06-03T19:20:22.325+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAP adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Limitation'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='IDoc'/><category scheme='http://www.blogger.com/atom/ns#' term='SendIdoc'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Sending Big IDocs with the WCF-Custom-Adapter</title><content type='html'>In &lt;a href="http://msdn.microsoft.com/en-us/library/cc185479.aspx "&gt;MSDN&lt;/a&gt;, there's a good explanation how to connect BizTalk and SAP with the WCF-Custom-Adapter. However, if you want to send big IDocs, there are some boundaries:&lt;br /&gt;&lt;br /&gt;If you use the action &lt;span style="font-weight:bold;"&gt;Idoc&lt;/span&gt;, you could get an exception like: "Failed to allocate a managed memory buffer of 123982965 bytes. The amount of available memory may be low."&lt;br /&gt;&lt;br /&gt;If you use &lt;span style="font-weight:bold;"&gt;SendIdoc&lt;/span&gt; instead, you get an exception in the receive pipeline: "Attempt to pass a delimited field greater than the maximum field length of 50000000."&lt;br /&gt;&lt;br /&gt;As soon as I find something out, I post it here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-7750788695995261505?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/7750788695995261505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=7750788695995261505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7750788695995261505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/7750788695995261505'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/03/sending-big-idocs-with-wcf-custom.html' title='Sending Big IDocs with the WCF-Custom-Adapter'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6607077057623876058</id><published>2009-02-26T11:59:00.003+01:00</published><updated>2009-10-21T11:54:02.884+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EDISendPipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Streaming'/><category scheme='http://www.blogger.com/atom/ns#' term='EDI Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Stream validates EDI code</title><content type='html'>When using the EDISendPipeline in BTS2006 R2, that might be interesting:&lt;br /&gt;My colleague Christian and me just found out that the EDI stream is validated by the stream reader while parsing the stream! So, when you work on the EDI stream which is produced by the EDI assembler, you get exceptions like "Error in serialization" if your EDI file is invalid. Quite clever how the programmers solved the validation of EDIFACT since it validates the file while returning it to the next step in the Send Pipeline.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Addition 2009-10-21:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Because of this, the&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;EDI stream can't be read twice in following self-build pipeline components and BodyPart.Data.CanSeek is set the false.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6607077057623876058?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6607077057623876058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6607077057623876058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6607077057623876058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6607077057623876058'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/02/stream-validates-edi-code.html' title='Stream validates EDI code'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-747278476717551106</id><published>2009-02-12T16:35:00.005+01:00</published><updated>2009-02-12T16:54:24.746+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Aggregate Hierarchies'/><category scheme='http://www.blogger.com/atom/ns#' term='HierarchyID'/><title type='text'>Aggregating Values from a Hierarchy</title><content type='html'>In a session about the SQL Server 2008 datatype HierarchyID, the question came up whether you can easily ask question such as: "If I store things (and sup-things and so on) with a number in a hierachy, can I sum up the numbers of a thing, including the subthings?" &lt;br /&gt;The answer is, yes, you can, and here is how it goes. The following code shows a table which hierarchically stores websites and their clickrate.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- create hierarchical table &lt;br /&gt;&lt;/span&gt;create table websiteCalls&lt;br /&gt;(&lt;br /&gt;path hierarchyid,&lt;br /&gt;filename nvarchar(100),&lt;br /&gt;clickCount int&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- insert root node "index"&lt;br /&gt;&lt;/span&gt;insert into websiteCalls values (hierarchyid::GetRoot(), 'index.html', 1000)&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- insert a level 1 entry "products"&lt;br /&gt;&lt;/span&gt;declare @index hierarchyid&lt;br /&gt;select @index = path from websiteCalls where filename='index.html'&lt;br /&gt;insert into websiteCalls values (@index.GetDescendant(null, null), 'products.html', 200)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- insert two more level 1 entries "customers" and "impressum"&lt;br /&gt;&lt;/span&gt;declare @products hierarchyid&lt;br /&gt;select @products = path from websiteCalls where filename='products.html'&lt;br /&gt;insert into websiteCalls values (@index.GetDescendant(@products, null), 'customers.html', 100)&lt;br /&gt;insert into websiteCalls values (@index.GetDescendant(null, @products), 'impressum.html', 10)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- insert a "product1" on level 2 &lt;br /&gt;&lt;/span&gt;insert into websiteCalls values (@products.GetDescendant(null, null), 'product1.html', 300)&lt;br /&gt;declare @product1 hierarchyid&lt;br /&gt;select @product1 = path from websiteCalls where filename='product1.html'&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- insert two more level 2 entries&lt;br /&gt;&lt;/span&gt;insert into websiteCalls values (@products.GetDescendant(@product1, null), 'product2.html', 50)&lt;br /&gt;insert into websiteCalls values (@products.GetDescendant(null, @product1), 'product0.html', 100)&lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- get all websites and their clickrates&lt;br /&gt;&lt;/span&gt;select path.ToString(), filename, clickCount from websiteCalls&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;-- get the sum of clickrate number of all product-pages:&lt;/span&gt;&lt;br /&gt;declare @products hierarchyid&lt;br /&gt;select @products = path from websiteCalls where filename='products.html'&lt;br /&gt;select SUM(clickcount) from websiteCalls where path.IsDescendantOf(@products) = 1 and path&lt;&gt;@products&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-747278476717551106?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/747278476717551106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=747278476717551106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/747278476717551106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/747278476717551106'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/02/aggregating-values-from-hierarchy.html' title='Aggregating Values from a Hierarchy'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1891184283808067289</id><published>2009-01-27T10:26:00.002+01:00</published><updated>2009-01-27T10:29:05.975+01:00</updated><title type='text'>Developing BizTalk with Professional Edition or Team Edition*</title><content type='html'>If you have to choose a Visual Studio 2005 edition to develop BizTalk 2006 in combination with Team Foundation Server, you should keep in mind that the Team Edition has all the features of the Professional Edition and some more (quoted from &lt;a href="http://www.microsoft.com/DOWNLOADS/details.aspx?FamilyID=727bcfb0-b575-47ab-9fd8-4ee067bb3a37&amp;displaylang=en#QuickInfoContainer"&gt;Microsoft&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;- Team Foundation Server CAL includfor accessing Team Foundation Server&lt;br /&gt;- Team Foundation Server Workgroup Edition included when purchasing Visual Studio Team System Editions with an MSDN Premium Subscription&lt;br /&gt;- 64-Bit Debugging (IA64) enables you to debug 64-bit applications running on Windows 64-bit computers remotely&lt;br /&gt;- Code Analysis Tools such as Code Analysis Check-in Policy (which enforces developers to run a code analysis before a check-in of code)&lt;br /&gt;- Code Profiling Tools like Hot Path (that helps finding bottle necks inside the code) and a Stand-Alone Profiler&lt;br /&gt;- Code Coverage to measure the effectiveness of tests on a line-by-line or even a block-by-block basis&lt;br /&gt;- Item templates to run Performance tests&lt;br /&gt;&lt;br /&gt;That means, that you can connect to the Team Foundation Server from Visual Studio if you just buy the CAL-licence which includes the Team Explorer. However, you won't get the benefits of the Team Edition then.&lt;br /&gt;&lt;br /&gt;*I'm using the term "Team Edition" as a short form for the Development Edition of Visual Studio Team System 2008.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1891184283808067289?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1891184283808067289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1891184283808067289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1891184283808067289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1891184283808067289'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/01/developing-biztalk-with-professional.html' title='Developing BizTalk with Professional Edition or Team Edition*'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-401862579719959616</id><published>2009-01-25T00:40:00.006+01:00</published><updated>2009-01-25T00:58:53.143+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Recursive TCE'/><category scheme='http://www.blogger.com/atom/ns#' term='HierarchyID'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Common Table Expressions'/><title type='text'>Managing hierarchical data in SQL Server 2008</title><content type='html'>There are roughly three different approaches to store and retrieve hierarchical data in SQL Server:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Parent-Child-Approach with Recursive TCE:&lt;/span&gt;&lt;br /&gt;You can save the ID of a node's parent in an extra “parent column”: &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_veWljF8Zy78/SXupPquBxlI/AAAAAAAAA1s/cgmX8Ix5Jq0/s1600-h/parent+child.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 213px; height: 190px;" src="http://1.bp.blogspot.com/_veWljF8Zy78/SXupPquBxlI/AAAAAAAAA1s/cgmX8Ix5Jq0/s320/parent+child.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5295011873534625362" /&gt;&lt;/a&gt;&lt;br /&gt;Then you connect the referenced items with recursive Common Table Expressions (CTE).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;HierarchyID data type:&lt;/span&gt;&lt;br /&gt;Or you save the node’s hierarchy location with the new data type HierarchyID, which stores a path to a node and, thus, reveals the where in a tree the row occurs. A sample table looks like this:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_veWljF8Zy78/SXupYRGbRhI/AAAAAAAAA10/SU3ziiAlVFg/s1600-h/hierarchyid.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 227px; height: 191px;" src="http://2.bp.blogspot.com/_veWljF8Zy78/SXupYRGbRhI/AAAAAAAAA10/SU3ziiAlVFg/s320/hierarchyid.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5295012021276460562" /&gt;&lt;/a&gt;&lt;br /&gt;The hierarchy is directly visible and, unlike in the simple parent-child-pattern, you have now the HierarchyID methods to work against the tree structure.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;XML data type:&lt;/span&gt;&lt;br /&gt;The third option is to represent the hierarchy in a XML document and store the instance in an xml column:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_veWljF8Zy78/SXuqXCtRcbI/AAAAAAAAA2E/8NReykMImX0/s1600-h/xml.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 400px; height: 52px;" src="http://3.bp.blogspot.com/_veWljF8Zy78/SXuqXCtRcbI/AAAAAAAAA2E/8NReykMImX0/s400/xml.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5295013099744620978" /&gt;&lt;/a&gt;&lt;br /&gt;Doing this, you can retrieve information from the tree using XQuery.&lt;br /&gt;&lt;br /&gt;This is meant to be a teaser... ;-) I'm going to write more about this the next days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-401862579719959616?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/401862579719959616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=401862579719959616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/401862579719959616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/401862579719959616'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/01/managing-hierarchical-data-in-sql.html' title='Managing hierarchical data in SQL Server 2008'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_veWljF8Zy78/SXupPquBxlI/AAAAAAAAA1s/cgmX8Ix5Jq0/s72-c/parent+child.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5246471634659389911</id><published>2009-01-20T14:53:00.007+01:00</published><updated>2009-01-21T10:52:14.480+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SE37'/><category scheme='http://www.blogger.com/atom/ns#' term='BAPI IDOCTYPES_FOR_MESTYPE_READ'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP .NET connector'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>How does the SAP adapter retrieve the list of IDocs?</title><content type='html'>At a customer, we had the problem that the SAP adapter (building on SAP .net Connector v1.0.2) didn't retrieve the IDoc that we wanted to call:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_veWljF8Zy78/SXXXu-KgXrI/AAAAAAAAA1U/jP2p-UBtfFQ/s1600-h/Search+MSCONS.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 245px;" src="http://3.bp.blogspot.com/_veWljF8Zy78/SXXXu-KgXrI/AAAAAAAAA1U/jP2p-UBtfFQ/s320/Search+MSCONS.jpg" alt="" id="BLOGGER_PHOTO_ID_5293374139004903090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To analyse how the SAP adapter retrieves this list of IDocs, we traced the RFC communication between SAP and BizTalk (transaction ST05*) and found out that the SAP .net Connector uses the BAPIs RFC_SYSTEM_INFO and IDOCTYPES_FOR_MESTYPE_READ to get a list of IDocs which are released:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_veWljF8Zy78/SXXX21POSuI/AAAAAAAAA1c/wZ3F1S3Lr1g/s1600-h/Basic+Trace+List.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 93px;" src="http://1.bp.blogspot.com/_veWljF8Zy78/SXXX21POSuI/AAAAAAAAA1c/wZ3F1S3Lr1g/s320/Basic+Trace+List.jpg" alt="" id="BLOGGER_PHOTO_ID_5293374274047724258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Using transaction SE37, we (thanks, Rüdiger!) could analyse the BAPI IDOCTYPES_FOR_MESTYPE_READ and see that it uses the table EDIMSG to get the IDocs. And their we saw that the BAPI doesn't call for "message types" instead of "basic types". And, guess what, the message type had a different name then the basic type (which makes perfectly sense) and, thus, couldn't be found.&lt;br /&gt;&lt;br /&gt;* Tipp: When logging to SAP to trace, you have to use the same user that you use inside the Send Port / Receive Location.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5246471634659389911?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5246471634659389911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5246471634659389911' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5246471634659389911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5246471634659389911'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/01/retrieve-idoc-list-with-sap-adapter.html' title='How does the SAP adapter retrieve the list of IDocs?'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_veWljF8Zy78/SXXXu-KgXrI/AAAAAAAAA1U/jP2p-UBtfFQ/s72-c/Search+MSCONS.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-8784747339638955975</id><published>2009-01-19T08:57:00.006+01:00</published><updated>2009-01-21T11:01:19.850+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WE20'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='WE30'/><category scheme='http://www.blogger.com/atom/ns#' term='IDoc'/><category scheme='http://www.blogger.com/atom/ns#' term='WE60'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP .NET connector'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>How to solve Problems when accessing an IDoc with the SAP Adapter</title><content type='html'>If you can't see an IDoc when you try to create a schema in Visual Studio using the SAP adapter (building on SAP .net connector 1.0.2), the problem is usually that the IDocs hasn't been published ("freigegeben"). You can check this here:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;we60 &lt;/span&gt;- Check whether your IDoc is known in a specific SAP Release (we often had the problem that segments of an IDoc weren't known in a release)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;we30 &lt;/span&gt;- You can check here whether all segements are published. Click on the segment, then "segment editor". There's a checkbox whether this segment is published.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;we20 &lt;/span&gt;- If you can access the IDoc but can't send data to it, the IDoc might miss a partner agreement ("Partnervereinbarung").&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-8784747339638955975?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/8784747339638955975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=8784747339638955975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8784747339638955975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8784747339638955975'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/01/if-you-cant-access-idoc-with-sap.html' title='How to solve Problems when accessing an IDoc with the SAP Adapter'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-53880036094263236</id><published>2009-01-16T11:32:00.006+01:00</published><updated>2009-01-19T10:45:40.596+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Bizalk'/><category scheme='http://www.blogger.com/atom/ns#' term='Mapping'/><title type='text'>Creating Functoids inside the XML Code of the Mapping File</title><content type='html'>I had to create a BizTalk mapping with 246 Logical Existence-Functoids, which always checked whether a source field existed and then enabled or disabled the source field. You can save quite a lot of time (and I guess manual mistakes), if you use an text editor to create the XML manually to the transformation file (the format is called BTM and it's XML).&lt;br /&gt;&lt;br /&gt;So, in case, your mapping looks like this, and you need many more functoids of that kind...&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_veWljF8Zy78/SXBjX2dQLAI/AAAAAAAAA1M/m2-vyk2Fw-k/s1600-h/Mapping.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 170px;" src="http://2.bp.blogspot.com/_veWljF8Zy78/SXBjX2dQLAI/AAAAAAAAA1M/m2-vyk2Fw-k/s320/Mapping.jpg" alt="" id="BLOGGER_PHOTO_ID_5291838823566683138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1) Open the transformation in some text editor.&lt;br /&gt;&lt;br /&gt;2) Save the code of a new created functoid, for example:&lt;br /&gt;&amp;lt;functoid functoidid="236" x-cell="59" y-cell="60" fid="317" name="Logical String" label=""&amp;gt;&amp;lt;input-parameters&amp;gt;&amp;lt;/functoid&amp;gt;&lt;br /&gt;&lt;br /&gt;3) Paste the code to a new file and put tabs into each line so that the code looks like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;functoid functoidid="[tab]236[tab]" x-cell="59" y-cell="[tab]60[tab]" fid="317" name="Logical String" label=""&amp;gt;&amp;lt;input-parameters&amp;gt;&amp;lt;/functoid&amp;gt;&lt;br /&gt;&lt;br /&gt;4) Now, copy the content to Excel and copy the lines so that the number, which should be pasted to extra columns, are increased-&lt;br /&gt;&lt;br /&gt;5) Copy the content to a text editor, delete the tabs again and paste the code into the transformation file.&lt;br /&gt;&lt;br /&gt;Ops! You should take care that the text editor that opens the BTM file externally doesn't change the unicode of the file.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-53880036094263236?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/53880036094263236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=53880036094263236' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/53880036094263236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/53880036094263236'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2009/01/creating-functoid-xml-code-manually.html' title='Creating Functoids inside the XML Code of the Mapping File'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_veWljF8Zy78/SXBjX2dQLAI/AAAAAAAAA1M/m2-vyk2Fw-k/s72-c/Mapping.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4502192748475843708</id><published>2008-08-21T16:07:00.006+02:00</published><updated>2008-08-22T08:50:38.531+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Archiving'/><category scheme='http://www.blogger.com/atom/ns#' term='UPDATETEXT'/><category scheme='http://www.blogger.com/atom/ns#' term='Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Archive Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Archive Messages with a BizTalk Pipeline to a Database</title><content type='html'>In a BizTalk project, &lt;a href="http://blogical.se/blogs/mikael/"&gt;Mikael Håkansson&lt;/a&gt; and me had to create a receive pipeline in BizTalk, which archives messages to the database. A colleague of mine (&lt;a href="http://www.blogger.com/profile/10206859406502755658"&gt;Christian Brückner&lt;/a&gt;, which blogs here sometimes, too) inspired us to use the SQL-Command &lt;span style="font-weight: bold;"&gt;UPDATETEXT&lt;/span&gt; to store the messages in streams to the database. The result is quite cool and can be read on Mikael's blog post &lt;a href="http://blogical.se/blogs/mikael/archive/2008/04/30/biztalk-sql-message-archive-component-using-forward-only-streaming.aspx"&gt;BizTalk SQL Message Archive component using Forward-Only Streaming&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4502192748475843708?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4502192748475843708/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4502192748475843708' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4502192748475843708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4502192748475843708'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/08/archive-messages-with-biztalk-pipeline.html' title='Archive Messages with a BizTalk Pipeline to a Database'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4692167788271538256</id><published>2008-08-13T16:19:00.003+02:00</published><updated>2008-08-13T16:23:10.528+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Limitation'/><category scheme='http://www.blogger.com/atom/ns#' term='MSMQ'/><category scheme='http://www.blogger.com/atom/ns#' term='EDI Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Hot Fix Released to use MSMQ and EdiReceive Pipeline</title><content type='html'>On April 1, 2008, Microsoft released a hot fix for the bug that we found when using the EDIReceive-Pipeline with MSMQ (see blog entry from September 2007). The hot fix can be downloaded here: &lt;a href="http://support.microsoft.com/kb/948747/en-us"&gt;http://support.microsoft.com/kb/948747/en-us&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4692167788271538256?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4692167788271538256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4692167788271538256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4692167788271538256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4692167788271538256'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/08/hot-fix-released-to-use-msmq-and.html' title='Hot Fix Released to use MSMQ and EdiReceive Pipeline'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-8270718778073044989</id><published>2008-04-18T09:15:00.007+02:00</published><updated>2008-05-06T16:59:11.787+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Migrating BizTalkMgmtDb'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk parties'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Export/Import BizTalk Parties with Database functions</title><content type='html'>Christian has already explained &lt;a href="http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/exportimport-large-amount-of-parties.html"&gt;how to export and import large amounts of BizTalk parties with BindingImport&lt;/a&gt;. Now, we were thinking of exporting the BizTalk parties directly from one BizTalkMgmtDb to a new server without BizTalk parties. You can do this in six steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Check wether there are no parties yet saved on the target server (check bts_party)&lt;/li&gt;&lt;li&gt;Temporarily disable the identity flag for the primary key columns n_id of the tables bts_party and bts_party_alias on the target database.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Copy the table bts_party from the source system to the target database (you can't copy both tables in one step due to references' integrity).&lt;/li&gt;&lt;li&gt;Enable the identity flag for column n_id in table bts_party on the target database.&lt;/li&gt;&lt;li&gt;Copy the table bts_party_alias from the source system to the target database.&lt;/li&gt;&lt;li&gt;Enable the identity flag for column n_id in table bts_party_alias on the target database.&lt;/li&gt;&lt;/ol&gt;There are also other party tables such as bts_party_sendport, bts_enlistedparty, bts_enlistedparty_operation_mapping, and bts_enlistedparty_port_mapping. However, those connect parties to sendports, role links, mappings and ports, and should be rather configured than directly changed inside the database.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;If you also want to adapt more EDIFACT configurations, you have to migrate the tables that start with "EdiPartner", too!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-8270718778073044989?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/8270718778073044989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=8270718778073044989' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8270718778073044989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8270718778073044989'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/04/exportimport-biztalk-parties-with.html' title='Export/Import BizTalk Parties with Database functions'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-3860985880223827052</id><published>2008-03-14T11:47:00.003+01:00</published><updated>2008-11-13T02:53:34.207+01:00</updated><title type='text'>Martin, have fun!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_veWljF8Zy78/R9pX2jB7x1I/AAAAAAAAAAw/s-7TgXrZJwY/s1600-h/compilationerror.GIF"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_veWljF8Zy78/R9pX2jB7x1I/AAAAAAAAAAw/s-7TgXrZJwY/s320/compilationerror.GIF" alt="" id="BLOGGER_PHOTO_ID_5177547316243711826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sometimes, error messages don't really help. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-3860985880223827052?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/3860985880223827052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=3860985880223827052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3860985880223827052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3860985880223827052'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/03/martin-have-fun.html' title='Martin, have fun!'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_veWljF8Zy78/R9pX2jB7x1I/AAAAAAAAAAw/s-7TgXrZJwY/s72-c/compilationerror.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6245605471764921129</id><published>2008-02-21T15:28:00.006+01:00</published><updated>2008-02-21T16:07:58.551+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='EDI_SEGMENTS_ADD_BLOCK'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP .NET connector'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty.</title><content type='html'>The error "EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty"* was thrown by the SAP .NET connector after sending an IDoc to SAP. The reason was that we've set data fields inside the EDI_DC40 element that SAP had to fill on its own, such as&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DOCNUM&lt;/li&gt;&lt;li&gt;CREDAT&lt;/li&gt;&lt;li&gt;CRETIM&lt;/li&gt;&lt;li&gt;RCVPOR&lt;/li&gt;&lt;li&gt;SNDPOR&lt;/li&gt;&lt;li&gt;DOCNUM from the DATAHEADERREC element&lt;/li&gt;&lt;/ul&gt;Now, we are leaving these empty, and the IDoc can be received by SAP.&lt;br /&gt;&lt;br /&gt;Thus, if you get the same error, check which fields you should set, and which SAP should set on its own.&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;&lt;span style="font-size:85%;"&gt;* in German SAP systems: "EDI: Die an EDI_SEGMENTS_ADD_BLOCK übergebene Tabelle ist leer"&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6245605471764921129?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6245605471764921129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6245605471764921129' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6245605471764921129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6245605471764921129'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/02/edi-table-passed-to-edisegmentsaddblock.html' title='EDI: Table passed to EDI_SEGMENTS_ADD_BLOCK is empty.'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2737409158065902506</id><published>2008-02-20T18:36:00.003+01:00</published><updated>2008-02-20T18:40:55.663+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP .NET adapter'/><category scheme='http://www.blogger.com/atom/ns#' term='SAP'/><category scheme='http://www.blogger.com/atom/ns#' term='Installation'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Short Installation guide to integrate SAP-BizTalk connectivity in Visual Studo 2005</title><content type='html'>To integrate SAP connectivity into BizTalk 2006 R2 and Visual Studio 2005, you have to follow these steps:&lt;br /&gt;&lt;br /&gt;1. Install the runtime version of &lt;span style="font-weight:bold;"&gt;SAP .NET Connector (NCO) for Visual Studio v1.0.x&lt;/span&gt; which is a prerequisite for (2) - you can download the connector from the SAP Marketplace Web site.&lt;br /&gt;&lt;br /&gt;2. Install &lt;span style="font-weight:bold;"&gt;BizTalk Adapter v2.0 for mySAP Buesiness Suite&lt;/span&gt; which is available here: &lt;a href="https://www.ms2.cn/downloads/details.aspx?FamilyId=7DBF88DE-8C23-4B25-A389-D5ACF1B1FCBE&amp;displaylang=en"&gt;https://www.ms2.cn/downloads/details.aspx?FamilyId=7DBF88DE-8C23-4B25-A389-D5ACF1B1FCBE&amp;displaylang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3. Install the adapter's &lt;span style="font-weight:bold;"&gt;Service Pack 1&lt;/span&gt; and ignore the obsolete &lt;span style="font-style:italic;"&gt;Error 6000&lt;/span&gt;-message by clicking "OK".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2737409158065902506?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2737409158065902506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2737409158065902506' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2737409158065902506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2737409158065902506'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/02/installation-to-integrate-sap-biztalk.html' title='Short Installation guide to integrate SAP-BizTalk connectivity in Visual Studo 2005'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-8537361771231811089</id><published>2008-02-04T15:21:00.003+01:00</published><updated>2011-12-20T16:01:04.695+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPath'/><category scheme='http://www.blogger.com/atom/ns#' term='InvalidOperationException'/><category scheme='http://www.blogger.com/atom/ns#' term='xpath()'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Using BizTalk's command xpath(msg,string) correctly</title><content type='html'>If you want to use BizTalk's xpath()-method in an Expression shape of Visual Studio's BizTalk Orchestration designer, you have to think of the return of the xpath carefully.&lt;br /&gt;&lt;br /&gt;If you use the following:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[string] s = xpath(msg1, "/*[local-name()='Root' and namespace-uri()='http://TestBiztalkXPathCommand.Schema1'] /*[local-name()='name' and namespace-uri()='']")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;to get the value at node "name", you'll receive the following error while running the orchestration:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;...&lt;br /&gt;Inner exception: There is an error in the XML document.&lt;br /&gt;Exception type: InvalidOperationException&lt;br /&gt;Source: System.Xml&lt;br /&gt;[...]&lt;br /&gt;Additional error information:&lt;br /&gt;      &lt;name xmlns=""&gt; was not expected.&lt;br /&gt;[...]&lt;br /&gt;Target Site: System.Object Read_string()&lt;/name&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The reason is that this XPath statements navigates to an XML node and, thus, an object of the class System.Xml.XmlNode is returned (and not a String). Since the XPath statement is not analyzed while building the DLL, the error occurs while running primary.&lt;br /&gt;&lt;br /&gt;Thus, you should add &lt;span style="font-weight: bold;"&gt;/text()&lt;/span&gt; to your XPath statement, so that a string is returned. In this case, the following would work successfully:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[string] s = xpath(msg1, "/*[local-name()='Root' and namespace-uri()='http://TestBiztalkXPathCommand.Schema1'] /*[local-name()='name' and namespace-uri()='']/text()")&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geekswithblogs.net/cyoung/archive/2006/12/12/100981.aspx"&gt;Charles Young's blogpost on xpath()&lt;/a&gt; was helpful to fix this problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Addition (June 3, 2008) : &lt;/span&gt;My colleague &lt;a href="http://www.blogger.com/profile/10206859406502755658"&gt;Christian&lt;/a&gt; found out that you should invoke some mysterious "string()"-method inside the xpath statement:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;xpathExpression = "/*[local-name()='Root' and namespace-uri()='http://TestBiztalkXPathCommand.Schema1'] /*[local-name()='name' and namespace-uri()='']";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[string] s = xpath(msg1, "&lt;span style="font-weight: bold;"&gt;string(&lt;/span&gt;" + xpathExpression + "/text()&lt;span style="font-weight: bold;"&gt;)&lt;/span&gt;")&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Thus, you get less XPath errors (I don't know yet how that exactly works; but I know that string(...) is not an XPath expression).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-8537361771231811089?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/8537361771231811089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=8537361771231811089' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8537361771231811089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/8537361771231811089'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/02/using-biztalks-command-xpathmsgstring.html' title='Using BizTalk&apos;s command xpath(msg,string) correctly'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1694447392108363226</id><published>2008-02-04T09:02:00.001+01:00</published><updated>2008-03-18T13:45:50.430+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Else'/><category scheme='http://www.blogger.com/atom/ns#' term='When'/><category scheme='http://www.blogger.com/atom/ns#' term='Query'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Case'/><category scheme='http://www.blogger.com/atom/ns#' term='Select'/><title type='text'>Using CASE in SQL Queries</title><content type='html'>This morning, I've got to know the CASE functionality of SQL Server (which surely exists in other databases, too). With CASE you can set values for a column under specified conditions, e.g.&lt;br /&gt;&lt;br /&gt;SELECT&lt;br /&gt;Column1,&lt;br /&gt;      Column2 = &lt;span style="font-weight: bold;"&gt;CASE &lt;/span&gt;&lt;br /&gt;          &lt;span style="font-weight: bold;"&gt;WHEN &lt;/span&gt;Column1 = '1' &lt;span style="font-weight: bold;"&gt;THEN &lt;/span&gt;'Y'&lt;br /&gt;          &lt;span style="font-weight: bold;"&gt;ELSE &lt;/span&gt;'N'&lt;br /&gt;      &lt;span style="font-weight: bold;"&gt;END&lt;/span&gt;&lt;br /&gt;FROM Table1&lt;br /&gt;&lt;br /&gt;Thus, column2 will be set with 'Y' if column1 has the value '1'; otherweise 'N' will be set.&lt;br /&gt;&lt;br /&gt;PS: An &lt;a href="http://www.craigsmullins.com/ssu_0899.htm"&gt;overview by Craig S Mullins&lt;/a&gt; helps to understand this method in more detail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1694447392108363226?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1694447392108363226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1694447392108363226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1694447392108363226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1694447392108363226'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/02/using-case-in-sql-queries.html' title='Using CASE in SQL Queries'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4844115702884786458</id><published>2008-01-30T10:05:00.000+01:00</published><updated>2008-01-30T10:11:45.705+01:00</updated><title type='text'>Visual Studio throws error while building: The process cannot access the file as it is being used by another process.</title><content type='html'>The error "The process cannot access the file as it is being used by another process." is thrown by Visual Studio (here 2005) if an assembly, that is used by the building process, is blocked by another process.&lt;br /&gt;&lt;br /&gt;A useful program to find the blocking process is &lt;a href="http://www.sysinternals.com/"&gt;Process Explorer (v11.04)&lt;/a&gt;. Furthermore, you should check other sessions on the development system and, also, other machines that could have the same solution opened remotely.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4844115702884786458?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4844115702884786458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4844115702884786458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4844115702884786458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4844115702884786458'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2008/01/visual-studio-return-build-error.html' title='Visual Studio throws error while building: The process cannot access the file as it is being used by another process.'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2525798950413169540</id><published>2007-12-17T16:49:00.000+01:00</published><updated>2007-12-17T17:08:17.839+01:00</updated><title type='text'>Shrinking SQL Server Log file</title><content type='html'>The logfile of the BizTalk Server Message Box database (BiztalkMsgBoxDb) is rapidly growing if you the recovery model is set to "full".&lt;br /&gt;&lt;br /&gt;At first you should try this (taken from &lt;a href="http://www.fuzzydev.com/blogs/dotnet/archive/2006/08/19/Shrink_SQL_Server_Log_File.aspx"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;ALTER DATABASE BiztalkMsgBoxDb&lt;br /&gt;SET RECOVERY SIMPLE;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;DBCC SHRINKFILE (BiztalkMsgBoxDb_log, 1);&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;ALTER DATABASE BiztalkMsgBoxDb&lt;br /&gt;SET RECOVERY FULL;&lt;br /&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In some cases you're not able to shrink this file.&lt;br /&gt;This may refer to some dead processes and unfinished transactions.&lt;br /&gt;&lt;br /&gt;Your can check for the oldest transactions using:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DBCC OPENTRAN ('BizTalkMsgBoxDb')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you find a very old transaction there you may kill the PID with the Acitvity Monitor of the SQL Server Studio.&lt;br /&gt;Repeat the last two steps until all old transactions are disappeared.&lt;br /&gt;Finally do &lt;br /&gt;&lt;span style="font-weight:bold;"&gt;BACKUP LOG BizTalkMsgBoxDb WITH TRUNCATE_ONLY&lt;br /&gt;&lt;br /&gt;DBCC Shrinkfile ('BizTalkMsgBoxDb_log',2) &lt;/span&gt; (where "2" is the targeted Logfile size)&lt;br /&gt;&lt;br /&gt;and enjoy the new log sizes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2525798950413169540?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2525798950413169540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2525798950413169540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2525798950413169540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2525798950413169540'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/12/shrinking-sql-server-log-file.html' title='Shrinking SQL Server Log file'/><author><name>Christian Brückner</name><uri>http://www.blogger.com/profile/10206859406502755658</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-1627474616624589185</id><published>2007-11-19T14:07:00.000+01:00</published><updated>2008-11-13T02:53:34.636+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk error handling'/><category scheme='http://www.blogger.com/atom/ns#' term='Message Flow'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Error message can be found in BizTalk's Message Flow window</title><content type='html'>Sometimes it seems like BizTalk is trying to hide error messages. So, if you can't find any sufficient message neither at the suspended instances nor in the event viewer, here is another source of information: &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_veWljF8Zy78/R0GOsKN8ISI/AAAAAAAAAAo/A_rM5qZ61xU/s1600-h/Error+text+in+Message+Flow+GUI.JPG"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_veWljF8Zy78/R0GOsKN8ISI/AAAAAAAAAAo/A_rM5qZ61xU/s400/Error+text+in+Message+Flow+GUI.JPG" border="0" alt="BizTalk's Message Flow Window" id="BLOGGER_PHOTO_ID_5134541939487285538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. Open the &lt;span style="font-weight:bold;"&gt;Message Flow&lt;/span&gt; using the instance's context menu of HAT or Administration Console&lt;br /&gt;2. Use the link &lt;span style="font-weight:bold;"&gt;"Show tracked Orchestration Exceptions"&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;This will show you an error text, which actually explains the error. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-1627474616624589185?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/1627474616624589185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=1627474616624589185' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1627474616624589185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/1627474616624589185'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/11/error-message-can-be-found-in-biztalks.html' title='Error message can be found in BizTalk&apos;s Message Flow window'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_veWljF8Zy78/R0GOsKN8ISI/AAAAAAAAAAo/A_rM5qZ61xU/s72-c/Error+text+in+Message+Flow+GUI.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2787515373926729352</id><published>2007-11-12T18:13:00.000+01:00</published><updated>2007-11-13T09:49:08.698+01:00</updated><title type='text'>Error: BizTalk receives"empty" messages from WebService</title><content type='html'>Biztalk could receive "empty" messages from the Web Service, as it is deployed. Empty in this case means that the message looks like this:&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;account xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" xmlns="http://schemas.microsoft.com/crm/2006/WebServices" /&amp;gt;&lt;br /&gt;&lt;br /&gt;As you can see, only the root element "account" was given (so it's not really empty). &lt;br /&gt;&lt;br /&gt;However, the system that invokes the Web Service is definitly setting the input parameters.&lt;br /&gt;&lt;br /&gt;This happens, if the input schema of the orchestration is changed, but the Web Service is not created and deployed afterwards (e.g. using Visual Studio's wizard). Then, the out-dated Web Service receives unexpected parameters and passes only the root node to BizTalk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2787515373926729352?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2787515373926729352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2787515373926729352' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2787515373926729352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2787515373926729352'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/11/error-biztalk-receivesempty-messages.html' title='Error: BizTalk receives&quot;empty&quot; messages from WebService'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-3551699473518169821</id><published>2007-10-11T13:49:00.000+02:00</published><updated>2007-10-15T09:40:08.736+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Limitation'/><category scheme='http://www.blogger.com/atom/ns#' term='CRM'/><category scheme='http://www.blogger.com/atom/ns#' term='Work around'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Workaround for the BizTalk 2006/CRM Problem stating "Error in XML document (2, 2)"</title><content type='html'>After upgrading from BizTalk 2004 to BizTalk 2006, an error occured when receiving an error from the CRM WebService saying that there is an "Error in XML document (2, 2)".&lt;br /&gt;&lt;br /&gt;The message received by the orchestration changed, as the namespace was now given (the &lt;span style="color:#cc0000;"&gt;red part&lt;/span&gt; has not been given in BizTalk 2004):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;?xml version="1.0" ?&amp;gt;&lt;br /&gt;&amp;lt;guid &lt;font color="red"&gt;xmlns="http://schemas.microsoft.com/crm/2006/WebServices"&lt;/font&gt; &amp;gt;E4096CF2-2777-DC11-B068-001A4BAF607E&amp;lt;/guid&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And, the namespace http://schemas.microsoft.com/crm/2006/WebServices indeed does not have a root name entry for "guid" (as you can see in the Administration Console/Application X/Schema).&lt;br /&gt;&lt;br /&gt;I unfortunately don't know the reason for this, but, at least, we found a work around: We wrote a CRM wrapper, that encapsulates the functionality of envocing the CRM Web Service. This wrapper is published as a Web Service that receives exactly the same object &lt;span style="font-family:courier new;font-size:85%;"&gt;BusinessEntity&lt;/span&gt; like the CRM Web Service does. Than it invokes the CRM Web Services and returns the GUID. BizTalk than has no problem taking this GUID and work furtheron.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-3551699473518169821?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/3551699473518169821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=3551699473518169821' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3551699473518169821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/3551699473518169821'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/10/workaround-for-biztalk-2006crm-problem.html' title='Workaround for the BizTalk 2006/CRM Problem stating &quot;Error in XML document (2, 2)&quot;'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-5565361970118763711</id><published>2007-10-01T09:21:00.000+02:00</published><updated>2008-11-13T02:53:34.878+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Error'/><category scheme='http://www.blogger.com/atom/ns#' term='HAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>HAT error: ActiveView.ColumnAxis is null or not an object</title><content type='html'>When opening the BizTalk HAT, the following error occurs, if you have not installed Office XP's Web Components.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_veWljF8Zy78/RwCgX0uLxUI/AAAAAAAAAAg/i_FBYv0e9F0/s1600-h/activeview+error.gif"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_veWljF8Zy78/RwCgX0uLxUI/AAAAAAAAAAg/i_FBYv0e9F0/s400/activeview+error.gif" alt="" id="BLOGGER_PHOTO_ID_5116265507842671938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Install it from here: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=982B0359-0A86-4FB2-A7EE-5F3A499515DD&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=982B0359-0A86-4FB2-A7EE-5F3A499515DD&amp;amp;displaylang=en&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-5565361970118763711?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/5565361970118763711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=5565361970118763711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5565361970118763711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/5565361970118763711'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/10/hat-error-activeviewcolumnaxis-is-null.html' title='HAT error: ActiveView.ColumnAxis is null or not an object'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_veWljF8Zy78/RwCgX0uLxUI/AAAAAAAAAAg/i_FBYv0e9F0/s72-c/activeview+error.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6154325865386060785</id><published>2007-09-25T14:13:00.000+02:00</published><updated>2007-09-25T15:15:54.911+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft.XLANGs.BaseTypes.DesignerPosition'/><category scheme='http://www.blogger.com/atom/ns#' term='Duplicate GUID'/><category scheme='http://www.blogger.com/atom/ns#' term='Duplicate Shape'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>BizTalk Error 916 duplicate 'Microsoft.XLANGs.BaseTypes.DesignerPosition' attribute</title><content type='html'>If you receive the following error while building an BizTalk orchestration:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Error 916 duplicate 'Microsoft.XLANGs.BaseTypes.DesignerPosition' attribute&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;you now know that it's because you've copied a shape from orchestration A' to orchestration A, while A' has been a copy of A before. Because (only?) this copy produces a new orchestration shape in A that has the same GUID as the already existing shape.&lt;br /&gt;&lt;br /&gt;I guess, this error message pops up really, really seldom :-)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6154325865386060785?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6154325865386060785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6154325865386060785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6154325865386060785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6154325865386060785'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/biztalk-error-916-duplicate.html' title='BizTalk Error 916 duplicate &apos;Microsoft.XLANGs.BaseTypes.DesignerPosition&apos; attribute'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-6438972525437769360</id><published>2007-09-19T11:35:00.001+02:00</published><updated>2008-07-18T08:52:30.188+02:00</updated><title type='text'>Export/Import large amounts of Parties using BindingImport</title><content type='html'>&lt;div&gt;The party management of Biztalk gets a little bit slow and unhandy with a  a large amount of trading Partners.&lt;/div&gt; &lt;div&gt;Exporting about 12.000 BizTalk parties with the Binding Export tool  takes about 6 hours on a fast machine resulting in a 200 MB XML  binding file.&lt;br /&gt;&lt;br /&gt;For an import in smaller slices you can split the binding file in smaller pieces with a small program using XPathNavigator and XmlTextWriter:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XPathDocument xPathDocument = new XPathDocument (@"Bindingfile.xml");&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XPathNavigator nav = xPathCocument.CreateNavigator();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XPathNodeIterator partyCollection = nav.Select("/BindingInfo/PartyCollection/Party");&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Iterate over the partyCollection and create XML documents&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;XmlTextWriter xmlWriter = new XmlTextWriter(@"SmallBinding.xml",Encoding.UTF8);&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xmlWriter.WriteStartDocument();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xmlWriter.WriteStartElement("BindingInfo");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;xmlWriter.WriteStartElement("PartyCollection");     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Finally use BTS-Task to import the slice:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;Process process = new Process();&lt;br /&gt;process.StartInfo.FileName = @"C:\...\BTSTask.exe";&lt;br /&gt;process.StartInfo.Arguments = "importbindings -Source:" + @"SmallBinding.xml";&lt;br /&gt;process.Start();&lt;br /&gt;process.WaitForExit();&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-6438972525437769360?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/6438972525437769360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=6438972525437769360' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6438972525437769360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/6438972525437769360'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/exportimport-large-amount-of-parties.html' title='Export/Import large amounts of Parties using BindingImport'/><author><name>Christian Brückner</name><uri>http://www.blogger.com/profile/10206859406502755658</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-584813837583636600</id><published>2007-09-13T11:24:00.002+02:00</published><updated>2008-02-20T15:56:13.043+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hot fix'/><category scheme='http://www.blogger.com/atom/ns#' term='BizTalk Limitation'/><category scheme='http://www.blogger.com/atom/ns#' term='Direct Submit Port'/><category scheme='http://www.blogger.com/atom/ns#' term='EDI Pipeline'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Limitations in EDI pipeline and Direct Submit Port</title><content type='html'>We found two limitations with BizTalk 2006 R2 Beta2 (and RTM Bit's):&lt;br /&gt;&lt;br /&gt;(a) Invoke a direct submit port inside a biztalk orchestration (you have to implement and invoke a web service for direct submit)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Thanks to &lt;a href="http://geekswithblogs.net/Vishy/archive/2005/10/06/56217.aspx"&gt;Vishy&lt;/a&gt; (http://geekswithblogs.net/Vishy/archive/2005/10/06/56217.aspx)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;(b) Using the EDI send or receive pipelines in conjunction with the MSMQ adapter (you can use the FILE adapter, though)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;There was a failure executing the receive pipeline: "Microsoft.BizTalk.Edi.DefaultPipelines.EdiReceive, Microsoft.BizTalk.Edi.EdiPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "Pipeline " Receive Port: "ZES.ReceiveEdi.FL_Batch" URI: "FORMATNAME:DIRECT=OS:.\PRIVATE$\TESTMSMQ" Reason: The integer property value is not valid.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight:bold;"&gt;Microsoft will release a hot fix for this issue!&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-584813837583636600?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/584813837583636600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=584813837583636600' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/584813837583636600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/584813837583636600'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/we-found-two-limitations-with-biztalk.html' title='Limitations in EDI pipeline and Direct Submit Port'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-2434465654003155807</id><published>2007-09-12T10:49:00.000+02:00</published><updated>2007-09-12T10:54:02.981+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='large message'/><category scheme='http://www.blogger.com/atom/ns#' term='MSMQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Send Port'/><category scheme='http://www.blogger.com/atom/ns#' term='Message Queuing'/><category scheme='http://www.blogger.com/atom/ns#' term='MsmqAdapterProperties'/><category scheme='http://www.blogger.com/atom/ns#' term='Biztalk'/><title type='text'>Sending large messages to MSMQ via Dynamic Send Ports</title><content type='html'>I had troubles figuring out how to send large messages to MSMQ when using a dynamic send port in BizTalk. Developing a connection to MSMQ with "late binding" is straightforward, as you just have to configure a send port - however, doing this via code is less easy.&lt;br /&gt;&lt;br /&gt;However, if you follow these steps, it's not a big clue:&lt;br /&gt;&lt;br /&gt;1. Create a queue in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;Computer Management &gt; Services and Applications &gt; Message Queuing&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;2. In your BizTalk Projekt, import the library Microsoft.BizTalk.Adapter.MSMQ.MsmqAdapterProperties.dll, stored in &lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;%Program Files%\Microsoft BizTalk Server 2006&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;3. In a construct message shape, assign the following port properties to the output message:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;// to set the admin queue:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;Message(MSMQ.AdministrationQueue) = @"FORMATNAME:DIRECT=OS:.\PRIVATE$\MSMQADMINQUEUE";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;// to make it transactional:&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;Message(MSMQ.Transactional) = true;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;Message(MSMQ.MaximumMessageSize) = 10240;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;Message(MSMQ.SegmentationSupport) = true;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;br /&gt;&lt;br /&gt;// to assign a special name:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;Message(MSMQ.Label) = System.Convert.ToString("ABC");&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;... and define the target MSMQ queue in the send port object:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-family: georgia;font-size:100%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: courier new;"&gt;SendPort(Microsoft.XLANGs.BaseTypes.Address) = @"msmq://FORMATNAME:DIRECT=OS:.\PRIVATE$\TESTMSMQ";&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Voilà!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Thanks to Scott Colestock (&lt;a href="http://www.traceofthought.net/PermaLink,guid,cbd9b038-f952-479c-85b2-84398c451623.aspx"&gt;http://www.traceofthought.net/PermaLink,guid,cbd9b038-f952-479c-85b2-84398c451623.aspx&lt;/a&gt;) and MSDN's MSMQ Properties Page (&lt;a href="http://msdn2.microsoft.com/en-us/library/aa577593.aspx"&gt;http://msdn2.microsoft.com/en-us/library/aa577593.aspx&lt;/a&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-2434465654003155807?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/2434465654003155807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=2434465654003155807' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2434465654003155807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/2434465654003155807'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/sending-large-messages-to-msmq-via.html' title='Sending large messages to MSMQ via Dynamic Send Ports'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5283839419879477416.post-4650199880936466655</id><published>2007-09-12T09:19:00.000+02:00</published><updated>2008-11-13T02:53:35.139+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog opener'/><title type='text'>Opener - or: This developer is (not only) driven by chocolate</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_veWljF8Zy78/RueUoMGrJeI/AAAAAAAAAAM/woIbLN3c2gI/s1600-h/Foto-0020.jpg"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_veWljF8Zy78/RueUoMGrJeI/AAAAAAAAAAM/woIbLN3c2gI/s320/Foto-0020.jpg" alt="" id="BLOGGER_PHOTO_ID_5109215720440014306" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;My first entry shows an important piece of motivation:&lt;/span&gt; an extra large chocolate that I just received as a gift from one of my colleagues. So, if you ever need an answer to a question, don't forget to send some chocolate! ;-) &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;In my daily work as a software developer,&lt;/span&gt; I'm used to fight with computer systems. After finding a lot of solutions in blogs, I decided to make up my own blog to publish this or that solution to a pitfall that I discover (or think to discover).&lt;br /&gt;&lt;br /&gt;Have fun!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5283839419879477416-4650199880936466655?l=eai-technologies-and-their-pitfalls.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://eai-technologies-and-their-pitfalls.blogspot.com/feeds/4650199880936466655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5283839419879477416&amp;postID=4650199880936466655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4650199880936466655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5283839419879477416/posts/default/4650199880936466655'/><link rel='alternate' type='text/html' href='http://eai-technologies-and-their-pitfalls.blogspot.com/2007/09/my-first-entry-shows-important-piece-of.html' title='Opener - or: This developer is (not only) driven by chocolate'/><author><name>Christoph</name><uri>http://www.blogger.com/profile/07198417923984944826</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_veWljF8Zy78/TFOAzHM-8EI/AAAAAAAABaI/_DqeUZAvHnk/S220/IMG_0726.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_veWljF8Zy78/RueUoMGrJeI/AAAAAAAAAAM/woIbLN3c2gI/s72-c/Foto-0020.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
