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

<channel>
	<title>CleverWorkarounds &#187; Forms Services</title>
	<atom:link href="http://www.cleverworkarounds.com/category/forms-services/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cleverworkarounds.com</link>
	<description>After much frustration, it seems DEFAULT is the way to go...</description>
	<lastBuildDate>Mon, 16 Aug 2010 22:56:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SPD workflows: &#8220;ERROR: request not found in the TrackedRequests&#8221;</title>
		<link>http://www.cleverworkarounds.com/2009/06/28/spd-workflows-error-request-not-found-in-the-trackedrequests/</link>
		<comments>http://www.cleverworkarounds.com/2009/06/28/spd-workflows-error-request-not-found-in-the-trackedrequests/#comments</comments>
		<pubDate>Sun, 28 Jun 2009 08:08:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[SPD]]></category>
		<category><![CDATA[SharePoint Designer]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Workflows]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/?p=1440</guid>
		<description><![CDATA[I’ve written this post to document a dumbass thing that I did and the error that it caused. Hopefully it might help someone googling in desperation sometime… The popularity of the “Tribute to the humble leave form” series over at SharePoint Magazine, has meant that we actually get a few gigs implementing &#8211; surprise, surprise [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript"><!--
google_ad_client = "pub-6551570212921028";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>I’ve written this post to document a dumbass thing that I did and the error that it caused. Hopefully it might help someone googling in desperation sometime…</p>
<p>The popularity of the “<a href="http://sharepointmagazine.net/technical/development/a-tribute-to-the-humble-leave-form" target="_blank">Tribute to the humble leave form</a>” series over at <a href="http://sharepointmagazine.net" target="_blank">SharePoint Magazine</a>, has meant that we actually get a few gigs implementing &#8211; surprise, surprise &#8211; InfoPath leave forms with SharePoint Designer workflows! This was actually quite unexpected, as I wrote that series as a joke and for end-user training purposes.</p>
<p>Now, I fully realise that many people don’t like tools like SharePoint Designer in the hands of mere mortals, but I personally think it is a terrific means to encourage buy-in and user evangelism and I encourage its sustainable use. Although “real developers” may disagree with me here, SPD workflows enable quick results without the embarrassing aftermath of premature code compilation (which always leads to frustration, right girls? <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' />  ).</p>
<p>Anyhow enough sexual innuendo – here is my error with my lessons learned</p>
<h2>The symptoms</h2>
<p>Recently, a happily running leave form workflow ground to a halt with an error as shown below. What the screenshot below shows is that the workflow died right after a “Pause for duration” workflow action. (Note the “pausing for 2 minutes” line, just before the actual workflow error).</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image3.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image-thumb3.png" width="595" height="282" /></a></p>
<p>Now, the interesting thing here is that the pause action never happened. The workflow bombed out straight away and there was no pause at all. Yet, the fact that the pause action logged to the history list meant that it attempted to do so. It seemed that the pause action ran for long enough to log that it was about to pause, but died when actually trying to.</p>
<p>The pause action occurred in step 2 of my workflow, but it is worthwhile showing you the first workflow step first.</p>
<p>Below is a screenshot of step 1 of the workflow. This first step is called “Modify Item Permissions” and we are using the <a href="http://www.codeplex.com/SPDActivities" target="_blank">codeplex custom workflow actions</a> to modify permissions of the submitted leave form, ensuring that only the requestor of the leave (and their boss) can see or modify the form.</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image-thumb4.png" width="548" height="231" /></a></p>
<p>The step in the workflow, called “Manager Approval”, shows where we pause for 2 minutes. The reason we pause is to get around another workflow error that I will explain at the end of the post. After the pause action was completed and the workflow recommenced, it performed a “Collect data from user” task as shown below. This created a task for the requestors manager to approve the leave request.</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image6.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image-thumb5.png" width="550" height="202" /></a></p>
<p>We know that the “Collect data from user” action never ran, because the “Employee Leave Approval” task never actually got created in the task list. Thus, we know the error occurred at the pause action. Or, did it?</p>
<p>This error occurred consistently whether the workflow was manually started or auto-triggered. Checked all the usual suspects &#8211; timber jobs ok, permissions unchanged and working well, etc. Scanning the ULS logs at this time showed an interesting error with a much less interesting stack trace (that I have pasted at the end of the post for readability).</p>
<p><strong>“Unexpected&#160;&#160;&#160; ERROR: request not found in the TrackedRequests. We might be creating and closing webs on different threads” </strong></p>
<p>Hmm, what is TrackedRequests and why is a request not found? Googling that error message wasn’t much help at all. Although it is quite common, nothing matched my particular context. But then I received a lucky break. When I <strong>cancelled</strong> the running workflow that was in this error state, I received a <strong>new</strong> error that made it quite easy to work out what was going on.</p>
<p><strong>WinWF Internal Error, terminating workflow Id# 02334a17-3211-4d30-902f-bf34e20354c6&#160;&#160;&#160;&#160; <br />Unexpected&#160;&#160;&#160; System.Workflow.Runtime.Hosting.PersistenceException: Object reference not set to an instance of an object. &#8212;&gt; System.NullReferenceException: Object reference not set to an instance of an object.&#160;&#160;&#160;&#160; at DP.Sharepoint.Workflow.Common.RemoveListItemPermissionEntry(SPListItem item, String principalName, Boolean breakRoleInheritance)&#160;&#160;&#160;&#160; </strong></p>
<p>It was this error that gave it away. For a start, the method being called was <strong>DP.Sharepoint.Workflow.Common.RemoveListItemPermissionEntry</strong> and the exception was a <strong>null reference</strong>. RemoveListItemPermissionEntry sounded suspiciously like the permission based workflow actions of the “Modify Item Permissions” step as highlighted below.</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image7.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2009/06/image-thumb6.png" width="562" height="241" /></a></p>
<p>But wait… the workflow never failed at this line at all. It actually failed at the first action of the next step (“Manager Approval”)&#160; with the “request not found in the TrackedRequests” error. Interesting, eh?</p>
<p>Let’s put aside the issue of what step and what action the workflow failed on for a moment, and examine the second error message more closely. If you examine the “Modify Item Permissions” action highlighted above, can you think of any reason that I would get a null reference exception?</p>
<p>Ah! What happens if the previous action called “Set Variable”, set a <strong>blank or null value</strong>? I suspect that the “Grant permissions on an item” workflow action will attempt to change permissions of the item to a blank or null user. The result? That workflow action will die with a null reference exception &#8211; precisely what the error states.</p>
<p>When I checked the source of the variable “LineManagerAccount”, it was looking up a contact list for the manager of the requestor. Sure enough, it did turn out that that column was blank for some users. Thus, a simple exercise in input validation combined with a small correction to that list item and the problem was solved.</p>
<h2>Further questions and further information</h2>
<p>I could stop this post there I suppose and perhaps someone, sometime might find this post and think “Wohoo!”. But this problem raised a couple of issues, as well as made it clear to me that I had been stupid in how I designed this one. Let’s tackle them one by one.</p>
<h3>1. When did it die again?</h3>
<p>Clearly the error that caused all of this, occurred at the last action of the “Modify Item Permissions” step. We know this because the step before was where the lookup to the contact list happened, and this is where the null value came from that caused the exception. But then why did the workflow not stop at this point? Why did it continue onward and attempt to move to the “Manager Approval” steps and die on the “Pause for duration” action?</p>
<p>Whether this is default behaviour of SPD workflows or a logic fault in the exception handling code in the codeplex-based “Grant Permission on an Item” action, this makes life hard to troubleshoot because the error message never made sense. I only found out the true root cause when I terminated the workflow manually and got lucky because the offending exception suddenly appeared.</p>
<p>So, the conclusion to draw? If your SPD workflow dies with “ERROR: request not found in the TrackedRequests” in the logs, it may be that the real cause of the problem <strong>is a previous workflow step </strong>and not the step where the workflow actually stopped.</p>
<h3>2. Paul is a dumbass</h3>
<p>Okay, so let’s talk about lessons learnt. Some people reading this may wonder why I never used Active Directory or the user profile store to store manager details for a user and to do the lookup from there. The answer is that this contact list approach simply made sense for this client and this is actually not the dumb thing that I did. The dumb thing that I did was to forget that all of the necessary business logic and data validation steps could have been performed in the InfoPath form itself.</p>
<p>Remember that InfoPath forms can have data connections to all sorts of sources such as SharePoint lists, web services and relational databases. (I am not going into detail on how to do that here because I have already covered it in quite a lot in <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5" target="_blank">part 5</a> of the “<a href="http://sharepointmagazine.net/technical/development/a-tribute-to-the-humble-leave-form" target="_blank">Leave Form Tribute</a>” series). We can have a published InfoPath form connect to any SharePoint list or library across the entire farm to look up business logic details, such as an approver. This is something that SharePoint Designer workflows cannot do out of the box – it can only lookup from the site where the workflow has been created.</p>
<p>But, more important than that, we can easily use InfoPath rules and data validation functionality to ensure that the values are not null before submitting.</p>
<p>What this all means is that your SPD workflows end up being simpler and easier to maintain because InfoPath is providing all of the data to the workflow as well as the validation of the data. Therefore, the workflow now doesn’t have to do the lookup work and have unnecessary steps and actions.</p>
<p>For these reasons I think that, if you can, grab all of the data you need for a business process using the InfoPath form using hidden fields. Then publish the form and ensure these hidden fields are published as site columns.</p>
<p>For this particular purpose, I think that InfoPath is a lesser evil than SharePoint Designer workflows.</p>
<h3>3. What are the pause actions there for anyway?</h3>
<p>Finally, I promised I’d explain why I had a pause action in the workflow. This is to get around a race condition with workflows that produces an intermittent error message:</p>
<p>“This task is currently locked by a running workflow and cannot be edited”</p>
<p>I’ve seen this occur in several situations and it pretty much boils down to some workflow actions being synchronous and subsequent actions starting before the previous action properly completed. Consider this example.</p>
<p>One workflow creates or updates an item in a list, say a task list. But the task list also has a workflow attached to it. This means that the first workflow creates the task item and then moves onto the next step. Meanwhile, a new workflow has been triggered for that new task list item. This secondary workflow refers to information stored in the main item which causes the race condition.&#160; If the information in the main item is not committed before this workflow attempts to use it, you’ll get null values when the main item is a new item.&#160; When working with SPD workflows, these null values will show up as ????.&#160; </p>
<p>To resolve the race condition, I had to ensure that the main item was committed before the secondary workflow was started by pausing the workflow.&#160; Why does pausing the workflow cause the changes to be committed?&#160; According to the MSDN article “How Windows SharePoint Services Processes Workflow Activities” <a href="http://msdn.microsoft.com/en-us/library/ms442249.aspx">http://msdn.microsoft.com/en-us/library/ms442249.aspx</a></p>
<blockquote><p>Windows SharePoint Services runs the workflow until it reaches a point where it cannot proceed because it is waiting for some event to occur: for example, a user must designate a task as completed. Only at this &quot;commit point&quot; does Windows SharePoint Services commit the changes made in the previous Windows SharePoint Services-specific workflow activities…</p>
</blockquote>
<p>The not-so-clever workaround is to pause the workflow in between actions. When you add a pause, the workflow “cannot proceed because it is waiting for some event to occur” and therefore makes it a commit point. Not pretty – but works.</p>
<p>I hope that you find this article of use in your SharePoint Designer workflow troubleshooting endeavours. Below, I have pasted the complete stack traces (for the search engines).</p>
<p>Thanks for reading</p>
<p>Paul Culmsee</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-6551570212921028";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel = "";
google_ui_features = "rc:6";
//-->
</script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<div class="csharpcode"></div>
<div class="csharpcode">
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46 w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected ERROR: request not found in the TrackedRequests. We might be creating and closing webs on different threads. ThreadId = 1, Free call stack = at Microsoft.SharePoint.SPRequestManager.Release(SPRequest request) at Microsoft.SharePoint.SPWeb.Invalidate() at Microsoft.SharePoint.SPWeb.Close() at Microsoft.SharePoint.SPSite.Close() at Microsoft.SharePoint.SPSite.Dispose() at Microsoft.SharePoint.Workflow.SPWorkflowManager.<span class="kwrd">&lt;&gt;</span>c__DisplayClass1.<span class="kwrd">&lt;</span><span class="html">StartWorkflow</span><span class="kwrd">&gt;</span>b__0() at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) at Microsoft.SharePoint.SPSecurity.<span class="kwrd">&lt;&gt;</span>c__DisplayClass4.<span class="kwrd">&lt;</span><span class="html">RunWithElevatedPrivileges</span><span class="kwrd">&gt;</span>b__2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithEl&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;evatedPrivileges(WaitCallback secureCode, Object param) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) at Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(SPListItem item, SPWorkflowAssociation association, SPWorkflowEvent startEvent, Boolean bAutoStart, Boolean bCreateOnly) at Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(SPListItem item, SPWorkflowAssociation association, String eventData, Boolean isAutoStart) at Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(SPListItem item, SPWorkflowAssociation association, String eventData) at Microsoft.SharePoint.WebControls.SPWorkflowDataSourceView.Insert(IDictionary values) at Microsoft.SharePoint.WebControls.SPWorkflowDataSourceView.Ins&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;ert(IDictionary values, DataSourceViewOperationCallback callback) at Microsoft.SharePoint.WebPartPages.DataFormWebPart.FlatCommit() at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PerformCommit() at Microsoft.SharePoint.WebPartPages.DataFormWebPart.HandleOnSave(Object sender, EventArgs e) at Microsoft.SharePoint.WebPartPages.DataFormWebPart.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includ&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;eStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error) at System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr) at Sys&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;tem.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType) , Allocation call stack (if present) at Microsoft.SharePoint.Library.SPRequest..ctor() at Microsoft.SharePoint.SPGlobal.CreateSPRequestAndSetIdentity(Boolean bNotGlobalAdminCode, String strUrl, Boolean bNotAddToContext, Byte[] UserToken, String userName, Boolean bIgnoreTokenTimeout, Boolean bAsAnonymous) at Microsoft.SharePoint.SPWeb.InitializeSPRequest() at Microsoft.SharePoint.SPWeb.EnsureSPRequest() at Microsoft.SharePoint.SPWeb.get_Request() at Microsoft.SharePoint.SPWeb.InitWebPublic() at Microsoft.SharePoint.SPWeb.get_ServerRelativeUrl() at Microsoft.SharePoint.SPWeb.get_Url() at Microsoft.SharePoint.SPUser.InitMember() at Microsoft.SharePoint.SPUser..ctor(SPWeb web, ISecura&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;bleObject scope, String strIdentifier, Object[,] arrUsersData, UInt32 index, Int32 iByParamId, String strByParamSID, String strByParamEmail, SPUserCollectionType userCollectionType, Boolean isSiteAuditor) at Microsoft.SharePoint.SPUser..ctor(SPWeb web, ISecurableObject scope, String strIdentifier, Object[,] arrUsersData, UInt32 index, Int32 iByParamId, String strByParamSID, String strByParamEmail, SPUserCollectionType userCollectionType) at Microsoft.SharePoint.SPUserCollection.GetByIDNoThrow(Int32 id) at Microsoft.SharePoint.SPSite.get_SystemAccount() at Microsoft.SharePoint.WorkflowActions.Helper.ResolveUserField(WorkflowContext context, Object fvalue) at Microsoft.SharePoint.WorkflowActions.Helper.LookupUser(WorkflowContext context, Guid listId, Int32 listItem, Strin&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;g fieldName) at Microsoft.SharePoint.WorkflowActions.Helper.LookupUser(WorkflowContext context, String listIdOrName, Int32 listItem, String fieldName) at Microsoft.SharePoint.WorkflowActions.LookupActivity.Execute(ActivityExecutionContext provider) at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext) at System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime) at System.Workflow.Runtime.Scheduler.Run() at System.Workflow.Runtime.WorkflowExecutor.RunScheduler() at System.Workflow.Runtime.WorkflowExecutor.RunSome(Object ignored) &#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.WorkItem.Invoke(WorkflowSchedulerService service) at System.Workflow.Runtime.Hosting.DefaultWorkflowSchedulerService.QueueWorkerProcess(Object state) at System.Threading._ThreadPoolWaitCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading._ThreadPoolW&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:25:20.46* w3wp.exe (0x0BA8) 0x16F8 Windows SharePoint Services General 0 Unexpected &#8230;aitCallback.PerformWaitCallbackInternal(_ThreadPoolWaitCallback tpWaitCallBack) at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(Object state) </span></p>
<p><span style="font-size: xx-small">&#160; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:27:16.49 w3wp.exe (0x0BA8) 0x1CB4 Windows SharePoint Services Workflow Infrastructure 88xr Unexpected WinWF Internal Error, terminating workflow Id# 02334a17-3211-4d30-902f-bf34e20354c6 </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:27:16.49 w3wp.exe (0x0BA8) 0x1CB4 Windows SharePoint Services Workflow Infrastructure 98d4 Unexpected System.Workflow.Runtime.Hosting.PersistenceException: Object reference not set to an instance of an object. &#8212;<span class="kwrd">&gt;</span> System.NullReferenceException: Object reference not set to an instance of an object. at DP.Sharepoint.Workflow.Common.RemoveListItemPermissionEntry(SPListItem item, String principalName, Boolean breakRoleInheritance) at DP.Sharepoint.Workflow.PermissionsService.<span class="kwrd">&lt;&gt;</span>c__DisplayClass1.<span class="kwrd">&lt;</span><span class="html">ProcessGrantRequest</span><span class="kwrd">&gt;</span>b__0() at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state) at Microsoft.SharePoint.SPSecurity.<span class="kwrd">&lt;&gt;</span>c__DisplayClass4.<span class="kwrd">&lt;</span><span class="html">RunWithElevatedPrivileges</span><span class="kwrd">&gt;</span>b__2() at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:27:16.49* w3wp.exe (0x0BA8) 0x1CB4 Windows SharePoint Services Workflow Infrastructure 98d4 Unexpected &#8230; at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode) at DP.Sharepoint.Workflow.PermissionsService.ProcessGrantRequest(PermissionRequest pr) at DP.Sharepoint.Workflow.PermissionsService.Commit(Transaction transaction, ICollection items) at System.Workflow.Runtime.WorkBatch.PendingWorkCollection.Commit(Transaction transaction) at System.Workflow.Runtime.WorkBatch.Commit(Transaction transaction) at System.Workflow.Runtime.VolatileResourceManager.Commit() at System.Workflow.Runtime.WorkflowExecutor.DoResourceManagerCommit() at System.Workflow.Runtime.Hosting.WorkflowCommitWorkBatchService.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) at System.Workflow.Runtime.Hosting.DefaultWorkflowCommitWorkBatchSer&#8230; </span></p>
<p><span style="font-size: xx-small">06/25/2009 12:27:16.49* w3wp.exe (0x0BA8) 0x1CB4 Windows SharePoint Services Workflow Infrastructure 98d4 Unexpected &#8230;vice.CommitWorkBatch(CommitWorkBatchCallback commitWorkBatchCallback) at System.Workflow.Runtime.WorkflowExecutor.CommitTransaction(Activity activityContext) at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation) &#8212; End of inner exception stack trace &#8212; at System.Workflow.Runtime.WorkflowExecutor.Persist(Activity dynamicActivity, Boolean unlock, Boolean needsCompensation) at System.Workflow.Runtime.WorkflowExecutor.ProtectedPersist(Boolean unlock) </span></p>
</p></div>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2009/06/28/spd-workflows-error-request-not-found-in-the-trackedrequests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why InfoPath rocks</title>
		<link>http://www.cleverworkarounds.com/2009/03/05/why-infopath-rocks/</link>
		<comments>http://www.cleverworkarounds.com/2009/03/05/why-infopath-rocks/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:31:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Offbeat]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2009/03/05/why-infopath-rocks/</guid>
		<description><![CDATA[At the San Diego Best Practices SharePoint conference, I sat quietly and listened to the governance godfather himself, Robert Bogue, discussing with the other SharePoint &#34;big kids&#34; various reasons why InfoPath sucks in many situations and some of its current design faults. I mean, anybody who has used forms services knows what a pain redeployment [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p><!--adsense-->
<p>At the San Diego Best Practices SharePoint conference, I sat quietly and listened to the governance godfather himself, <a href="http://www.thorprojects.com/blog/default.aspx" target="_blank">Robert Bogue</a>, discussing with the other SharePoint &quot;big kids&quot; various reasons why InfoPath sucks in many situations and some of its current design faults. I mean, anybody who has used forms services knows what a pain redeployment is, how much of a pain managed code is, the horrible performance of web services, branding crap and the like. Thus, all were perfectly valid points.</p>
<p>But irrespective of how correct those points are, I&#8217;d like to <strong>categorically state why </strong>InfoPath 2007 and Forms Services are the <strong>best</strong> pieces of technology that Microsoft has ever invented.</p>
<p>The simple reason is this. </p>
<p><u>My wife likes it!</u></p>
<p>To fully explain the implications of why InfoPath rocks, I have created an <a href="http://www.cleverworkarounds.com/2009/03/04/the-one-best-practice-to-rule-them-all-part-4/" target="_blank">IBIS issue map</a> that makes the argumentation quite clear.</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2009/03/image13.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2009/03/image-thumb13.png" width="978" border="0" /></a> </p>
<p>I rest my case.</p>
<p>&#160;</p>
<p>Thanks for reading</p>
<p>Paul Culmsee</p>
<p><a href="http://www.sevensigma.com.au">www.sevensigma.com.au</a></p>
</p>
<p> <!--adsense--></p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2009/03/05/why-infopath-rocks/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Leave form article 6 up at SharePointMagazine.net</title>
		<link>http://www.cleverworkarounds.com/2008/11/30/leave-form-article-6-up-at-sharepointmagazinenet/</link>
		<comments>http://www.cleverworkarounds.com/2008/11/30/leave-form-article-6-up-at-sharepointmagazinenet/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 23:09:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2008/11/30/leave-form-article-6-up-at-sharepointmagazinenet/</guid>
		<description><![CDATA[Due to a sudden burst of motivation (that has since evaporated , I finished off part 6 and part 7 of the InfoPath &#34;leave form tribute&#34; series. Arno has just posted part 6 which you can read here: http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6 Looking for part 7? Ask Arno nicely as I&#8217;m not sure when he plans to publish [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p>Due to a sudden burst of motivation (that has since evaporated <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , I finished off part 6 and part 7 of the InfoPath &quot;leave form tribute&quot; series. Arno has just posted part 6 which you can read here:</p>
<p><a title="http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6" href="http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6">http://sharepointmagazine.net/technical/a-tribute-to-the-humble-leave-form-part-6</a></p>
<p>Looking for part 7? Ask Arno nicely as I&#8217;m not sure when he plans to publish that one <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2008/11/30/leave-form-article-6-up-at-sharepointmagazinenet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A tribute to the humble leave form part 5</title>
		<link>http://www.cleverworkarounds.com/2008/10/04/a-tribute-to-the-humble-leave-form-part-5/</link>
		<comments>http://www.cleverworkarounds.com/2008/10/04/a-tribute-to-the-humble-leave-form-part-5/#comments</comments>
		<pubDate>Sat, 04 Oct 2008 01:03:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[Offbeat]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2008/10/04/a-tribute-to-the-humble-leave-form-part-5/</guid>
		<description><![CDATA[Arno over at Sharepoint Magazine has published part 5 of my &#34;Leave Form Tribute&#34; series of articles. This latest article is a bit of a graduation from the first four, that were pitched squarely at new users. In part 5 we are now getting into the more advanced stuff &#8211; like attempting to explain web [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p><!--adsense-->
<p>Arno over at <a href="http://sharepointmagazine.net" target="_blank">Sharepoint Magazine</a> has published <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5" target="_blank">part 5</a> of my &quot;<a href="http://sharepointmagazine.net/author/cleverworkarounds" target="_blank">Leave Form Tribute</a>&quot; series of articles. This latest article is a bit of a graduation from the first four, that were pitched squarely at new users. In part 5 we are now getting into the more advanced stuff &#8211; like attempting to explain web services to the masses <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  I have found this to be a very challenging article to write.</p>
<p> <a href="http://sharepointmagazine.net/technical/a-humble-tribute-to-the-leave-form-part-5" target="_blank">Read it now!</a>
</p>
<p> <!--adsense--></p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2008/10/04/a-tribute-to-the-humble-leave-form-part-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Part 4 in the &quot;Leave Form Tribute&#8230;&quot; series posted</title>
		<link>http://www.cleverworkarounds.com/2008/09/13/part-4-in-the-leave-form-tribute-series-posted/</link>
		<comments>http://www.cleverworkarounds.com/2008/09/13/part-4-in-the-leave-form-tribute-series-posted/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 02:42:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[Training]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2008/09/13/part-4-in-the-leave-form-tribute-series-posted/</guid>
		<description><![CDATA[Hi all Arno over at SharePoint Magazine has published part 4 of my &#34;Tribute to the humble leave form&#34; series. This series is aimed at beginners and those starting out in SharePoint. This particular post covers publishing to forms services for the first time. cheers Paul p.s Want a new certification? Try the CCLFD No [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p>Hi all</p>
<p>Arno over at <a href="http://sharepointmagazine.net" target="_blank">SharePoint Magazine</a> has published <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-4" target="_blank">part 4</a> of my &quot;<a href="http://sharepointmagazine.net/author/cleverworkarounds" target="_blank">Tribute to the humble leave form</a>&quot; series. This series is aimed at beginners and those starting out in SharePoint. This particular post covers publishing to forms services for the first time. </p>
<p>cheers</p>
<p>Paul</p>
<p>p.s Want a new certification? Try the <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-4" target="_blank">CCLFD</a> <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2008/09/13/part-4-in-the-leave-form-tribute-series-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Latest article on SharePoint Magazine posted&#8230;</title>
		<link>http://www.cleverworkarounds.com/2008/07/31/latest-article-on-sharepoint-magazine-posted/</link>
		<comments>http://www.cleverworkarounds.com/2008/07/31/latest-article-on-sharepoint-magazine-posted/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 12:53:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[Offbeat]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2008/07/31/latest-article-on-sharepoint-magazine-posted/</guid>
		<description><![CDATA[The second article in the tribute to the humble leave form series has just been posted at SharePoint Magazine. I eagerly await the &#34;cease and desist&#34; letter Matt Groenings legal team Enjoy! No Tags<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p><!--adsense-->
<p>The second article in the tribute to the humble leave form series has just been posted at <a href="http://sharepointmagazine.net/technical/customisation/a-tribute-to-the-humble-leave-form-part-2" target="_blank">SharePoint Magazine</a>.</p>
<p>I eagerly await the &quot;cease and desist&quot; letter Matt Groenings legal team <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Enjoy!</p>
<p><a href="http://www.cleverworkarounds.com/wp-content/uploads/2008/07/image14.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="194" alt="image" src="http://www.cleverworkarounds.com/wp-content/uploads/2008/07/image-thumb14.png" width="244" border="0" /></a> </p>
<p> <!--adsense--></p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2008/07/31/latest-article-on-sharepoint-magazine-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lots of writing (just not here)</title>
		<link>http://www.cleverworkarounds.com/2008/07/18/lots-of-writing-just-not-here/</link>
		<comments>http://www.cleverworkarounds.com/2008/07/18/lots-of-writing-just-not-here/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 13:28:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Forms Services]]></category>
		<category><![CDATA[InfoPath]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[planning]]></category>

		<guid isPermaLink="false">http://www.cleverworkarounds.com/2008/07/18/lots-of-writing-just-not-here/</guid>
		<description><![CDATA[Hi all My poor-old cleverworkarounds blog has been sadly neglected lately (and my numbers are reflecting that too dammit). But I have actually been doing a while lot of writing for other SharePoint online publications, namely EndUserSharePoint and SharePoint Magazine. The feedback from both has been great and much appreciated. If you haven&#8217;t read these [...]<p class="tags">No Tags</p>]]></description>
			<content:encoded><![CDATA[<p><!--adsense-->
<p>Hi all</p>
<p>My poor-old cleverworkarounds blog has been sadly neglected lately (and my numbers are reflecting that too dammit). But I have actually been doing a while lot of writing for other SharePoint online publications, namely <a target="_blank" href="http://www.endusersharepoint.com/">EndUserSharePoint</a> and <a target="_blank" href="www.sharepointmagazine.net">SharePoint Magazine</a>.</p>
<p>The feedback from both has been great and much appreciated. If you haven&#8217;t read these articles, then here is your quick reference.</p>
<p>Series 1: Rethinking SharePoint</p>
<p>This is a 4 part series that was a serious attempt to delve into SharePoint headspace. I focused very much on the human/social side of SharePoint projects. I was pretty pleased with how it came out and look forward to the final part being published soon.</p>
<ul>
<li><a target="_blank" href="http://www.endusersharepoint.com/?p=354">Thinking SharePoint &#8211; and listen to your mother!</a></li>
<li><a target="_blank" href="http://www.endusersharepoint.com/?p=447">Thinking SharePoint Part 2 &#8211; The &#8220;unconsciously competent&#8221; Ikea Mecca</a></li>
<li><a target="_blank" href="http://www.endusersharepoint.com/?p=550">Thinking SharePoint Part 3 &#8211; A Tale of Two Clients</a></li>
<li><a target="_blank" href="http://www.endusersharepoint.com/?p=575">Thinking SharePoint Part 4 &#8211; Zen and the art of SharePoint</a></li>
</ul>
<p>Series 2: A tribute to the leave form</p>
<p>This series is an offbeat look at the world of InfoPath Forms Services and SharePoint Designer workflow. Although I am having a bit of fun with this, there is a serious message behind it. While forms services looks terrific in demos, sometimes looks can be deceiving! The trick with this series is that they are also written to cater for a large audience, and that will be quite a challenge when we get into web services and code behind in InfoPath.</p>
<p>I&#8217;ve written 4 articles so far and I&#8217;d say there could easily be a dozen by the time I am done. The feedback has been really good, so here&#8217;s hoping I can deliver the rest!</p>
<ul>
<li><a target="_blank" href="http://sharepointmagazine.net/technical/development/a-tribute-to-the-humble-leave-form">A tribute to the humble &#8220;leave form&#8221; &#8211; Part 1</a></li>
<li>A tribute to the humble &#8220;leave form&#8221; &#8211; Part 2 *not yet released*</li>
<li>A tribute to the humble &#8220;leave form&#8221; &#8211; Part 3 *not yet released*</li>
<li>A tribute to the humble &#8220;leave form&#8221; &#8211; Part 4 *not yet released*</li>
<li>.</li>
<li>.</li>
<li>A tribute to the humble &#8220;leave form&#8221; &#8211; Part n *not yet written* <img src='http://www.cleverworkarounds.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>I have a large list of topics to also get well and truly stuck into, so hopefully I&#8217;ll have some quality stuff for you fairly soon.</p>
<p>Stay tuned</p>
<p>Paul Culmsee</p>
<p><!--adsense--></p>
<p class="tags">No Tags</p>]]></content:encoded>
			<wfw:commentRss>http://www.cleverworkarounds.com/2008/07/18/lots-of-writing-just-not-here/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
