【问题标题】:SharePoint timer job add list items, but does not trigger the associated workflowSharePoint 计时器作业添加列表项,但不触发关联的工作流
【发布时间】:2013-07-23 20:36:06
【问题描述】:

我有一个名为“会话”的列表,该列表有一个工作流,用于创建、修改项目。当我使用 Web 部件以及手动添加项目时,工作流会触发。我开发了一个每天运行的计时器作业,它将项目添加到“会话”列表中。 当计时器作业将项目添加到列表中时,工作流不会触发。

【问题讨论】:

    标签: workflow sharepoint-timer-job


    【解决方案1】:

    使用 API 创建或编辑列表项不会触发工作流。您必须使用SPWorkflowManager 类自己触发它。 SPSite 的每个实例都具有该类型的属性,这是您应该使用的。

    你可以这样编码:

    SPSite site = foo; // Actually get your instance of SPSite by whatever is
                       // your favorite way to do so.
    
    site.WorkflowManager.StartWorkflow(
            item,
            association,
            association.AssociationData,
            isAutoStart);
    

    其中item 是您创建/编辑的SPListItem,association 是将列表与实际工作流相关联的SPWorkflowAssociation 的实例,isAutoStart 是告诉工作流管理器的boolean 变量工作流触发器是否应该表现为自动启动的东西(在您的情况下,true)。

    【讨论】:

    • 您是否有声明的来源,使用 API 创建或编辑列表项不会触发工作流?我看过其他帖子说他们需要,但需要 site.WorkflowManager.Dispose()。
    • 经验证据。自己试试吧。
    • 谢谢。我想你的意思是support.microsoft.com/kb/947284blogs.technet.com/b/victorbutuza/archive/2009/03/14/…你是对的,其他人错了。 :-)
    • 我主要使用 SharePoint Online,您无权访问这些设置。我说的主要是经验,但很高兴知道通过内部安装工作流程可以正常触发,而无需额外编码。谢谢你:)
    猜你喜欢
    • 2011-03-06
    • 2013-09-17
    • 2010-09-13
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多