<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>synBoogaloo - BizTalk/.Net 3.0</title>
        <link>http://geekswithblogs.net/synBoogaloo/Default.aspx</link>
        <description>Why is it drug addicts and computer afficionados are both called users? </description>
        <language>en-US</language>
        <copyright>Rob Addis</copyright>
        <managingEditor>robsmessages@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>synBoogaloo - BizTalk/.Net 3.0</title>
            <url>http://geekswithblogs.net/images/RSS2Image.gif</url>
            <link>http://geekswithblogs.net/synBoogaloo/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>More Geek Humour - What Da</title>
            <category>General</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/06/20/113338.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Simon an architect I work with was talking to a developer this morning. The conversation went as so…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Simon: Are you sure you want to use FTP to transfer this data I’m not sure it will be fast enough&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Developer: Well FTP is faster than TCPIP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;Simon (to himself): I have now entered the twilight zone&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113338"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113338" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/113338.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/06/20/113338.aspx</guid>
            <pubDate>Wed, 20 Jun 2007 06:08:09 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/113338.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/06/20/113338.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/113338.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/113338.aspx</trackback:ping>
        </item>
        <item>
            <title>Geek Humour - Do you want to call me ... do you really want to call me</title>
            <category>General</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/25/111985.aspx</link>
            <description>&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;We finally got an EJB Web Service today from a Trading Partner the interface looked something like this ...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="TEXT-INDENT: 36pt"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'"&gt;public Asset ReturnAsset(bool ReturnAsset)&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;We surmised that due to cronic shortages of quality developers they have finally begun to teach chimpanzees Java, not bad for a chimp.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Also liked &lt;a href="http://www.sqlteam.com/Forums/topic.asp?TOPIC_ID=5126"&gt;this newsgroup thread&lt;/a&gt; Simon found yesterday...&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111985"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111985" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/111985.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/25/111985.aspx</guid>
            <pubDate>Wed, 25 Apr 2007 22:18:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/111985.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/25/111985.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/111985.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/111985.aspx</trackback:ping>
        </item>
        <item>
            <title>Jesus Built My Hotrod</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111749.aspx</link>
            <description>&lt;p&gt;A new online BizTalk mag has come out, a more pleasent read than most whitepapers, especially if you're a motor head or a fan of that &lt;a href="http://biztalkhotrod.com/default.aspx"&gt;Ministry song&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111749"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111749" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/111749.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111749.aspx</guid>
            <pubDate>Wed, 18 Apr 2007 02:36:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/111749.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111749.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/111749.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/111749.aspx</trackback:ping>
        </item>
        <item>
            <title>Screen Shots Missing</title>
            <category>General</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111748.aspx</link>
            <description>&lt;font size="2"&gt;I just noticed that in GeeksWithBlogs move to SubText some of my old screen shots have been lost, I'll fix these as soon as I get time.&lt;/font&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111748"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111748" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/111748.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111748.aspx</guid>
            <pubDate>Wed, 18 Apr 2007 01:08:08 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/111748.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111748.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/111748.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/111748.aspx</trackback:ping>
        </item>
        <item>
            <title>Unable to open Orchestration Designer in Visual Studio</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111745.aspx</link>
            <description>&lt;p&gt;&lt;font size="2"&gt;We are developing BizTalk applications with Visual Studio Team Edition and every now and then for some reason the Orchestration Designer is removed from the "Open With" dialog, thus when one double clicks on an orchestration it is opened with the Xml Editor. Although I'm not sure why this happens, I suspected the items in this dialog were configured in the Windows Registry ... and so they were, so to fix:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;1) Open RegEdit&lt;br /&gt;
2) Go to HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\Editors and find the BizTalk Orchestration Designer for us it was under Guid {679b7fd6-2104-42b2-8d87-86dd575fc269} &lt;br /&gt;
3) Get the package key Guid, for us this was {2f926337-2bfb-46ab-bbc4-a955ce25ff6f} &lt;br /&gt;
4) Go to HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\Packages\{Package Key Guid}\SkipLoading &lt;br /&gt;
5) Set the SkipLoading key to 0&lt;br /&gt;
6) Restart Visual Studio and the Orchestration Designer should show up in the "Open With" list&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;Does anyone know why the SkipLoading key is mysterously turned on for the Orchestration Designer?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111745"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111745" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/111745.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111745.aspx</guid>
            <pubDate>Wed, 18 Apr 2007 00:55:30 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/111745.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/17/111745.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/111745.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/111745.aspx</trackback:ping>
        </item>
        <item>
            <title>System Testing BizTalk Applications with BAM &amp; Xlsb File Generation </title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/10/111254.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;In the past I have noticed that system testers find it difficult to test middleware applications such as those implemented using BizTalk. System testers generally don't want to read BizTalk xml messages dumped out to disk, they like to be able to query for their test results via some form of GUI. Many are adept at writing SQL to return result sets containing the test data they want to analyze.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;I came up with the idea of using BAM relationships between different activities within a single view to log before and after snapshots of BizTalk messages. So when messages were transformed by maps, orchestrations or the BRE system testers could test those transforms. You can then give system testers’ access to the BAM Portal Website where they could view and query these before and after snapshots and match the actuals against the expected results to pass or fail their tests.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;This solution for system testing only works for certain scenarios’ with certain types of schemas as each message logged cannot contain repeating records if it is to be logged to BAM. &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;So what am I on about? Take a single record schema which validates an xml message like the one below as I said before this technique won't work with messages which contain multiple records.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;&lt;FONT face="Courier New" color=#0000ff&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;ns1:SampleTransaction TransactionID="123456" ProductName="ABC" Amount="1234.56" Quantity="24" xmlns:ns1="http://SynbogalooSamples/SampleTransaction/1.0.0.0" /&amp;gt;&lt;/FONT&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;Each time a map, orchestration or business rules were applied to a message I wanted to send messages to BAM so I was basically just logging messages to BAM each time the contents of the message changed. I used BAM relationships to associate the message before it was transformed to the message after it was transformed so the tester could assess whether the transformation worked.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;OK this was all easy but very time consuming using the Excel add-in to create the xlsb files for each schema so I wrote a simple xlsb file generator. Note: For this code to work with schemas that have xsd types other than DateTime, Integer, Double and String you will need to add to the switch statement in the CreateActivity method.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;using System;&lt;BR&gt;using System.Collections.Generic;&lt;BR&gt;using System.Text;&lt;BR&gt;using System.Xml;&lt;BR&gt;using System.IO;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;namespace BAMXslbGenerator&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string UCName = "Name";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string LCName = "name";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string View = "View";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string BAMDefinition = "BAMDefinition";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string BAMDefinitionNamespace = "&lt;/FONT&gt;&lt;A href="http://schemas.microsoft.com/BizTalkServer/2004/10/BAM"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;http://schemas.microsoft.com/BizTalkServer/2004/10/BAM&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Extension = "Extension";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string OWC = "OWC";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string OWCNamespace = "urn:schemas-microsoft-com:office:excel";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string ActivityView = "ActivityView";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string ActivityRef = "ActivityRef";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Activity = "Activity";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Alias = "Alias";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string CheckpointRef = "CheckpointRef";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Id = "ID";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Checkpoint = "Checkpoint";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XpathToAttribute =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "(//*[local-name()='element'])[last()]/*[local-name()='complexType']/*[local-name()='attribute']";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string DataType = "DataType";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string DataLength = "DataLength";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string Length = "length";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string MaxLength = "maxLength";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XpathToLength = "*[local-name()='simpleType']/*[local-name()='restriction']/*[local-name()='length']/@value";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XpathToMaxLength = "*[local-name()='simpleType']/*[local-name()='restriction']/*[local-name()='maxLength']/@value";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string SqlDateTime = "DATETIME";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string SqlNvarchar = "NVARCHAR";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string SqlInt = "INT";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string SqlFloat = "FLOAT";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XsdDateTime = "xs:dateTime";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XsdString = "xs:string";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XsdInteger = "xs:int";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private const string XsdDouble = "xs:double";&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static StringBuilder xlsbText = null;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Check for help&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args.Length == 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowUsageMessage();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((args[0] == "/?") || (args[0] == "/help"))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowUsageMessage();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Parse out command line arguements&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string xlsbFileNameArg = GetCommand("/x", args);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string viewNameArg = GetCommand("/v", args);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string activityNameArg = GetCommand("/a", args).Replace("[","").Replace("]","");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string schemaArg = GetCommand("/s", args).Replace("[", "").Replace("]", ""); ;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xlsbFileNameArg != string.Empty &amp;amp;&amp;amp; viewNameArg != string.Empty&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; activityNameArg != string.Empty &amp;amp;&amp;amp; schemaArg != string.Empty)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] activityNames = activityNameArg.Split(new string[] { "," }, StringSplitOptions.None);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] schemas = schemaArg.Split(new string[] { "," }, StringSplitOptions.None);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GenerateXlsbXml(viewNameArg, activityNames, schemas);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Write out the file&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.Delete(xlsbFileNameArg);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File.AppendAllText(xlsbFileNameArg, xlsbText.ToString(), Encoding.Unicode);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Incorrect arguements!");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (System.Exception ex)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write(ex.ToString());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static string GetCommand(string commandToken, string[] args)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string commandValue = string.Empty;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; args.Length; i++)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (args[i] == commandToken)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; commandValue = args[i + 1];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return commandValue;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void ShowUsageMessage()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Generates an xlsb BAM definition file conaining one view and multiple schema definitions to log to BAM.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Syntax: BAMXlsbGenerator");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("Commands:");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("\t/x \txlsb file name");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("\t/v \tBAM View definition name");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("\t/a[] \tActivity names enclosed in [] comma separated, there must be one activity name per schema.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("\t/s[] \tSchema names enclosed in [] comma separated, there must be one schema name per activity.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.WriteLine("\t/? or /help \tDisplay this usage message");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void GenerateXlsbXml(string viewName, string[] activityNames, string[] schemas)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create an writer for building the xlsb&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbText = new StringBuilder();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlWriterSettings.Indent = true;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlWriter xlsbWriter = XmlWriter.Create(xlsbText, xmlWriterSettings);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Start building xml&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartDocument();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(BAMDefinition, BAMDefinitionNamespace);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (schemas.Length != activityNames.Length)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw new ApplicationException("The number of activity names and schemas don't match.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dictionary&amp;lt;string, string&amp;gt;[] checkpointIDsForSchemas = new Dictionary&amp;lt;string, string&amp;gt;[schemas.Length];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] activityIDs = new string[schemas.Length];&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create the activities&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; schemas.Length; i++)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dictionary&amp;lt;string, string&amp;gt; checkpointIDs;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string activityID;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateActivity(xlsbWriter, schemas[i], activityNames[i],&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out checkpointIDs, out activityID);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checkpointIDsForSchemas[i] = checkpointIDs;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; activityIDs[i] = activityID;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Now create the view&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(View);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, viewName);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string viewID = Id + Guid.NewGuid().ToString("N");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, viewID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create Activity Views&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; schemas.Length; i++)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CreateActivityView(xlsbWriter, activityNames[i],&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checkpointIDsForSchemas[i], activityIDs[i]);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //END View&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Extension);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteElementString(OWC, OWCNamespace, "");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //END Extension&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //END BAMDefinition&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndDocument();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.Flush();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void CreateActivityView(XmlWriter xlsbWriter, string activityName,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Dictionary&amp;lt;string, string&amp;gt; checkpointIDs, string activityID)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(ActivityView);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, View + activityName);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, Id + Guid.NewGuid().ToString("N"));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(ActivityRef, activityID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Loop through the dictionary and create the Aliases&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (string key in checkpointIDs.Keys)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Alias);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, key);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, Id + Guid.NewGuid().ToString("N"));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteElementString(CheckpointRef, checkpointIDs[key]);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //END Alias&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //END ActivityView&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private static void CreateActivity(XmlWriter xlsbWriter, string schema,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string activityName, out Dictionary&amp;lt;string, string&amp;gt; checkpointIDs,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out string activityID)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Activity);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, activityName);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; activityID = Id + Guid.NewGuid().ToString("N");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, activityID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Create a dictionary object to store the IDs in&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checkpointIDs = new Dictionary&amp;lt;string, string&amp;gt;();&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Open the schema&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlDocument xmlDocument = new XmlDocument();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlDocument.Load(schema);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //The rules are &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XmlNodeList xmlNodeList = xmlDocument.SelectNodes(XpathToAttribute);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Loop through all the attributes and create the new xslb schema&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (XmlNode xmlNode in xmlNodeList)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string checkpointID = Id + Guid.NewGuid().ToString("N");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checkpointIDs.Add(xmlNode.Attributes[LCName].Value, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Add the data type attributes&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xmlNode.OuterXml.Contains(XsdDateTime))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Checkpoint);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataType, SqlDateTime);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Checkpoint&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (xmlNode.OuterXml.Contains(XsdInteger))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Checkpoint);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataType, SqlInt);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Checkpoint&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (xmlNode.OuterXml.Contains(XsdDouble))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Checkpoint);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataType, SqlFloat);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Checkpoint&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (xmlNode.InnerXml.Contains(XsdString))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Checkpoint);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataType, SqlNvarchar);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xmlNode.InnerXml.Contains(Length))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataLength,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlNode.SelectSingleNode(XpathToLength).InnerText);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (xmlNode.InnerXml.Contains(MaxLength))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataLength,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlNode.SelectSingleNode(XpathToMaxLength).InnerText);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataLength, "255");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Checkpoint&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (xmlNode.OuterXml.Contains(XsdString))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteStartElement(Checkpoint);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(UCName, xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(Id, checkpointID);&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataType, SqlNvarchar);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteAttributeString(DataLength, "255");&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face="Courier New" color=#000080 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Checkpoint&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("Unknown xsd datatype: " + xmlNode.OuterXml + " continuing to create xlsb.");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; checkpointIDs.Remove(xmlNode.Attributes[LCName].Value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xlsbWriter.WriteEndElement(); //End Activity&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;How to call example: &lt;FONT face="Courier New" color=#0000ff&gt;BAMXlsbGenerator /x "C:\Projects\SynboogalooSamples\Test.xlsb" /v TestView /a [TestActivityA,TestActivityB] /s [C:\Projects\SynboogalooSamples\SampleTransactionA.xsd,C:\Projects\SynboogalooSamples\SampleTransactionB.xsd]&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;This saved me a lot of time all I needed to do now to finish setting up BAM was deploy the xlsb BAM definition using the BM.exe tool and use the Tracking Profile Editor to associate the message payload with the BAM activity definition about 5 minutes of drag n' drop&amp;nbsp;work. In the BAM Portal system testers can query transformed data and can even query the BAM tables if they want. They are able through BAM relationships to view the message contents each time it has been modified and logged to BAM.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;I found this technique was a quick and simple way of empowering system testers to test BizTalk applications.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;I should note another option for System Testing EAI solutions is to go with an implementation of &lt;A href="http://sourceforge.net/projects/nfit/"&gt;FIT (Framework For Integration Testing)&lt;/A&gt;&amp;nbsp; here is a &lt;A href="http://codebetter.com/blogs/jeffrey.palermo/archive/category/1232.aspx"&gt;blog with more info&lt;/A&gt;.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;FONT face=Arial size=2&gt;Rob&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111254"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=111254" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/111254.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/10/111254.aspx</guid>
            <pubDate>Tue, 10 Apr 2007 11:37:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/111254.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/10/111254.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/111254.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/111254.aspx</trackback:ping>
        </item>
        <item>
            <title>Passed the BizTalk 2006 Exam</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/04/110842.aspx</link>
            <description>&lt;FONT face=Arial size=2&gt;84%&amp;nbsp;it wasn't that bad, but it should have been easy after 3+ years working with BizTalk, lots on BAM and the BRE.&amp;nbsp;I think I lost marks on the&amp;nbsp;drag and drop questions and there was a tricky question on coding a BRE fact retriever. I used &lt;A href="http://www.digitaldeposit.net/blog/2007/03/passed-70-235-here-is-my-exam.html"&gt;Saravana's exam preparation diary&lt;/A&gt;.&lt;/FONT&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110842"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110842" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/110842.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/04/110842.aspx</guid>
            <pubDate>Thu, 05 Apr 2007 02:25:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/110842.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/04/110842.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/110842.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/110842.aspx</trackback:ping>
        </item>
        <item>
            <title>BizTalk R2 Beta 2 is supposed to be a public release, so non-TAPpers can get their hands on it</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/04/03/110715.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;A href="http://blogs.msdn.com/sonuarora/archive/2007/04/02/biztalk-server-2006-r2-beta-2-released.aspx"&gt;BizTalk Server 2006 R2 Beta 2 released&lt;/A&gt;&amp;nbsp;- Thanks Mike ;)&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110715"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110715" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/110715.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/04/03/110715.aspx</guid>
            <pubDate>Wed, 04 Apr 2007 01:26:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/110715.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/04/03/110715.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/110715.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/110715.aspx</trackback:ping>
        </item>
        <item>
            <title>in a sequential convoy the ports must be identical</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/03/26/109890.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Arial size=2&gt;A client was getting this compile error "in a sequential convoy the ports must be identical"&amp;nbsp;when compiling an orchestration which had two consecutive receive ports in a sequential convoy. The answer was simple they needed to use a &lt;A href="http://geekswithblogs.net/sthomas/archive/2004/11/07/14526.aspx"&gt;concurrent convoy&lt;/A&gt;&amp;nbsp;not a sequential convoy.&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109890"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109890" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/109890.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/03/26/109890.aspx</guid>
            <pubDate>Tue, 27 Mar 2007 01:46:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/109890.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/03/26/109890.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/109890.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/109890.aspx</trackback:ping>
        </item>
        <item>
            <title>A must have for WCF development</title>
            <category>Windows Communication Foundation</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/03/29/110211.aspx</link>
            <description>&lt;P&gt;If you haven't already download and install&amp;nbsp;the &lt;A href="http://www.codeplex.com/servicefactory " temp_href="http://www.codeplex.com/servicefactory "&gt;Service Factory&lt;/A&gt; it really reduces the time taken to build and&amp;nbsp;publish&amp;nbsp;your WCF services to IIS letting you concentrate on implementing business logic. Unfortunately it doesn't come with any refactoring functionality.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110211"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=110211" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/110211.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/03/29/110211.aspx</guid>
            <pubDate>Thu, 29 Mar 2007 09:30:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/110211.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/03/29/110211.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/110211.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/110211.aspx</trackback:ping>
        </item>
        <item>
            <title>Goodbye Synergy hello London</title>
            <category>BizTalk</category>
            <category>General</category>
            <category>Windows WorkFlow Foundation</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2007/03/22/109543.aspx</link>
            <description>&lt;FONT face=Arial size=2&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I haven't posted for a while I've just finished work on a&amp;nbsp;Banks&amp;nbsp;SOA framework written with extensive use of WCF&amp;nbsp;(which is very very extensible!).&amp;nbsp;Started work implementing their Kiwisaver group investments initiative in BizTalk 2006 R2. We were one of the first out of the blocks in&amp;nbsp;utilising the R2 WCF adapter (could be a bit more configurable), the WCF interceptor and AS2 adapter (interesting BAM continuations). Then after 3 years I decided to leave Synergy and go freelance for a while before moving back to the UK.&amp;nbsp;On the same day I left Synergy I sold&amp;nbsp;my bach&amp;nbsp;and bought a new investment property so it's been busy. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;It's been a truly fabulous 3 years working for Synergy International in New Zealand which has recently been re-branded as &lt;U&gt;&lt;SPAN style="COLOR: #810081"&gt;&lt;A href="http://www.synergy.co.nz/"&gt;&lt;FONT color=#800080&gt;Fronde&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/U&gt;. For those of you looking for a change to kick start career development this professional organisation is continuing&amp;nbsp;to grow&amp;nbsp;in all the right directions, they offer great&amp;nbsp;training opportunities, working and learning from very experienced people&amp;nbsp;in a family oriented enviroment.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Well for the next few months I'm&amp;nbsp;integrating a portfolio CRM to an investment banks core trading systems again in BizTalk and among other things&amp;nbsp;using BAM for system testing which I will post on later. &lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Ciao&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Rob&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109543"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=109543" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/109543.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2007/03/22/109543.aspx</guid>
            <pubDate>Fri, 23 Mar 2007 01:33:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/109543.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2007/03/22/109543.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/109543.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/109543.aspx</trackback:ping>
        </item>
        <item>
            <title>Implementation of Message Transformation Normaliser Pattern in the BizTalk 2004</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2005/04/22/37335.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: Arial"&gt;&lt;font size="2"&gt;This is a simple explanation of how to join together two schemas with a 1:1 relationship between them in the Biztalk Mapper. I came across this problem when I had 2 legacy csv files which needed to be merged (using a unique identifier field in each file) before further processing could occur in a Biztalk Orchestration.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: Arial"&gt;&lt;font size="2"&gt;I will show by example. The example is a bit convoluted, but stay with me ;) different departments are ordering the same parts but are paying different prices we want to see the difference in price for the parts. There are also fields missing from each field which we want to add to the finished schema.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: Arial"&gt;&lt;font size="2"&gt;1) So first create 2 schemas one for each department, note the common PartID which is the unique identifier and price, but also not that one file comes with a Part name and another with a manufacturer:&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: Arial"&gt;&lt;v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:spt="75" coordsize="21600,21600" stroked="f" o:preferrelative="t" filled="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: Arial"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; FONT-FAMILY: Tahoma; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-NZ; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship1.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; FONT-FAMILY: Tahoma; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-NZ; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship2.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 10pt; LINE-HEIGHT: 120%; FONT-FAMILY: Tahoma; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: EN-NZ; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;br style="PAGE-BREAK-BEFORE: always" clear="all" /&gt;
&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;2) Create the Output Schema&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship3.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;3) Now create an orchestration which will call the Map to join the two schemas by taking them both in and using a transform shape to map the two then it will output them&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship4.JPG" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;4) Set the transform properties as below create a new map set the destination to the output map &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship5.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;5) Which will create a map&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship6.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;6) Finally the biz … ok on the map join the common fields from the first schema (but not the second) with fields in the output schema n&lt;/font&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;ow add a script functoid and set it up like this. Using an XSLT template it will search the second message for the values (simple xpath) where the PartID in the first message matches the PartID in the second message. It will then return the value of the price attribute in the second message. From this you can see how powerful using inline xslt is.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship8.JPG" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;7) Add another script block to get the manufacturer field set the inline script buffer to:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt; &lt;span lang="EN-NZ"&gt;&lt;xsl:template name="GetManufacturer"&gt;&lt;/xsl:template&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:template name="GetManufacturer"&gt;&lt;/xsl:template&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:param name="PartID" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:attribute name="Manufacturer"&gt;&lt;/xsl:attribute&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:value-of select="//Dept2Parts[@PartID = $PartID]/@Manufacturer"&gt;&lt;/xsl:value-of&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt; &lt;/p&gt;
&lt;span lang="EN-NZ"&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;xsl:template name="GetManufacturer"&gt;&lt;/xsl:template&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;xsl:param name="PartID" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;xsl:attribute name="Manufacturer"&gt;&lt;/xsl:attribute&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;xsl:value-of select="//Dept2Parts[@PartID = $PartID]/@Manufacturer"&gt;&lt;/xsl:value-of&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;xsl:template name="GetManufacturer"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/xsl:template&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;xsl:param name="PartID" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;xsl:attribute name="Manufacturer"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/xsl:attribute&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;xsl:value-of select="//Dept2Parts[@PartID = $PartID]/@Manufacturer"&gt;&lt;/xsl:value-of&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;9) Join up the schemas in the final map like so … THE END!&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizRelationship9.JPG" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;R. Addis&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:param name="PartID" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:attribute name="Manufacturer"&gt;&lt;/xsl:attribute&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;xsl:value-of select="//Dept2Parts[@PartID = $PartID]/@Manufacturer"&gt;&lt;/xsl:value-of&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=37335"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=37335" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/37335.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2005/04/22/37335.aspx</guid>
            <pubDate>Fri, 22 Apr 2005 10:55:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/37335.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2005/04/22/37335.aspx#feedback</comments>
            <slash:comments>15</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/37335.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/37335.aspx</trackback:ping>
        </item>
        <item>
            <title>Building a custom Pipeline Decoder component to modify a Message Context Property</title>
            <category>BizTalk</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2005/04/27/38500.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;An instance of the Biztalk MessageContext is created and stays with each message until the message leaves Biztalk. It contains properties such as RecievePortName, RecieveFileName, MessageType i.e. all the meta data for a message. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;If you want to modify this meta data you need to modify the IBaseMessageContext using either the following methods, this may be done in either a custom pipeline component or inside an orchestration:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;IBaseMessageContext.Promote: Make the Message Context property a promoted property&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;IBaseMessageContext.Write: Make the Message Context Property a distinguished property&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Where you make the call to modify the message context depends on WHEN it should be modified. If you want to use a message context property to correlate two messages you should do it inside a custom pipeline component. If you want to set the message context during processing after some decision logic do so in a Message Assignment shape in an Orchestration. We are only looking at doing it in a custom pipeline component.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;An example of using this would be if you had two input files which needed to be correlated in an orchestration based on an id or date in the filename which defined a relationship between those files. Another example of a problem this would solve is found here: &lt;/font&gt;&lt;a href="http://www.eggheadcafe.com/ng/microsoft.public.biztalk.server/post21008841.asp"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;http://www.eggheadcafe.com/ng/microsoft.public.biztalk.serv&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;e&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;r/post21008841.asp&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;So in both these cases we want to look at the file name of the message, extract and promote part of it so we can either use that extracted information to either correlate two or more incoming messages or base some decision logic on those properties. The way I’m going to show you how to do it is to actually overwrite the RecieveFileName property with the extracted value from it. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Notes:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 24.7pt; TEXT-INDENT: -24.7pt; mso-list: l2 level1 lfo2; tab-stops: list 24.7pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I am going to show you how we did it instead of just giving you code or a solution.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 24.7pt; TEXT-INDENT: -24.7pt; mso-list: l2 level1 lfo2; tab-stops: list 24.7pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;Although I think “Biztalk Server 2004 Unleashed” tries too cover too much in one book it does have a very good explanation of Pipelines and what the different stages of a pipeline should implement. &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 18.15pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.15pt"&gt;&lt;span lang="EN-NZ" style="mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;1)&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Download Martijn Hoogendoorns’ Pipeline Component Wizard &lt;/font&gt;&lt;a href="http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=1d4f7d6b-7d27-4f05-a8ee-48cfcd5abf4a"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" size="2"&gt;http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=1d4f7d6b-7d27-4f05-a8ee-48cfcd5abf4a&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; and install it:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 54.15pt; TEXT-INDENT: -18pt; mso-list: l3 level2 lfo1; tab-stops: list 54.15pt"&gt;&lt;span lang="EN-NZ" style="mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;a.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Unzip the source code, open the Visual Studio sln file and rebuild the PipelineComponentWizardSetup project.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 54.15pt; TEXT-INDENT: -18pt; mso-list: l3 level2 lfo1; tab-stops: list 54.15pt"&gt;&lt;span lang="EN-NZ" style="mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;b.&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Right-click the PipelineComponentWizardSetup project and select “Install” to install it.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 18.15pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo1; tab-stops: list 18.15pt"&gt;&lt;span lang="EN-NZ" style="mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;2)&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;In your Biztalk project add a new project and select Biztalk Server Pipeline Component Project set the following properties in the wizard.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizDecodePipeline1.JPG" /&gt; &lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizDecodePipeline2.JPG" /&gt; &lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizDecodePipeline3.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 0.15pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:spt="75" coordsize="21600,21600" stroked="f" o:preferrelative="t" filled="f"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t"&gt;&lt;/v:path&gt;&lt;o:lock v:ext="edit" aspectratio="t"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 18pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;o:p&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 0.15pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;3)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;     &lt;/span&gt;Explaining all of the Interfaces which are implemented in a pipeline component is not in the scope of this post. I will   however advise you to take a quick look and familiarise your self with the following methods which implement the PropertyBag: Load, Save, ReadPropertyBag, WritePropertyBag. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The method of the Decode Pipeline Component which does the Biz is the Execute method to which we add the following code:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt; Microsoft.BizTalk.Message.Interop.IBaseMessage Execute(Microsoft.BizTalk.Component.Interop.IPipelineContext pc, Microsoft.BizTalk.Message.Interop.IBaseMessage inmsg)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: green; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;//Make sure the message contexts property name isn't empty&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (_PropertyName != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="COLOR: green"&gt;//Get the current value of the property &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="COLOR: blue"&gt;object&lt;/span&gt; oPropertyValue = inmsg.Context.Read(_PropertyName, _PropertyNamespace);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (oPropertyValue != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt; sPropertyValue = (&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;)oPropertyValue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;System.Text.RegularExpressions.Regex oReplaceRegularExpression = &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;System.Text.RegularExpressions.Regex(_ReplaceRegularExpression);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 5"&gt;                                  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: green"&gt;//Replace the regular expression with the value specified&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;sPropertyValue = &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 36pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;oReplaceRegularExpression.Replace(sPropertyValue,_Value);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 5"&gt;                                  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: green"&gt;//Either promote or distinguish the property&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (_PromoteOrDistinguish == "Promote")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;inmsg.Context.Promote(_PropertyName, _PropertyNamespace, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;sPropertyValue);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="COLOR: blue"&gt;else&lt;/span&gt; &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (_PromoteOrDistinguish == "Distinguish")&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;inmsg.Context.Write(_PropertyName, _PropertyNamespace, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;sPropertyValue);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;                  &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;                 &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;return&lt;/span&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt; inmsg;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span style="FONT-SIZE: 8pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;}&lt;/span&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; LINE-HEIGHT: 120%"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Note I have also changed the Value property to allow you replace with an empty string so you can remove characters using a regular expression.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; Value&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;get&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;&lt;span style="COLOR: blue"&gt;set&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (&lt;span style="COLOR: blue"&gt;value&lt;/span&gt; == &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;_Value = &lt;span style="COLOR: blue"&gt;string&lt;/span&gt;.Empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="COLOR: blue"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;_Value = &lt;span style="COLOR: blue"&gt;value&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal; mso-layout-grid-align: none"&gt;&lt;span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span style="FONT-SIZE: 8pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'; mso-ansi-language: EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;4)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;     &lt;/span&gt;Well that’s the development easy aye thanks to the Pipeline Component Wizard. As for testing I guess you could do this by &lt;a href="http://blogs.msdn.com/gzunino/archive/2004/07/01/171281.aspx"&gt;STOP PRESS a much better way of debugging a pipeline&lt;/a&gt;:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;referencing the new pipeline component project in your Biztalk project&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;change the output path in the pipeline components project properties dialog to C:\Program Files\Microsoft BizTalk Server 2004\Pipeline Components&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;adding the compiled pipeline dll as a component by right clicking on the pipeline component toolbar and choosing add new item then selecting the Biztalk Pipeline Components Tab&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;placing a breakpoint in the Execute method code &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;add the component to the decode stage of a pipeline where you want to use it set the properties on the decode component to (this is just a suggestion, the regular expression tries to remove all the characters around a date which was in a filename setting the ReceivedFileName property to a date)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BizDecodePipeline4.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;deploy your Biztalk project&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;set up a receive port &amp;amp; location&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;attach to the BTSNTSvc,exe process&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l1 level1 lfo3; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;drop a file in the receive location and hopefully the debug runtime will stop at your breakpoint&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;5)&lt;span style="FONT: 7pt 'Times New Roman'"&gt;     &lt;/span&gt;To use the modified and promoted RecieveFileName property to correlate two messages &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l0 level1 lfo4; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;create a Correlation Type and set the “Correlation Type Properties” property to FILE.ReceivedFileName &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l0 level1 lfo4; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;create a Correlation Set based on this type&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l0 level1 lfo4; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ" style="COLOR: #40a115; mso-bidi-font-family: Tahoma; mso-fareast-font-family: Tahoma"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Tahoma" size="2"&gt;•&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;              &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;initialise the correlation set property of the receive shape (for the messages which need to be correlated) to the name of the correlation set you created above&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 42.55pt; TEXT-INDENT: -24.7pt; mso-list: l0 level1 lfo4; tab-stops: list 42.55pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;R. Addis&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38500"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=38500" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/38500.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2005/04/27/38500.aspx</guid>
            <pubDate>Wed, 27 Apr 2005 11:05:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/38500.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2005/04/27/38500.aspx#feedback</comments>
            <slash:comments>10</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/38500.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/38500.aspx</trackback:ping>
        </item>
        <item>
            <title>Business Activity Monitoring (BAM) and ASP.net 2.0 Web Parts</title>
            <category>BizTalk</category>
            <category>ASP.net 2.0</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2006/07/10/84534.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Last year at the Microsoft BPI Conference in &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Seattle&lt;/st1:city&gt;&lt;/st1:place&gt; over a few beers Scott Alan (a Microsoft integration technology specialist) shared with me his idea about using ASP.net 2.0 Web Parts to present BAM data. The idea was to give managers a more precise, flexible and easy to use interface into their business processes, they could essentially go to one dashboard and get a historical and current view of how various areas of their business unit or organisation were doing.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I’ve searched the blogosphere half a year later and I’m surprised no one has written about this it’s so simple to build. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The only gripe I have is that ASP.net 2.0 Web Parts cannot be deployed to SharePoint Services 2003 you’ll have to wait until the next version out later this year. You can however get to grips with how build Web Parts to show BAM data on an ASP.net 2.0 page now. (you can use Son of SmartPart see feedback below)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;This post isn’t going to cover how to enable BAM it also isn’t about how to build Web Parts the basics of which are covered in these 3 tutorials:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://www.ondotnet.com/pub/a/dotnet/2005/05/23/webparts_1.html"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;WebParts1&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://www.ondotnet.com/pub/a/dotnet/2005/06/06/webparts_2.html"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" size="2"&gt;WebParts2&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://www.ondotnet.com/pub/a/dotnet/2005/06/27/webparts_3.html"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font size="2"&gt;&lt;font face="Tahoma"&gt;WebParts3&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Here is a simple BAM dashboard (ok I’m not a graphic designer). From the right hand side of the page the manager selects what data in which format they want to view and where on the page it should sit. Once the web part is on the page they can drag it to where ever they want or get rid of it and display another one.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;o:p&gt;&lt;font face="Tahoma" size="2"&gt;&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img style="WIDTH: 723px; HEIGHT: 610px" height="749" width="928" alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BAMWebParts0.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;All the Web Parts&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BAMWebParts1.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;o:p&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#006400" size="2"&gt;&lt;u&gt;&lt;strong&gt;How to plug into BAM&lt;/strong&gt;&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I know of three ways to access BAM data the first is obvious just grab it from the Views in the BAMPrimaryImport database, the second is by accessing the cubes in SQL Server Anaylsis Services the third is by calling the Web Services which the BAM Portal uses to access BAM data (these are installed with BAM):&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;a href="http://[server]/BAM/BAMQueryService/BamQueryService.asmx"&gt;http://[server]/BAM/BAMQueryService/BamQueryService.asmx&lt;/a&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BAMWebParts2.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;o:p&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;&lt;a href="http://[server]/BAM/BAMManagementService/BamManagementService.asmx"&gt;http://[server]/BAM/BAMManagementService/BamManagementService.asmx&lt;/a&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_BAMWebParts3.JPG" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;o:p&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I developed 3 simple Web User Controls to display BAM Data, as a best practice I think it’s a good idea if you develop all your web parts as Web User Controls (these will be later wrapped up as Web Parts).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style="MARGIN: auto auto auto 4.65pt; WIDTH: 560.7pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt" cellspacing="0" cellpadding="0" width="748" border="0" class="MsoNormalTable"&gt;
    &lt;tbody&gt;
        &lt;tr style="HEIGHT: 12.75pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="bottom" nowrap="nowrap" width="133"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Web Part&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 191.35pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="bottom" width="255"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Usage&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 269.35pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 12.75pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="bottom" width="359"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;strong&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Access method&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="HEIGHT: 24pt; mso-yfti-irow: 1"&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" nowrap="nowrap" width="133"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Orders for &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Redmond&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 191.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="255"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Graph of all the orders for the city of &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Redmond&lt;/st1:city&gt;&lt;/st1:place&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 269.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="359"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;BAM Query Service GetInstanceData web method&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="HEIGHT: 24pt; mso-yfti-irow: 2"&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" nowrap="nowrap" width="133"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Subscribe to alert&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 191.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="255"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Allows a user to subscribe to an existing alert&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 269.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="359"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 9pt; FONT-FAMILY: Arial"&gt;BAM Management Service GetAlertsSummary and AddSubscription web methods&lt;/span&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="HEIGHT: 24pt; mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 100pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt" valign="top" nowrap="nowrap" width="133"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Orders by city&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 191.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="255"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;Report with graph displaying the number of orders per city&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
            &lt;td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; PADDING-LEFT: 5.4pt; BORDER-LEFT-COLOR: #d4d0c8; PADDING-BOTTOM: 0cm; WIDTH: 269.35pt; BORDER-TOP-COLOR: #d4d0c8; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 24pt; BACKGROUND-COLOR: transparent; mso-border-bottom-alt: solid windowtext .5pt; mso-border-right-alt: solid windowtext .5pt" valign="top" width="359"&gt;
            &lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span style="FONT-SIZE: 9pt; FONT-FAMILY: Arial; mso-ansi-language: EN-US"&gt;View on BAMPrimaryDataBase &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;font color="#006400"&gt;&lt;font size="2"&gt;&lt;u&gt;&lt;strong&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma"&gt;1) Orders for &lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Redmond&lt;/st1:city&gt;&lt;/st1:place&gt; web part&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/u&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Controls: an ASP.net 2.0 GridView&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Code: (create a web reference to the BAMQueryService)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Configuration;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Collections;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.Security;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.WebControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.WebControls.WebParts;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.HtmlControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Security.Principal;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;public partial class OrdersForRedmond &lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;: System.Web.UI.UserControl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;protected void Page_Load(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Create the instance query note that the ActivityID is always the first column returned&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamQueryService.InstanceQuery instanceQuery = new BamQueryService.InstanceQuery();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;instanceQuery.SelectClauses = new string[] { "city", "product", "amount", "denied", "approved" };&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Create a filter expression and add it as a where clause&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamQueryService.ArrayOfWhereClausesFilterFilter whereClauseFilter = new BamQueryService.ArrayOfWhereClausesFilterFilter();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;whereClauseFilter.Field = "City";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;whereClauseFilter.Condition = "=";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;whereClauseFilter.Logic = "And";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;whereClauseFilter.Value = "&lt;st1:place w:st="on"&gt;&lt;st1:city w:st="on"&gt;Redmond&lt;/st1:city&gt;&lt;/st1:place&gt;";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;instanceQuery.WhereClauses = new BamQueryService.ArrayOfWhereClausesFilterFilter[] { whereClauseFilter };&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Add credentials to call the WS (integrated security) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Call the GetInstanceData web method and return the result&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamQueryService.BamQueryService bamQueryService = new BamQueryService.BamQueryService();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;bamQueryService.Credentials = new System.Net.NetworkCredential("administrator", "pass@word1");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamQueryService.Column[][] result = bamQueryService.GetInstanceData("SalesManager", "OrderMgmt", instanceQuery, 30);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Fill a data table this is a quick and dirty way of creating a datasource &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//probably a better way to bind a 2d array &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;DataTable dataTable = new DataTable("OrdersTable");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][0].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][1].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][2].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][3].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][4].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add(result[0][5].Name);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;for (int i = 0; result.GetUpperBound(0) &amp;gt;= i; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;DataRow dataRow = dataTable.NewRow();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[0] = result[i][0].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;         &lt;/span&gt;dataRow[1] = result[i][1].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[2] = result[i][2].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[3] = result[i][3].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[4] = result[i][4].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[5] = result[i][5].Value;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataTable.Rows.Add(dataRow);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Fill the grid with the result&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;gvOrders.DataSource = dataTable;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;gvOrders.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;catch (Exception ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(), ex.ToString(), System.Diagnostics.EventLogEntryType.Error);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#006400" size="2"&gt;&lt;strong&gt;&lt;u&gt;2) Subscribe to Alert web part&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Note: some alerts must exist already in the BAM Portal&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Controls: An ASP.net 2.0 Drop Down List, Text Box and a Button&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Code: (create a web reference to the BAMManagementService)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Configuration;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Collections;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.Security;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.WebControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.WebControls.WebParts;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Web.UI.HtmlControls;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;using System.Security.Principal;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;public partial class SubscribeToAlert : System.Web.UI.UserControl&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;BamManagementService.BamManagementService _BamManagementService;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;protected void Page_Load(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Fill the subscriptions combo list box&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Add credentials to call the WS (integrated security) &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Call the GetAlertsSummary web method&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_BamManagementService = new BamManagementService.BamManagementService();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_BamManagementService.Credentials = new System.Net.NetworkCredential("administrator", "pass@word1");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamManagementService.AlertSummary[] alertSummary =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;_BamManagementService.GetAlertsSummary("SalesManager");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Fill a data table this is a quick and dirty way of creating a datasource &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//probably a better way to bind a 2d array &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;DataTable dataTable = new DataTable("AlertsTable");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;dataTable.Columns.Add("Alerts");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;for (int i = 0; alertSummary.GetUpperBound(0) &amp;gt;= i; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;DataRow dataRow = dataTable.NewRow();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataRow[0] = alertSummary[i].Name;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;dataTable.Rows.Add(dataRow);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;     &lt;/span&gt;//Fill the drop down list&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;ddlAlerts.DataSource = dataTable;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;ddlAlerts.DataTextField = "Alerts";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;ddlAlerts.DataValueField = "Alerts";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;ddlAlerts.DataBind();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;catch (Exception ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(), ex.ToString(),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;System.Diagnostics.EventLogEntryType.Error);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;protected void btnSubscribeToAlert_Click(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Create a subscription&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;BamManagementService.Subscription subscription = new BamManagementService.Subscription();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;subscription.ID = new Guid().ToString();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;subscription.Type = BamManagementService.SubscriptionType.email;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;subscription.UserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;subscription.Address = txtEmailAddress.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_BamManagementService = new BamManagementService.BamManagementService();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_BamManagementService.Credentials = new System.Net.NetworkCredential("administrator", "pass@word1");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_BamManagementService.AddSubscription("SalesManager", ddlAlerts.SelectedValue,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;new BamManagementService.Subscription[] { subscription });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;catch (Exception ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(), ex.ToString(), System.Diagnostics.EventLogEntryType.Error);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; COLOR: navy; FONT-FAMILY: 'Courier New'"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#006400" size="2"&gt;&lt;u&gt;&lt;strong&gt;3) Orders by City web part&lt;/strong&gt;&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Create a dataset and connect the BAMPrimaryImport database and select the View which contains the data you’re interested in.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Select add new item and choose report&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Drag a Chart from the toolbox onto the report &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Go to the Report menu and select Data Sources and then choose the dataset you created above&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Play with the properties of the graph until you’re happy i.e. add x y cell data&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Add a Web User Control to the project&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l0 level1 lfo1; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Add a Report Viewer control and choose the report you just created&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Code: none&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Now you’ve got your Web User Controls (soon to be web Parts) if you haven’t already do the 3 web part tutorials above and build your page. This is just a simple example of how you can interface with BAM &amp;amp; use ASP.net 2.0 web parts to empower managers.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84534"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84534" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/84534.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2006/07/10/84534.aspx</guid>
            <pubDate>Mon, 10 Jul 2006 06:49:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/84534.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2006/07/10/84534.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/84534.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/84534.aspx</trackback:ping>
        </item>
        <item>
            <title>Windows Workflow Foundation, InfoPath and SharePoint Portal Server 2003</title>
            <category>Windows WorkFlow Foundation</category>
            <link>http://geekswithblogs.net/synBoogaloo/archive/2006/07/05/84083.aspx</link>
            <description>&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I recently took a look at using Windows Workflow Foundation to create a simple Human Workflow to manage a procurement process on SharePoint Portal Server. So I set about integrating SharePoint Portal Server (SPS), InfoPath and Windows Workflow Foundation to achieve this goal was it easy … well yes. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Here are the blog entries I can remember which really helped me out.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://blogs.msdn.com/davegreen/archive/2005/10/20/483309.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Which Style of Workflow When&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://blogs.msdn.com/richardbpi/archive/2006/02/17/534406.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Windows Workflow + SharePoint 2003 + BizTalk Scenario Built Out&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt; &lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Tahoma"&gt;(Unfortunately SharePoint Portal Server is not .net 2.0 compatible whereas SharePoint Services are) &lt;/span&gt;&lt;a href="http://blogs.msdn.com/richardbpi/archive/2006/02/17/534406.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://firechewy.com/blog/archive/2006/04/12/974.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Adventures with Windows Workflow – Hosting a Workflow with Tracing and Persistence&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://www.codeproject.com/useritems/wfstatemachineaspnet.asp"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Windows Workflow Foundation ASP.Net State Machine&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 24pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none; tab-stops: 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;&lt;u&gt;Basic user experience:&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The InfoPath form was vaguely similar to the Purchase Request form which comes with InfoPath as a template. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l2 level1 lfo6; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Go to a SharePoint form library and enter a procurement request using an InfoPath form and submit it&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l2 level1 lfo6; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;An approver would then receive an email with a link to the InfoPath form asking them to click the link and then approve or reject the procurement they open the form, approve, reject and then submit it&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l2 level1 lfo6; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Reject send email with form link back to requester&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l2 level1 lfo6; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Approve send email to a higher approver or a PO issuer with form links they open the form, enter the &lt;st1:place w:st="on"&gt;PO&lt;/st1:place&gt; number and then submit it&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Note:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Only an approver can approve, only a PO issuer can issue &lt;st1:place w:st="on"&gt;PO&lt;/st1:place&gt; numbers&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I didn’t need to write a single line of code to create the InfoPath form it was super easy.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 style="MARGIN: 24pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none; tab-stops: 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;&lt;u&gt;How it’s done&lt;/u&gt;&lt;/font&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style="MARGIN: 18pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;SharePoint Portal Server Event Sinks&lt;/font&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;As SPS 2003 is not .net 2.0 compatible I hosted my Win WF State Machine in an ASP.net 2.0 Web Service (I am going to go into greater detail of how to do this below). &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;I registered an ASP.net 1.0 event handler class (see following code) in the advanced settings of my Procurement Form Library on SPS. Each time an InfoPath from is saved or submitted this event handler is called. This just calls the ASP.net 2.0 Web Service passing the SPS site URL and the InfoPath file url so the State Machine can access, read and update properties on the InfoPath form.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Note you could just as easily not use the SPS event sink and call the web service from an InfoPath form, using the event sink just gave me an easy way of passing the SPS site URL and the InfoPath file url (from the SPListEvent arguement) to my Win WF hosting Web Service so I could gain control of the InfoPath form inside the state machine and modify it’s xml etc.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using System;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using System.Runtime.Serialization;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using System.Runtime.Serialization.Formatters.Binary;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using System.IO;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using Microsoft.SharePoint;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;using System.Security.Principal;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;namespace Synergy.Procurement.Net1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;public class SPEventHandler : Microsoft.SharePoint.IListEventSink&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;void IListEventSink.OnEvent(Microsoft.SharePoint.SPListEvent spEvent)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;WindowsImpersonationContext wic = WindowsIdentity.GetCurrent().Impersonate();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//Pass the enough information to instanciate the current SharePoint Task &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//and the Microsoft.SharePoint.SPListEventType through a web service to Win Workflow&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//this way all the workflow process logic is handeled by Win Workflow&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//NOTE: need to call through a Web Service as only SPS runs on .Net 1.1 and&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//Win Workflow on .Net 2.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//Get the following information so we can reinstanciate the list item in the workflow&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//site url&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;//list file url&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;SPWeb spActiveSite = spEvent.Site.OpenWeb();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;string spSiteUrl = spActiveSite.Url;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;string spFileUrl = spEvent.UrlAfter;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;WSToWinWF.Service wsWWF = new Synergy.Procurement.Net1.WSToWinWF.Service();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;wsWWF.Credentials = System.Net.CredentialCache.DefaultCredentials;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;&lt;span style="mso-tab-count: 2"&gt;              &lt;/span&gt;Boolean wsTestResult = wsWWF.Invoke(spSiteUrl, spFileUrl, System.Convert.ToByte(spEvent.Type));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;catch (System.Exception e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;span style="mso-tab-count: 1"&gt;      &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(),e.ToString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;finally&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 4"&gt;                           &lt;/span&gt;wic.Undo();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 3"&gt;                     &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-tab-count: 1"&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 style="MARGIN: 18pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;Hosting a State Machine in a Web Service&lt;/font&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Once the .Net 2.0 Web Service is called its job is to:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l5 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Open the infopath form on the SPS Forms Library and deserialize the InfoPath xml into a serializable class (generated by the xsd utility in .net 2.0)&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt;     &lt;font color="#0000ff"&gt;   &lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;//Get the infopath file&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;SPWeb activeSite = new SPSite(spSiteUrl).OpenWeb();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;SPFile spFile = activeSite.GetFile(spFileUrl);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Get the infopath xml from the byte array of the file and read it into a memory //stream&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;             &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;Byte[] byteBuffer = spFile.OpenBinary();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;MemoryStream xmlStream = new MemoryStream(byteBuffer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Now deserialise the infopath xml into a class&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;XmlSerializer serializer = new XmlSerializer(typeof(procurementRequest));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;procurementRequest _pRequest;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;_pRequest = (procurementRequest)serializer.Deserialize(xmlStream);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1" start="2"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l5 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Start and stop the workflow runtime and add the ExternalDataExchangeService the in the Global.asax &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;void Application_Start(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 36pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;// NOTE:&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This requires the configuration section to be named "WorkflowRuntime".&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;System.Workflow.Runtime.WorkflowRuntime workflowRuntime = new System.Workflow.Runtime.WorkflowRuntime("WorkflowRuntime");&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;Application["WorkflowRuntime"] = workflowRuntime;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Add the procurement service to the runtime&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;System.Workflow.Activities.ExternalDataExchangeService dataService = workflowRuntime.GetService&lt;system.workflow.activities.externaldataexchangeservice&gt;&lt;/system.workflow.activities.externaldataexchangeservice&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;Synergy.Procurement.Net2.LocalServices.ProcurementService procurementService = new Synergy.Procurement.Net2.LocalServices.ProcurementService();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;dataService.AddService(procurementService);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Start the runtime&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;workflowRuntime.StartRuntime();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;void Application_End(object sender, EventArgs e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;System.Workflow.Runtime.WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as System.Workflow.Runtime.WorkflowRuntime;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;workflowRuntime.StopRuntime();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1" start="3"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l5 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Create a new instance of the state machine or rehydrate an existing instance from SQL Server (I save the WorkFlow instance ID in the InfoPath Document) from the SqlWorkflowPersistenceService &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;font color="#0000ff"&gt;   &lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;private Guid StartWorkflowInstance()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;WorkflowRuntime workflowRuntime = (WorkflowRuntime)Application["WorkflowRuntime"];&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Now get a reference to the ManualWorkflowSchedulerService&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;_schedulerService = workflowRuntime.GetService&lt;manualworkflowschedulerservice&gt;&lt;/manualworkflowschedulerservice&gt;();&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Get the current procurement service if haven't already&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;if (_procurementService == null)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;ExternalDataExchangeService dataService = workflowRuntime.GetService&lt;externaldataexchangeservice&gt;&lt;/externaldataexchangeservice&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_procurementService = (ProcurementService)dataService.GetService(typeof(ProcurementService));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Get the instanceid from the infopath document&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;System.Guid WorkflowInstanceId;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Start the instance if not started&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;if (_spListEventType == SPListEventType.Insert)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;WorkflowInstanceId = Guid.NewGuid();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_workflowInstance = workflowRuntime.CreateWorkflow(typeof(MainStateMachine), null, WorkflowInstanceId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_workflowInstance.Start();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;       &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;//Load an existing instance&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Get the instanceid from the infopath document&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;WorkflowInstanceId = new Guid(_pRequest.referenceNumber);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_workflowInstance = workflowRuntime.GetWorkflow(WorkflowInstanceId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;_workflowInstance.Load();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;// Now run the workflow.&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;This is necessary when&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;// ...using the ManualWorkflowSchedulerService&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;_schedulerService.RunWorkflow(WorkflowInstanceId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;return WorkflowInstanceId;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ol type="1" start="4"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l5 level1 lfo2; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Decide upon which implemented ExternalDataExchange event to raise. This is based on the SPListEventType and the properties in the serializable class representing the InfoPath document (&lt;/font&gt;&lt;a href="http://www.codeproject.com/useritems/wfstatemachineaspnet.asp"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Windows Workflow Foundation ASP.Net State Machine&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt;). Create an ExternalDataExchange interface and class with which to call through to event handlers in the StateActivities on your state machine. I pass through the following event arguments: &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 90pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 90.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;WorkFlow instance ID (GUID)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 90pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 90.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;SPS site URL &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 90pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 90.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;InfoPath file url&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 90pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3; tab-stops: list 90.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The serializable class representing the InfoPath document&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Note: &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 72pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;You will need to impersonate the current windows identity before accessing the SharePoint site (call the OpenWeb method etc) and the users must have access to SharePoint&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 36pt; TEXT-INDENT: 36pt"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;WindowsImpersonationContext wic = WindowsIdentity.GetCurrent().Impersonate();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 72pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;It is important in your Service class to set the following ExternalDataEventArgs property before raising the event&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 72pt"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; LINE-HEIGHT: 120%; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;e.WaitForIdle = true;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm auto 72pt; TEXT-INDENT: -18pt; mso-list: l3 level1 lfo4; tab-stops: list 72.0pt"&gt;&lt;span lang="EN-NZ" style="FONT-FAMILY: 'Courier New'; mso-fareast-font-family: 'Courier New'"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font size="2"&gt;o&lt;/font&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The Win WF Beta2 ManualWorkflowSchedulerService has a bug which may be fixed by calling it’s RunWorkflow method after each time you raise an ExternalDataExchange event in the web service.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 style="MARGIN: 18pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;The State Machine&lt;/font&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;It looks like this (simple aye):&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;img alt="" src="/images/geekswithblogs_net/synboogaloo/1515/o_ProcurementStateMachine.jpg" /&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;v:shapetype id="_x0000_t75" filled="f" o:preferrelative="t" stroked="f" coordsize="21600,21600" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path gradientshapeok="t" o:extrusionok="f" o:connecttype="rect"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;The purpose of the state machine is to send emails to various managers requesting approval for procurement, notify procurement requesters of approval or rejection and email office admin staff to assign a &lt;st1:place w:st="on"&gt;PO&lt;/st1:place&gt; number. It also updates values on the InfoPath form hosted on the SharePoint site for example the WorkFlow instance ID I talked about earlier. It decides what emails/updates to make based on what events are raised in which particular state. A procurement may need to be approved by several managers up the management chain thus many approval events may be raised (by different managers) once in the ProcurementApproved State Activity. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: auto 0cm"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;Below is the code to save back the InfoPath document to the SharePoint site once various updates have been made.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;private void SaveInfoPathDoc()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Create an XmlTextWriter to add processing instructions and write the contents out to a memory stream&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;MemoryStream memoryStream = new MemoryStream();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, System.Text.Encoding.UTF8);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//FIX: Add the processing instructions to the top of the xml document this is &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;          &lt;/span&gt;//because they are lost in the serialisation\deserialisation process&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;xmlTextWriter.WriteProcessingInstruction("mso-infoPathSolution", &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;ConfigurationManager.AppSettings.Get("InfoPathPI_mso-infoPathSolution"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;         &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;xmlTextWriter.WriteProcessingInstruction("mso-application", &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;ConfigurationManager.AppSettings.Get("InfoPathPI_mso-application"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;xmlTextWriter.WriteProcessingInstruction("mso-infoPath-file-attachment-present", &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;             &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;   &lt;/span&gt;ConfigurationManager.AppSettings.Get("InfoPathPI_mso-infoPath-file-attachment-present"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Serialise the xml flush the writer and get the byte array _supportEmail the stream&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;XmlSerializer serializer = new XmlSerializer(typeof(procurementRequest));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;serializer.Serialize(xmlTextWriter, _pRequest);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;xmlTextWriter.Flush();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;Byte[] byteBuffer = memoryStream.ToArray();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//FIX: Sometimes sharepoint locks the infopath document even though it has been submitted &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//in the config file are two appSettings values: RetrySaveInterval &amp;amp; TimesToRetrySave &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//which are the retry parameters in case this occurs&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;int timesToRetrySave = Convert.ToInt32(ConfigurationManager.AppSettings.Get("TimesToRetrySave"));&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;//Convert seconds to milli seconds&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;int retrySaveInterval = Convert.ToInt32(ConfigurationManager.AppSettings.Get("RetrySaveInterval")) * 1000;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;for (int i = 0; i &amp;lt; timesToRetrySave; i++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;//Get hold of the active site and infopath file&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;SPWeb activeSite = new SPSite(_pse.SharePointSiteUrl).OpenWeb();&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;SPFile spFile = activeSite.GetFile(_pse.SharePointFileUrl);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;//Overwrite the infopath xml back&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;spFile.SaveBinary(byteBuffer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;o:p&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;catch (Microsoft.SharePoint.SPException ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;//If we've run out of retries then write an error to the event log&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;if (i &amp;gt;= timesToRetrySave - 1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                        &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(), ex.ToString(), System.Diagnostics.EventLogEntryType.Error);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                        &lt;/span&gt;//Wait for the retry interval&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                        &lt;/span&gt;System.Threading.Thread.Sleep(retrySaveInterval);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;catch (Exception ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;System.Diagnostics.EventLog.WriteEntry(this.ToString(), ex.ToString(), System.Diagnostics.EventLogEntryType.Error);&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                    &lt;/span&gt;break;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;                &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;            &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: normal"&gt;&lt;span lang="EN-NZ" style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"&gt;&lt;font color="#0000ff"&gt;&lt;span style="mso-spacerun: yes"&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h3 style="MARGIN: 18pt 0cm auto; TEXT-INDENT: 0cm; mso-list: none"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" color="#008000" size="2"&gt;Extras&lt;/font&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;ol type="1"&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l1 level1 lfo5; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;a href="http://wf.netfx3.com/files/folders/rules_samples/entry309.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Used the External RuleSet Demo&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; to make decisions based on attributes in InfoPath doc instance like BusinessUnit, TotalCost on which manager should receive an email to approve\reject a procurement (I was surprised how easy it was to fit this in).&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l1 level1 lfo5; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;InfoPath form access security: I made active directory lookups on email addresses got user logons and updated them in the InfoPath doc which allowed me in InfoPath to ensure only authorised managers/systems administrator’s had access to update approval information in controls on the InfoPath form.&lt;/font&gt;&lt;/span&gt; &lt;/li&gt;
    &lt;li class="MsoNormal" style="MARGIN: auto 0cm; mso-list: l1 level1 lfo5; tab-stops: list 36.0pt"&gt;&lt;span lang="EN-NZ"&gt;&lt;font face="Tahoma" size="2"&gt;For debugging I found this invaluable &lt;/font&gt;&lt;a href="http://dotnet.org.za/mailowl/archive/2006/02/27/50542.aspx"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;span style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none"&gt;&lt;font face="Tahoma" color="#000000" size="2"&gt;Windows WorkFlow Tracing&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84083"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=84083" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/synBoogaloo/aggbug/84083.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Rob Addis</dc:creator>
            <guid>http://geekswithblogs.net/synBoogaloo/archive/2006/07/05/84083.aspx</guid>
            <pubDate>Wed, 05 Jul 2006 05:22:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/synBoogaloo/comments/84083.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/synBoogaloo/archive/2006/07/05/84083.aspx#feedback</comments>
            <slash:comments>11</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/synBoogaloo/comments/commentRss/84083.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/synBoogaloo/services/trackbacks/84083.aspx</trackback:ping>
        </item>
    </channel>
</rss>