SharePoint计时器作业添加列表项,但不会触发关联的工作流

时间:2013-07-23 12:27:26

标签: workflow sharepoint-timer-job

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

1 个答案:

答案 0 :(得分:0)

使用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,associationSPWorkflowAssociation的实例,它将列表与实际工作流相关联,isAutoStartboolean变量告诉工作流管理器工作流触发器是否应该像自动启动的那样(在您的情况下为true)。