首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Share Point Foundation 2010 -无法启动工作流

Share Point Foundation 2010 -无法启动工作流
EN

Stack Overflow用户
提问于 2010-06-25 09:51:05
回答 2查看 2.3K关注 0票数 2

我正在使用SharePoint基金会(SharePoint2010)在Visual Studio中开发一个带有ASP.NET工作流启动表单的工作流。

我使用此表单来设置正在启动工作流实例的共享点列表项的一些属性。有时我会在brwoser窗口中收到一条错误消息,类似于:

代码语言:javascript
复制
Error 

Failed%20to%20Start%20Workflow 

Troubleshoot issues with Microsoft SharePoint Foundation. 

Correlation ID: 0b8e0b67-f824-4aa5-8316-424ada134f8d 

Date and Time: 6/25/2010 10:59:17 AM 

Go back to site

这种行为似乎是间歇性的。到底怎么回事?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-25 09:52:57

问题是,SharePoint工作流启动表单在PageLoad上缓存工作流列表项,当您在页面加载和调用HandleStartWorkflow之间对项进行更改(即单击启动工作流按钮)时,SharePoint会发现您正在讨论的项(缓存的项)与Share Point中存在的项(合并了您刚才所做的更改)不同。

重现问题的一般步骤如下:

  1. 启动工作流,以便显示启动表单。
  2. 更改WorkflowProperties.Item
  3. Call WorkflowProperties.Item.Update上的某些属性以将更改保存到SharePoint
  4. Call HandleStartWorkflow.

您将得到错误。

如果有时对工作流项属性的更改是在单独的页面中进行的,则该错误可能看起来是间歇性的,该页面加载到单击了启动工作流按钮的会话中。例如,如果您启动一些表单数据,然后单击Start PostBack按钮,那么一切都会正常工作,因为PostBack会发生,然后页面就会加载。

但是,如果使用ASP TextBox OnTextChanged事件,请更改文本,然后单击“启动工作流”按钮,则会在页面加载旧数据后激发OnChanged事件,将数据更改为新数据,并在从SharePoint重新加载项目数据之前启动工作流。

修复方法很简单:在启动工作流之前重新加载工作流项数据。这将导致缓存的工作流项目与该项目的sharepoint版本相同,并且共享点将是满意的。

在"Workflow Initiation“区域中,更改:

代码语言:javascript
复制
Private Sub StartListWorkflow()

    Dim association As SPWorkflowAssociation = workflowList.WorkflowAssociations.Item(New Guid(associationGuid))
    Web.Site.WorkflowManager.StartWorkflow(workflowListItem, association, GetInitiationData)
    SPUtility.Redirect(workflowList.DefaultViewUrl, SPRedirectFlags.UseSource, System.Web.HttpContext.Current)
End Sub

代码语言:javascript
复制
Private Sub StartListWorkflow()

    'Re-initialize the workflow parameters, particularly the workflowListItem, in case it has been changed since page load.'
     InitializeParams()

    Dim association As SPWorkflowAssociation = workflowList.WorkflowAssociations.Item(New Guid(associationGuid))
    Web.Site.WorkflowManager.StartWorkflow(workflowListItem, association, GetInitiationData)
    SPUtility.Redirect(workflowList.DefaultViewUrl, SPRedirectFlags.UseSource, System.Web.HttpContext.Current)
End Sub

一切都应该重新开始工作。

票数 2
EN

Stack Overflow用户

发布于 2012-09-05 18:59:22

如果您尝试启动已经在项目上运行的工作流(通过自定义初始化表单),您将收到相同的消息。这里的解决方案是检查项目的工作流状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3115061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档