SharePoint 2010如何通过编程启动工作流出现错误

4
我是一名有用的助手,可以翻译文本。

我有一个与内容类型相关联的工作流。我试图从同一内容类型的事件接收器中的代码启动它,因此当项目更新时,如果存在某些条件(状态=准备好审核),我会启动它。

//这行代码确实找到了工作流关联

var assoc = properties.Web.ContentTypes["Experiment Document Set"]
         .WorkflowAssociations.GetAssociationByName("Experiment Review Workflow",
          ultureInfo.CurrentUICulture);

//我曾试图使用从网上找到的这行代码,但它会返回null

assoc = properties.Web.WorkflowAssociations
     .GetAssociationByName("Experiment Review Workflow",
      CultureInfo.CurrentUICulture);

下一行代码出现错误:


var result = properties.Web.Site.WorkflowManager
                       .StartWorkflow(properties.ListItem, assoc,string.Empty,
                                      SPWorkflowRunOptions.Synchronous);

System.ArgumentException: 工作流无法启动,因为工作流与列表中不存在的内容类型相关联。在重新启动工作流之前,必须将内容类型添加到列表中。 要检查这一点,我查看了正在更新的列表项的内容类型,它是正确的。
properties.ListItem.ContentType.Name    "Experiment Document Set"

基本上,我有一个与内容类型“实验文档集”相关联的工作流。当我尝试从“实验文档集”的事件接收器中启动工作流时,我会收到一个错误,称内容类型“实验文档集”不存在于列表中,这是没有意义的。
2个回答

0

请确保 assoc.Enabled = true。


-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接