<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>Windows WorkFlow Foundation</title>
        <link>http://geekswithblogs.net/synBoogaloo/category/5008.aspx</link>
        <description>Windows WorkFlow Foundation</description>
        <language>en-US</language>
        <copyright>Rob Addis</copyright>
        <managingEditor>robsmessages@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Goodbye Synergy hello London</title>
            <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 08: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>
            <slash:comments>2</slash: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>Windows Workflow Foundation, InfoPath and SharePoint Portal Server 2003</title>
            <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 12: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>19</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>