<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUUFSXc5fCp7ImA9WhRaFEk.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030</id><updated>2012-02-17T02:46:58.924+01:00</updated><category term="Performancepoint" /><category term="BizTalk" /><category term="Windows Communication Foundation" /><category term="Cloud" /><title>Snatched moments</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://www.snatchedmoments.com/" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/SnatchedMoments" /><feedburner:info uri="snatchedmoments" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CU4ERX08fCp7ImA9WhRaEkQ.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-2283856264861518037</id><published>2012-02-15T09:18:00.001+01:00</published><updated>2012-02-15T09:18:24.374+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-15T09:18:24.374+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>BizTalk compile error with maps</title><content type="html">I am working with an integration against a SalesForce solution, where there is a very complex structure in SalesForce, where there are references that will never end in a recursive situation. This gives you an out of memory exception or your Visual Studio crashes.&amp;nbsp;&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The solution is to open the BizTalk map with an XML&amp;nbsp;editor&amp;nbsp;and change the (GenerateDefaultFixedNodes="Yes") to&amp;nbsp;(GenerateDefaultFixedNodes="No") or&amp;nbsp;(GenerateDefaultFixedNodes="RequiredDefaults"). If you have defaults in your map then you would need to take the last "RequiredDefaults" as you otherwise will miss those in your output.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Remember to test your mappings after you have done this change. See here for more information:&amp;nbsp;&lt;a href="https://mail.logica.com/owa/redir.aspx?C=67b5735ac57245de8ba73fb5bf152641&amp;amp;URL=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2flibrary%2faa561485.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa561485.aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-2283856264861518037?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r4A2lEq07F52h1GJtcC44rnORbQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r4A2lEq07F52h1GJtcC44rnORbQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r4A2lEq07F52h1GJtcC44rnORbQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r4A2lEq07F52h1GJtcC44rnORbQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/XgsUS0M4wyU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/2283856264861518037/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2012/02/biztalk-compile-error-with-maps.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2283856264861518037?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2283856264861518037?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/XgsUS0M4wyU/biztalk-compile-error-with-maps.html" title="BizTalk compile error with maps" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2012/02/biztalk-compile-error-with-maps.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IBQn87fyp7ImA9WhRbF0U.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-2567764045860651140</id><published>2012-02-09T13:12:00.001+01:00</published><updated>2012-02-09T13:12:33.107+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-09T13:12:33.107+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>Biztalk Server 2009 EDI parties, batches and deployment</title><content type="html">If you are using batches for EDI in BizTalk Server 2009 and earlier you might experience problems with deployment if you include your parties in your binding files or have a role link that have enlisted the party. If it is the later part you will always run into problems as you binding always includes parties even if you don't select it in your deployment.&lt;br /&gt;
&lt;br /&gt;
The normal way to deploy would go into each party and stop the batch as this will stop the orchestration that always is running. You can see your running orchestrations in the BizTalk hub where it is possible to see which parties that have a batch running.&lt;br /&gt;
&lt;br /&gt;
Well I ran into a case where it wasn't possible to see the batches in the BizTalk hub. Maybe someone terminated the orchestrations. And I had about 20 parties and with the slow BizTalk administration tool in BizTalk Server 2009 I wanted to find another way to find out which parties were blocking my deployment.&lt;br /&gt;
&lt;br /&gt;
As always there is the SQL way to find the information. What you want to look at is the output from this SQL:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TOP&lt;/span&gt; 1000 [PartyId]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[BatchOrchestrationId]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[NumOccurences]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;[BatchId]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt;
[BizTalkMgmtDb]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[PAM_Batching_Log]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;/div&gt;
This gave my the following output:&lt;br /&gt;
&lt;br class="Apple-interchange-newline" /&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-vDfhnE4dtDk/TzO2te4ryQI/AAAAAAAAAfM/o1-cSLQmrpQ/s1600/EDI_Party_Batch.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="57" src="http://3.bp.blogspot.com/-vDfhnE4dtDk/TzO2te4ryQI/AAAAAAAAAfM/o1-cSLQmrpQ/s320/EDI_Party_Batch.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
And with the following SQL I could find the Party that was blocking by deployment:&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;SELECT&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt; &lt;span style="color: blue;"&gt;TOP&lt;/span&gt; 1000 [nID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[nvcName]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[nvcSignatureCert]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: grey; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;,&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;[nvcSignatureCertHash]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[nvcSID]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[nvcCustomData]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0.0001pt;"&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; mso-no-proof: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: grey;"&gt;,&lt;/span&gt;[DateModified]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&amp;nbsp; &lt;span style="color: blue;"&gt;FROM&lt;/span&gt;
[BizTalkMgmtDb]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[dbo]&lt;span style="color: grey;"&gt;.&lt;/span&gt;[bts_party]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: 'Times New Roman'; font-size: medium; line-height: normal;"&gt;
With that information I could find the party in BizTalk and stop the batch. Some day I am going to find a way to start and stop edi batches automatically during deployment...&amp;nbsp;&lt;/div&gt;
&lt;br class="Apple-interchange-newline" /&gt;&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-2567764045860651140?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/U03gd1aOOnTlOfF05tGIuI272E4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U03gd1aOOnTlOfF05tGIuI272E4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/U03gd1aOOnTlOfF05tGIuI272E4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/U03gd1aOOnTlOfF05tGIuI272E4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/4rOYTfyk7tc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/2567764045860651140/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2012/02/biztalk-server-2009-edi-parties-batches.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2567764045860651140?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2567764045860651140?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/4rOYTfyk7tc/biztalk-server-2009-edi-parties-batches.html" title="Biztalk Server 2009 EDI parties, batches and deployment" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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://3.bp.blogspot.com/-vDfhnE4dtDk/TzO2te4ryQI/AAAAAAAAAfM/o1-cSLQmrpQ/s72-c/EDI_Party_Batch.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.snatchedmoments.com/2012/02/biztalk-server-2009-edi-parties-batches.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUNRXgzfSp7ImA9WhRTF0o.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-2834258558632541434</id><published>2011-11-08T18:11:00.002+01:00</published><updated>2011-11-08T18:11:34.685+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T18:11:34.685+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Communication Foundation" /><title>WCF, OneWay and BizTalk</title><content type="html">In WCF there is an option in your contract to markup as an OneWay method like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [OperationContract(IsOneWay=true)]&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You will get the following error when you try to send a message from BizTalk to this WCF Service:&lt;/div&gt;
&lt;blockquote class="tr_bq"&gt;
Details:"System.ServiceModel.CommunicationException: The server did not provide a meaningful reply; this might be caused by a contract mismatch, a premature session shutdown or an internal server error.&lt;/blockquote&gt;
&lt;div&gt;
The problem with this is that BizTalk can't consume the WCF service as it only supports the Request/Reply pattern of WCF, so what options do you have when you have a fire-and-forget WCF service that you want to consume from BizTalk:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Change the attribute in your WCF Service, so the "IsOneWay" is set to "false". This is only an option if you have control over your WCF Service&lt;/li&gt;
&lt;li&gt;Create a wrapper around the WCF Service that wraps you service. This blog post is one way to do it:&amp;nbsp;&lt;a href="http://www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/"&gt;http://www.pvle.be/2008/12/calling-one-way-wcf-service-with-biztalk-wcf-adapter-part-2/&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
You should go for the solution it the order listed above.&amp;nbsp;Other possible solutions that I haven't tried, but might work (could be fun to try out at some point in time):&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Implement a custom behavior (could maybe also be a solution as you hook into the WCF model, but I am not sure if it will work)&lt;/li&gt;
&lt;li&gt;Implement your own WCF adapter using the WCF SDK (A lot of work, should work as you have complete control over the message flow)&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-2834258558632541434?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1sDGJBDSVSWKRVNcoU3nesX5Kx0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1sDGJBDSVSWKRVNcoU3nesX5Kx0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1sDGJBDSVSWKRVNcoU3nesX5Kx0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1sDGJBDSVSWKRVNcoU3nesX5Kx0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/DelZuG1Z3FA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/2834258558632541434/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/11/wcf-oneway-and-biztalk.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2834258558632541434?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/2834258558632541434?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/DelZuG1Z3FA/wcf-oneway-and-biztalk.html" title="WCF, OneWay and BizTalk" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2011/11/wcf-oneway-and-biztalk.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ACSHsyfip7ImA9WhRTEks.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-3679030838269176169</id><published>2011-11-02T20:19:00.000+01:00</published><updated>2011-11-02T20:22:49.596+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-02T20:22:49.596+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>WCF-SQL, BizTalk, notification and content based routing</title><content type="html">&lt;div&gt;
Many people use TypedPolling when they are working with BizTalk and wanting to poll data from the SQL Server and publish it to BizTalk, but there is another way where you use notification.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This sample show how to use notification with the WCF-SQL adapter and BizTalk. It shows that you can use notifications without orchestrations to call a stored procedure in a SQL Server database (Adventureworks) and send output from this stored procedure into the file system. The execution of the stored procedure is only done when BizTalk receives a notification from the SQL Server about something has changed in a table.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The first thing that is needed is that the SQL Server you are working with has SQL Broker installed and it is configured for the database that you want to poll data from:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-__S57e-Z5-0/TrFLuNabAII/AAAAAAAAAcw/IaQOR-7WMr4/s1600/SQLNotification0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="285" src="http://3.bp.blogspot.com/-__S57e-Z5-0/TrFLuNabAII/AAAAAAAAAcw/IaQOR-7WMr4/s320/SQLNotification0.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The next thing to do is to create a notification schema in your Visual Studio BizTalk project:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-QEHIPKQZT-g/TrFL_JdmWsI/AAAAAAAAAc4/vbWraAB5AnM/s1600/SQLNotification1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://2.bp.blogspot.com/-QEHIPKQZT-g/TrFL_JdmWsI/AAAAAAAAAc4/vbWraAB5AnM/s320/SQLNotification1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
This will give you this schema:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-IL2NkRcR1fI/TrFMYIvl2qI/AAAAAAAAAdA/WmlPdF7thak/s1600/SQLNotification2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://3.bp.blogspot.com/-IL2NkRcR1fI/TrFMYIvl2qI/AAAAAAAAAdA/WmlPdF7thak/s320/SQLNotification2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
The schema has 3 elements:&lt;/div&gt;
&lt;div&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Info --&amp;gt; contains the sql action that has been done on the table you are watching. Can be Insert, Update and more (&lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlnotificationinfo.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlnotificationinfo.aspx&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Source --&amp;gt; contains the if it is data, object or something else that is the course for the notification:&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlnotificationsource.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlnotificationsource.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Type --&amp;gt; contains the type of notification mostly change&amp;nbsp;&lt;a href="http://msdn.microsoft.com/en-us/library/z0fkxc6y.aspx"&gt;http://msdn.microsoft.com/en-us/library/z0fkxc6y.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
You should promote at least info and source element, so that you can use these fields for routing.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The next thing you need is to have a stored procedure that you can call to get the data from the SQL Server:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-X29Rf7yYPUw/TrFQLibResI/AAAAAAAAAdQ/XD5BOTXWA1E/s1600/SQLNotification4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://3.bp.blogspot.com/-X29Rf7yYPUw/TrFQLibResI/AAAAAAAAAdQ/XD5BOTXWA1E/s320/SQLNotification4.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
This procedure is just pretty simple and normally you would have some kind of logic to find out which rows that hasn't been polled from the table yet. It could be a datetime field, a boolean field or something else. There are plenty of examples of this on the net.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You then need to create a schema for this procedure, so that BizTalk knows how to call the procedure:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-TTddYk9vfUc/TrFPMXUMLxI/AAAAAAAAAdI/vy75JVR3Mn8/s1600/SQLNotification3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://3.bp.blogspot.com/-TTddYk9vfUc/TrFPMXUMLxI/AAAAAAAAAdI/vy75JVR3Mn8/s320/SQLNotification3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The next thing you need is a simple map to create the request message that is send to the wcf-sql adapter, so that it knows that you want to execute this procedure:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-4sAPg_ux7zc/TrFRPrcOMqI/AAAAAAAAAdY/QRh0_O7ZjcE/s1600/SQLNotification5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="167" src="http://4.bp.blogspot.com/-4sAPg_ux7zc/TrFRPrcOMqI/AAAAAAAAAdY/QRh0_O7ZjcE/s320/SQLNotification5.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Now you just need to get the Visual Studio project build and deployed to the BizTalk Server.&amp;nbsp;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The BizTalk Server now needs to be configured to use the schemas and map that we have created in Visual Studio. The first thing is to setup a Receive Port and Location (remember to set the pipeline to XMLReceive):&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-mYi2nzvRPg4/TrFSQ4cx0BI/AAAAAAAAAdg/EvASPQ6qcTU/s1600/SQLNotification6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-mYi2nzvRPg4/TrFSQ4cx0BI/AAAAAAAAAdg/EvASPQ6qcTU/s320/SQLNotification6.jpg" width="231" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
The 3 properties that you want to set are (there are also some that you need to connect to the SQL Server, but you most likely know how to do that):&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;The "InboundOperationType" needs to be set to "Notification"&lt;/li&gt;
&lt;li&gt;The NotificationStatement must have a select statement for the table you want to get notifications on "SELECT [DepartmentID]&amp;nbsp;FROM [HumanResources].[Department]" in my example&lt;/li&gt;
&lt;li&gt;NotifyOnListenerStart must be True or False. If it is True it will give you a message when the receive port starts&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
The next thing you need is a request/response port where we send a request to the SQL Server that we want to execute a stored procedure:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-kPzfosTwijY/TrGRX_INKmI/AAAAAAAAAdo/N29miqoeGVw/s1600/SQLNotification7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/-kPzfosTwijY/TrGRX_INKmI/AAAAAAAAAdo/N29miqoeGVw/s320/SQLNotification7.jpg" width="231" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Set the outbound map that we created:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-U55OtRXKLV8/TrGS5vtB0dI/AAAAAAAAAdw/JbLr0pvNBcM/s1600/SQLNotification8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="255" src="http://3.bp.blogspot.com/-U55OtRXKLV8/TrGS5vtB0dI/AAAAAAAAAdw/JbLr0pvNBcM/s320/SQLNotification8.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
Set the filter to route everything we get from the receive port (notification). Normally you would use the promoted properties in the notification schema to filter exactly when you want to poll and everything else in a garbage port (you always need a subscriber):&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-2imkf78GV4k/TrGTf-WtD6I/AAAAAAAAAd4/JyOLd5vieO8/s1600/SQLNotification9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="253" src="http://3.bp.blogspot.com/-2imkf78GV4k/TrGTf-WtD6I/AAAAAAAAAd4/JyOLd5vieO8/s320/SQLNotification9.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Now we just need a send port to subscribe to the output that the stored procedures returns. In this case it is just a file port, but it could be anything like a LOB system:&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-zGCs53JpHs8/TrGT7elR9oI/AAAAAAAAAeA/_1k005ey7vI/s1600/SQLNotification10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="254" src="http://3.bp.blogspot.com/-zGCs53JpHs8/TrGT7elR9oI/AAAAAAAAAeA/_1k005ey7vI/s320/SQLNotification10.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
That is it. We have created content based routing based on the WCF-SQL adapters notifcation feature. The advantage is you get to poll the data from you SQL Server at the moment the insert/update and you don't need to poll for available data every 30 seconds even if there isn't any data. The disadvantage is that you will get some garbage notifications that you need to handle somehow and I don't think I would use this method on high tables with a lot of transactions as you will get a lot of notifications on every event.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Code available at:&amp;nbsp;&lt;a href="http://code.msdn.microsoft.com/WCF-SQL-BizTalk-notificatio-2d0d4b7e" style="text-align: -webkit-auto;"&gt;http://code.msdn.microsoft.com/WCF-SQL-BizTalk-notificatio-2d0d4b7e&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-3679030838269176169?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zzn0XEE4KlKtjvJdPQhh3mbDbVI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zzn0XEE4KlKtjvJdPQhh3mbDbVI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zzn0XEE4KlKtjvJdPQhh3mbDbVI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zzn0XEE4KlKtjvJdPQhh3mbDbVI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/y4FPRcZEmww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/3679030838269176169/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/11/wcf-sql-biztalk-notification-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/3679030838269176169?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/3679030838269176169?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/y4FPRcZEmww/wcf-sql-biztalk-notification-and.html" title="WCF-SQL, BizTalk, notification and content based routing" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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://3.bp.blogspot.com/-__S57e-Z5-0/TrFLuNabAII/AAAAAAAAAcw/IaQOR-7WMr4/s72-c/SQLNotification0.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.snatchedmoments.com/2011/11/wcf-sql-biztalk-notification-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0AFR3w-cSp7ImA9WhdbFE4.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-1273517000833070530</id><published>2011-10-12T17:01:00.000+02:00</published><updated>2011-10-12T17:01:56.259+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-12T17:01:56.259+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><category scheme="http://www.blogger.com/atom/ns#" term="Windows Communication Foundation" /><title>WCF BAM interceptor and no data</title><content type="html">&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;I had a
situation where I were looking at using BAM (Business Activity Monitoring) from
WCF (Windows Communcation Foundation) and I couldn’t find out why I didn’t get
any data into my BAMPrimaryImport database. I didn’t get any errors so I was
really wondering where my error was.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;I launched
the SQL Profiler to see if this could help me in my search for why I didn’t get
any data. When the WCF service is launched it calls a stored procedure:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="color: blue; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;exec&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;
bam_Metadata_GetLatestInterceptorConfiguration&lt;span style="color: blue;"&gt; &lt;/span&gt;@technologyName&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: red;"&gt;N'WCF'&lt;/span&gt;&lt;span style="color: grey;"&gt;,&lt;/span&gt;@manifest&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: red;"&gt;N'&amp;lt;namespace&amp;gt;.&amp;lt;interface&amp;gt;, &amp;lt;Assemblyname&amp;gt;,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;This stored
procedure returned zero rows, so that was why I didn’t get any data into my
tables in the BAMPrimaryImport database. I wasn’t sure why yet why this call
didn’t return any data. I looked at the SQL code for the stored procedure and
found that it queried the table “&lt;/span&gt;&lt;span lang="EN-US" style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-US; mso-no-proof: yes;"&gt;[bam_Metadata_EventSource]&lt;/span&gt;&lt;span lang="EN-US"&gt;”. In this table it had the information that I was asking for, but the
case of the &amp;lt;Assemblyname&amp;gt; in the manifest column where different than
what I saw were used in the calling of the stored procedure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;So what I
learned from this is to remember the correct spelling and casing in the IC file
map:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;
&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt;ic:EventSource&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt;Name&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US;"&gt;"&lt;span style="color: blue;"&gt;xxx&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;Technology&lt;/span&gt;&lt;span style="color: blue;"&gt; =&lt;/span&gt;"&lt;span style="color: blue;"&gt;WCF&lt;/span&gt;"&lt;span style="color: blue;"&gt; &lt;/span&gt;&lt;span style="color: red;"&gt;Manifest&lt;/span&gt;&lt;span style="color: blue;"&gt; =&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;lt;namespace&amp;gt;.&amp;lt;interface&amp;gt;, &amp;lt;assemblyname&amp;gt;,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&lt;/span&gt;"&lt;span style="color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;Something
that might be hard to find…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-1273517000833070530?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EDmO3pKI0Lj2PptPKyLlL-fuY88/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EDmO3pKI0Lj2PptPKyLlL-fuY88/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EDmO3pKI0Lj2PptPKyLlL-fuY88/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EDmO3pKI0Lj2PptPKyLlL-fuY88/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/j6tM0o-cIVc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/1273517000833070530/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/10/wcf-bam-interceptor-and-no-data.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/1273517000833070530?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/1273517000833070530?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/j6tM0o-cIVc/wcf-bam-interceptor-and-no-data.html" title="WCF BAM interceptor and no data" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2011/10/wcf-bam-interceptor-and-no-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ICR3g8eSp7ImA9WhdUGU0.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-4770928549105548811</id><published>2011-10-06T13:46:00.000+02:00</published><updated>2011-10-06T13:46:06.671+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T13:46:06.671+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>BizTalk ESB Toolkit 2.1 installation guide</title><content type="html">In the past I never got the version 1.x installed because of a complex installation guide, so now that I am looking at the toolkit again I thought that I better write done some notes for myself (and maybe other), so that you can get it up and running.&lt;br /&gt;
&lt;br /&gt;
My base image is:&lt;br /&gt;
- Windows Server 2008 R2&lt;br /&gt;
- SQL Server 2008 R2&lt;br /&gt;
- BizTalk Server 2010&lt;br /&gt;
- Visual Studio 2010&lt;br /&gt;
- and some other stuff that I don't think is relevant for the toolkit&lt;br /&gt;
&lt;br /&gt;
First thing is to download the toolkit:&lt;br /&gt;
&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=11847"&gt;BizTalk ESB Toolkit 2.1&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
This also contains an installation guide, so what follows here is only the adds and special notes as I go through the installation guide.&lt;br /&gt;
&lt;br /&gt;
Well you need some optional software from Microsoft before you can install it and the installation guide doesn't contains links:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.microsoft.com/download/en/details.aspx?id=21835"&gt;Visual Studio 2010 SDK&lt;/a&gt;&amp;nbsp;(If you get an error which tells you that Visual Studio 2010 is missing then you might have the wrong version of the SDK. There is one for each service pack. Otherwise it is a "next next" type of installation).&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=8279"&gt;Windows SDK&lt;/a&gt;&amp;nbsp;(Well this is a bit hard to predict what is needed. I don't want to install the full monty as this is 1,8GB. Here is what I choose. We will see later if that is enough. It is used for the portal. I would guess that it has something to do with the .Net framework as the portal is an ASP.Net web application).&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-57nJHlRVXmQ/ToydCOrOfLI/AAAAAAAAAcU/gFb3ZM62H7Y/s1600/ESB+toolkit+installation+1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="277" src="http://3.bp.blogspot.com/-57nJHlRVXmQ/ToydCOrOfLI/AAAAAAAAAcU/gFb3ZM62H7Y/s400/ESB+toolkit+installation+1.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Well for the chart control I think I will skip this because of the following statement (Beginning in .NET Framework 4, the Chart controls are part of the .NET Framework. ) From the &lt;a href="http://archive.msdn.microsoft.com/mschart"&gt;sample page&lt;/a&gt; of the chart control.&lt;/div&gt;
&lt;br /&gt;
If you are running in a domain and you use domain groups for the "BizTalk Server Administrators" and groups like this. Then remember to change those when you run the ESB Config toolkit.&lt;br /&gt;
&lt;br /&gt;
If you get an error like this "Cannot &amp;nbsp;open database..." when you run the BAM definition import. Then you need to add your SQL Server Analysis account as a datareader for the databases BAMPrimaryImport and BAMStar:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-jL8TZblPTUk/To1sVqddbBI/AAAAAAAAAcY/gzZS997ZOWE/s1600/ESB+toolkit+installation+2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://4.bp.blogspot.com/-jL8TZblPTUk/To1sVqddbBI/AAAAAAAAAcY/gzZS997ZOWE/s400/ESB+toolkit+installation+2.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
I had a lot of problems installing the ESB Management portal. I found out the reason was that I had Sharepoint Foundation installed on the Default Web Site. So what I ended up doing was delete the Sharepoint site incl. Default Web Site and then created a new Default Web Site for the portal. After some problems (read what it says in the installation guide carefully!!!) I managed to get it up and running. I had to do a couple of changes to the web.config file as my BizTalk groups are domain groups and I installed the core web service for itinerary and exception web service on a different web-site with a custom port (8084).&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-ENjx5Pb4fdY/To2UyNNu9cI/AAAAAAAAAcc/HuglzzxCQ7k/s1600/ESB+toolkit+installation+3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="222" src="http://1.bp.blogspot.com/-ENjx5Pb4fdY/To2UyNNu9cI/AAAAAAAAAcc/HuglzzxCQ7k/s320/ESB+toolkit+installation+3.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
Well it looks like I am up and running. Time to do some testing...&lt;/div&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-4770928549105548811?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/G46DpFeU6x0u1tavC6iCyAjO_oY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G46DpFeU6x0u1tavC6iCyAjO_oY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/G46DpFeU6x0u1tavC6iCyAjO_oY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G46DpFeU6x0u1tavC6iCyAjO_oY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/UibFalOCHGU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/4770928549105548811/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/10/biztalk-esb-toolkit-21-installation.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/4770928549105548811?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/4770928549105548811?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/UibFalOCHGU/biztalk-esb-toolkit-21-installation.html" title="BizTalk ESB Toolkit 2.1 installation guide" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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://3.bp.blogspot.com/-57nJHlRVXmQ/ToydCOrOfLI/AAAAAAAAAcU/gFb3ZM62H7Y/s72-c/ESB+toolkit+installation+1.JPG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.snatchedmoments.com/2011/10/biztalk-esb-toolkit-21-installation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMSX46fCp7ImA9WhdQFks.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-8495826609154059835</id><published>2011-08-18T13:53:00.000+02:00</published><updated>2011-08-18T13:53:08.014+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-18T13:53:08.014+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>BizTalk Server 2009 Deployment issue with multiple users on same server</title><content type="html">If you are more than one developer on the same BizTalk Server 2009 you might have noticed that there can be some deployment issues where you looses configuration that you or some other in your team already have done. Over time I have experienced the following issues from time to time:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;One of the parties that I had enlisted on a rolelink where missing&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The pipeline on a receive location where changed from XMLReceive to PassThrough&lt;/li&gt;
&lt;li&gt;I couldn't deploy an assembly before I deleted a receive port. I got an error telling me that the transport type wasn't set on a receive location. But when I checked the configuration the transport type where set correctly.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;The last one got me searching for why BizTalk does as it does.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I can't give you a reason why this happens, but I can give you a location that contains the binding files that BizTalk uses behind your back. The location is:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;C:\Users\&amp;lt;Username&amp;gt;\AppData\Roaming\Microsoft\BizTalk Server\Deployment\BindingFiles&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;"Roaming" could also be something else based on how you logon to your server. I haven't gotten the issue on BizTalk Server 2010 yet, but that might be related to that I haven't work with another user on the same server with the same BizTalk artifacts or related artifacts. But I can see that it creates the same binding files as in BizTalk Server 2009, so my guess is that the same issue is also here in BizTalk Server 2010.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;A common deployment procedure like using the Powershell privider for BizTalk would fix this issue, but I haven't gotten around to confirm this part.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-8495826609154059835?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/G-Wder_tktj_TM4pkpnHHMoyEnM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G-Wder_tktj_TM4pkpnHHMoyEnM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/G-Wder_tktj_TM4pkpnHHMoyEnM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/G-Wder_tktj_TM4pkpnHHMoyEnM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/rmQ2J1L8j-M" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/8495826609154059835/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/08/biztalk-server-2009-deployment-issue.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/8495826609154059835?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/8495826609154059835?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/rmQ2J1L8j-M/biztalk-server-2009-deployment-issue.html" title="BizTalk Server 2009 Deployment issue with multiple users on same server" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2011/08/biztalk-server-2009-deployment-issue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8BSXszcCp7ImA9WhdaFUk.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-808921809741678620</id><published>2011-08-15T15:06:00.000+02:00</published><updated>2011-10-25T15:04:18.588+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-25T15:04:18.588+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>Use single-signon with FTP, SAP and other username/password</title><content type="html">There are some of the adapters that doesn't support single-sign on with you domain users that are assigned to you BizTalk Host Instans. This is an issue in BizTalk when you come to deployment and where you don't want your password for a FTP site to be listed in your binding files.&lt;br /&gt;
&lt;br /&gt;
When you configure your FTP Send Port in Biztalk there is an option to select the &amp;nbsp;SSO Affiliate, which lists your SSO &amp;nbsp;Affiliate applications from Enterprise Single Sign-On. This is a part of what is needed.&lt;br /&gt;
&lt;br /&gt;
The first thing you need is to have a promoted property on your message called "SSOTicket" and this have to have a specifict value. I do this in a pipeline component, but I thing you also can do this in an Orchestration. The code is as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="color: blue;"&gt;public &lt;/span&gt;Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(Microsoft.BizTalk.Component.Interop.IPipelineContext pc, Microsoft.BizTalk.Message.Interop.IBaseMessage inmsg)&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ISSOTicket ssoTicket = &lt;span class="Apple-style-span" style="color: blue;"&gt;new &lt;/span&gt;ISSOTicket();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; inmsg.Context.Write(&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;"SSOTicket"&lt;/span&gt;,&lt;span class="Apple-style-span" style="color: #cc0000;"&gt; "&lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;http://schemas.microsoft.com/BizTalk/2003/system-properties&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #cc0000;"&gt;"&lt;/span&gt;, ssoTicket.IssueTicket(0));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span class="Apple-style-span" style="color: blue;"&gt;return &lt;/span&gt;inmsg;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
Create a send pipeline that uses this pipeline component in the Encode phase.&lt;br /&gt;
&lt;br /&gt;
Set the "Allow Tickets" to yes on the system:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-LK6PrYqgd5w/Tqax1IEdVsI/AAAAAAAAAck/xe4RMDHARCw/s1600/SSO1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="201" src="http://1.bp.blogspot.com/-LK6PrYqgd5w/Tqax1IEdVsI/AAAAAAAAAck/xe4RMDHARCw/s320/SSO1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Then you need to create an affiliate application in Enterprise Single Sign-On:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Give it a nice name and remember to check the check boxes:&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-W8dDafydeLs/TkkYIwlUGcI/AAAAAAAAASo/-tG0WvD21HY/s1600/SSOStep1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="http://1.bp.blogspot.com/-W8dDafydeLs/TkkYIwlUGcI/AAAAAAAAASo/-tG0WvD21HY/s320/SSOStep1.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Use the Biztalk Group that has the host instanse as Application users&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-4rXq627eaZE/TkkYJKRsiFI/AAAAAAAAASs/gf5zQUnAHg8/s1600/SSOStep2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://2.bp.blogspot.com/-4rXq627eaZE/TkkYJKRsiFI/AAAAAAAAASs/gf5zQUnAHg8/s320/SSOStep2.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Check "Ticket Allowed" and then finish the Wizard.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-wMa7V6E45_U/TkkYJc0LCCI/AAAAAAAAASw/_JE092l7L1M/s1600/SSOStep3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="234" src="http://4.bp.blogspot.com/-wMa7V6E45_U/TkkYJc0LCCI/AAAAAAAAASw/_JE092l7L1M/s320/SSOStep3.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Click new mapping on the new application you just have created. Check the "Credentials as Windows credentials"&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-e42g6uqWRo4/TkkYJmJOW-I/AAAAAAAAAS0/odcff4VBKuA/s1600/SSOStep4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="232" src="http://4.bp.blogspot.com/-e42g6uqWRo4/TkkYJmJOW-I/AAAAAAAAAS0/odcff4VBKuA/s320/SSOStep4.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
The Window user is the user used by the Biztalk Host Instanse and the External user is your FTP/SAP/Other user&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-50VdTaCeLgg/TkkYJ2oDm1I/AAAAAAAAAS4/UkOVtI_OwCc/s1600/SSOStep5.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="151" src="http://4.bp.blogspot.com/-50VdTaCeLgg/TkkYJ2oDm1I/AAAAAAAAAS4/UkOVtI_OwCc/s320/SSOStep5.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: left;"&gt;
&lt;br /&gt;&lt;/div&gt;
&amp;nbsp;Type in the password for your external user&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-Z3m9mgwgVuo/TkkYKbmJArI/AAAAAAAAAS8/zeMzjfiVvW8/s1600/SSOStep6.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="123" src="http://3.bp.blogspot.com/-Z3m9mgwgVuo/TkkYKbmJArI/AAAAAAAAAS8/zeMzjfiVvW8/s320/SSOStep6.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
Now on your FTP Send port you select the new SSO affiliate application.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-W0EqWivSWCM/TkkYKwZ_iNI/AAAAAAAAATA/R-ix3n6g3Vw/s1600/SSOStep7.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-W0EqWivSWCM/TkkYKwZ_iNI/AAAAAAAAATA/R-ix3n6g3Vw/s320/SSOStep7.JPG" width="288" /&gt;&lt;/a&gt;&lt;/div&gt;
This should be it. You now have single sign-on on your FTP sites and you can use your Enterprise Single Sign-on to manage your mappings between domain accounts and external accounts.&lt;br /&gt;
&lt;br /&gt;
Sample code at&amp;nbsp;&lt;a href="http://code.msdn.microsoft.com/Use-single-signon-with-FTP-b6414ce8"&gt;http://code.msdn.microsoft.com/Use-single-signon-with-FTP-b6414ce8&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-808921809741678620?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KNEKPua1K6ke3M4MQNKPo64xDG8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNEKPua1K6ke3M4MQNKPo64xDG8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KNEKPua1K6ke3M4MQNKPo64xDG8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KNEKPua1K6ke3M4MQNKPo64xDG8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/N8n3NtiAUWk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/808921809741678620/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2011/08/use-single-signon-with-ftp-sap-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/808921809741678620?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/808921809741678620?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/N8n3NtiAUWk/use-single-signon-with-ftp-sap-and.html" title="Use single-signon with FTP, SAP and other username/password" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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/-LK6PrYqgd5w/Tqax1IEdVsI/AAAAAAAAAck/xe4RMDHARCw/s72-c/SSO1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://www.snatchedmoments.com/2011/08/use-single-signon-with-ftp-sap-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUUNRHs_fyp7ImA9WhdQEUo.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-5146756201563824025</id><published>2010-09-21T20:20:00.000+02:00</published><updated>2011-08-12T20:21:35.547+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T20:21:35.547+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="BizTalk" /><title>Routing failure and request/respons send ports</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;I had a very strange problem today. I had a one-way receive port that were using the WCF-SQL adapter. I used basic routing to route the message from this port to 2 different WCF-Basic-HTTP request/response ports. The problems was that I got a routing error on my receive port and where you normally would get 2 message I only got one message, which was the routing error. Normally you get 2 message one being the routing error and one being the message received. I went through alot of different things before finding out that you can only have one request/response port as a subcriber, which on some level makes sense, but I would have been nice to get some better error message.&amp;nbsp;&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;If I change my WCF-SQL port to a simple File port I get the following message "The message found multiple request response subscriptions. A message can only be routed&amp;nbsp;to a single request response subscription.", which made it pretty easy to correct the problem. I just have to save the message from the WCF-SQL port to the file system in 2 different folders and have some new ports based on these file locations. Not the nicest solution, but the only way when I didn't want to add an orchestration which might be another solution.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-5146756201563824025?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2FyrBcIWAMKBLCtnH0eFXvLPqpw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2FyrBcIWAMKBLCtnH0eFXvLPqpw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2FyrBcIWAMKBLCtnH0eFXvLPqpw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2FyrBcIWAMKBLCtnH0eFXvLPqpw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/gD5BHrD78IM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/5146756201563824025/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2010/09/routing-failure-and-requestrespons-send.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/5146756201563824025?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/5146756201563824025?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/gD5BHrD78IM/routing-failure-and-requestrespons-send.html" title="Routing failure and request/respons send ports" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2010/09/routing-failure-and-requestrespons-send.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBQnc6eip7ImA9WhdQEUo.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-7780513879210429409</id><published>2010-01-26T20:19:00.000+01:00</published><updated>2011-08-12T20:24:13.912+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T20:24:13.912+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cloud" /><title>Bing map webservice</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="font-family: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;In some solutions there is a need for some routing services, where your might want to show information to the user about how to get from A to B.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;In the cloud there are some ways to do this. One is Google and one is Microsoft. This blog post looks at the web services that Microsoft makes available for us.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;The first you need to do is to create a Bing Map Service account at the following&amp;nbsp;&lt;a href="http://www.bingmapportal.com/" style="color: #70a529; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none;"&gt;link&lt;/a&gt;. As a developer you can have up to 5 different keys to use. If you have to use the services in commercials situations you have to contact someone at Microsoft to learn about the pricing and licensing issues. I think that Microsoft should do better at this point and at least show some pricing and licensing examples.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="font-size: x-small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
In the web services there is a couple of different services that you can use:&lt;/div&gt;&lt;ul style="margin-bottom: 20px; margin-left: 20px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Geocode services, which can be used to lookup of longtitude and latitude of an address or do a reverse lookup of a longtitude and latitude to an address&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Imagery services, which makes it possible to receive a map image that you might store in a database or something else&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Route services, which can be used to create a route between two or more different points and where you can get the routing description in your local language. It doesn't have a optimizing feature, which could be nice in some solutions&lt;/li&gt;
&lt;li style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Search services, which can be used to find companies and other stuff from in a city&lt;/li&gt;
&lt;/ul&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;There is an article on MSDN which makes it possible to get up an running with the webservices in a couple of hours. The only thing that might be a problem is that you get two endpoints for the same service, so you have to comment out one of the endpoints.&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
Besides the webservices there are also a Silverlight and Ajax controls that you can use. I haven't look into these at this point in time.&lt;br /&gt;
Overall it seems like nice services, where you can get up and running pretty fast. The only issue is that they don't list the pricing and licensing and that the services might have some more features.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-7780513879210429409?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/b8bhClBxh1dCJFc8eHu9lEdbdVY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b8bhClBxh1dCJFc8eHu9lEdbdVY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/b8bhClBxh1dCJFc8eHu9lEdbdVY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/b8bhClBxh1dCJFc8eHu9lEdbdVY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/4lVx2GO_kHc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/7780513879210429409/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2010/01/bing-map-webservice.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/7780513879210429409?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/7780513879210429409?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/4lVx2GO_kHc/bing-map-webservice.html" title="Bing map webservice" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2010/01/bing-map-webservice.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINQHw_eSp7ImA9WhdQEUo.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-9014827876273384180</id><published>2008-08-26T20:18:00.000+02:00</published><updated>2011-08-12T20:26:31.241+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T20:26:31.241+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Performancepoint" /><title>Creating a new Matrix style in Performancepoint</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;If you want to have a nice look for the matrixes that you create in Performancepoint you want to use the Matrix Styles as this gives you a nice and easy way to make sure that all the matrixes have the same formats. But what do you do when you don’t agree with the build-in styles? Say you would like to change the colors to better match your organisation.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;It is pretty easy, but might also take some time to get just the right matrix style. The matrixes styles are based on the “PivotTable Style” in Excel 2007.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The first thing you need to do is to create a small PivotTable otherwise you wouldn’t get the right selects of formats that you want to change.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;When you are standing in you PivotTable you have to use the&amp;nbsp;&amp;nbsp;“Format as Table” in the Home Ribbon and in the Styles section to change/create a PivotTable Style:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0pt; margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;img alt="" src="http://www.snatchedmoments.com/BlogEngine.Web/image.axd?picture=2010%2f2%2fRibbon1.jpg" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 10px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;" /&gt;&lt;/div&gt;&lt;div style="padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal 11px/normal 'Times New Roman'; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-family: inherit; font-size: small; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The best thing is to select one of the existing formats and select the duplicate function in the right click menu. Now you can change the styles you need to get the Matrix Style you want for your Performancepoint matrix with a little trial and error.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-9014827876273384180?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6qtB-H8TkaetSS1yWcaArLCcB4k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6qtB-H8TkaetSS1yWcaArLCcB4k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6qtB-H8TkaetSS1yWcaArLCcB4k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6qtB-H8TkaetSS1yWcaArLCcB4k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/SMnHMJSnlTU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/9014827876273384180/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2008/08/creating-new-matrix-style-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/9014827876273384180?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/9014827876273384180?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/SMnHMJSnlTU/creating-new-matrix-style-in.html" title="Creating a new Matrix style in Performancepoint" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2008/08/creating-new-matrix-style-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIGQHY_eip7ImA9WhdQEUo.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-4045021868106726319</id><published>2008-07-09T20:16:00.000+02:00</published><updated>2011-08-12T20:25:21.842+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T20:25:21.842+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Performancepoint" /><title>Create a NativeSQL Business Rule</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white; font-family: Georgia, 'Lucida Grande';"&gt;In some difficult situations you might want to use NativeSQL to implement a business rule. It gives you the full power of SQL Server.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;First you need to create the rule in the Business Modeler to host the NativeSQL business rule. You can use parametres and even use members of dimensions as parameters. When it is time to execute the business rule the user gets a nice interface where the user is able to select the parameter in the dimension.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;In the SQL it is the memberId of the dimension that is passed into the function and they are of the type int. A start of an implementation can be seen here:&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;em style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;create proc Calc.[sp$procedure] @entity int, @scenario int, @startTimePeriod int, @endTimePeriod int as&lt;/em&gt;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;It looks almost as a normal stored procedure in SQL. The only difference is that the name is a preprocessor commands and the Performancepoint translate this to a real stored procedure name, when it is created by the Performancepoint in the SQL Server. The rest of the parametres is just like a normal stored procedure.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;You implement your stored procedure just like you normally would with transactions, select, insert and delete statements. It can be a good idea to use SQL Server Management Studio to do some testing on the implementation before you add it to Performancepoint. In this implementation it is possible to use more preprocessor commands to reference different kind of columns.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;When it is time to deploy you have to have the NativeSQL listed as a InActive rule for you to be able to deploy it with the Business Modeler. After this is done you have to have database access to change the bit field in the “RuleSetsOrRules” table from false to true. Then you have to go back to the Business Modeler to do a deployment of the rules again (after a refresh) and it at this time the the Performancepoint creates the stored procedure and if there are any errors in the sql like “Ambiguous column name” or “Invalid column name” they can be found in the Event Viewer. If all this goes well the Business rule is ready to be executed.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;You can see the implementation of the Business Rule by expanding your stored procedures in you application database and check under the name “Calc.bsp_GeneratedCalc_[Businessmodel label]_Rule:[Business rule label][ModelId]”.&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&amp;nbsp;&lt;br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;A small tip: Check out the the NativeSQL implementation of “Chart_CarryForward”, “Chart_GAP_Movement”, “Chart_Batch_GAP_Movement” and “Chart_Seeding” in&amp;nbsp; the Financial Model without shares calculation for some tip on how NativeSQL can be used&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-4045021868106726319?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/GsWwvg2HiIBRz7p3Xpalr325pfI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GsWwvg2HiIBRz7p3Xpalr325pfI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/GsWwvg2HiIBRz7p3Xpalr325pfI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/GsWwvg2HiIBRz7p3Xpalr325pfI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/5NNA6EBk1UM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/4045021868106726319/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2008/07/create-nativesql-business-rule.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/4045021868106726319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/4045021868106726319?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/5NNA6EBk1UM/create-nativesql-business-rule.html" title="Create a NativeSQL Business Rule" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2008/07/create-nativesql-business-rule.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIBR3syeCp7ImA9WhdQEUo.&quot;"><id>tag:blogger.com,1999:blog-3293557443132683030.post-7835685037701131918</id><published>2008-05-08T20:14:00.000+02:00</published><updated>2011-08-12T20:25:56.590+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T20:25:56.590+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Performancepoint" /><title>Description field in the Time dimension in Performancepoint 2007</title><content type="html">&lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="font-family: Georgia, 'Lucida Grande'; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;What do you do when you want to use the description field in the time dimension in Performancepoint Server 2007?&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia, 'Lucida Grande'; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;The reason for this question is that I need to be able to show in an Excel input form which days are Easter each year, when is summer vacation and so on. They need this information to do better planning. The most logical answer would be to add this information to the Time dimension as it is information that is closely related to the dates in the Time dimension. You can't add a new field to the Time dimension, so I thought I use the description field which is already in the time dimension. The only problem is that you can't change the description field in the Planning Business Modeler.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia, 'Lucida Grande'; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;I tried to change the table directly in the SQL Server and then did a Deploy Model Site in the Planning Business Modeler. You can see the result here:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Georgia, 'Lucida Grande'; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;/div&gt;&lt;div style="color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;img alt="" src="http://www.snatchedmoments.com/BlogEngine.Web/image.axd?picture=2010%2f2%2fdescriptionfieldintimedimension.jpg" style="background-color: #eeeeee; border-bottom-color: rgb(221, 221, 221); border-bottom-style: solid; border-bottom-width: 1px; border-color: initial; border-left-color: rgb(221, 221, 221); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(221, 221, 221); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(221, 221, 221); border-top-style: solid; border-top-width: 1px; margin-bottom: 0px; margin-left: 0px; margin-right: 10px; margin-top: 0px; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px;" /&gt;&lt;/div&gt;&lt;div style="color: #676767; font-family: Georgia, 'Lucida Grande'; font-size: 12px; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal 11px/normal 'Times New Roman'; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, helvetica, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #676767; font-family: Georgia, 'Lucida Grande'; padding-bottom: 5px; padding-left: 0px; padding-right: 0px; padding-top: 5px;"&gt;&lt;span style="color: #003300; font-family: Verdana, sans-serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;This isn’t supported by Microsoft as you go and change something that isn’t change with the normal API or user interface.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3293557443132683030-7835685037701131918?l=www.snatchedmoments.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/V1W4XfhIKdNC0JqJ6XY6w_7muF8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V1W4XfhIKdNC0JqJ6XY6w_7muF8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/V1W4XfhIKdNC0JqJ6XY6w_7muF8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/V1W4XfhIKdNC0JqJ6XY6w_7muF8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/SnatchedMoments/~4/j5QqVkuCUg4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://www.snatchedmoments.com/feeds/7835685037701131918/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.snatchedmoments.com/2008/05/description-field-in-time-dimension-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/7835685037701131918?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3293557443132683030/posts/default/7835685037701131918?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/SnatchedMoments/~3/j5QqVkuCUg4/description-field-in-time-dimension-in.html" title="Description field in the Time dimension in Performancepoint 2007" /><author><name>Torben Christiansen</name><uri>http://www.blogger.com/profile/07997165565234813064</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><feedburner:origLink>http://www.snatchedmoments.com/2008/05/description-field-in-time-dimension-in.html</feedburner:origLink></entry></feed>

