【发布时间】:2013-07-23 20:36:06
【问题描述】:
我有一个名为“会话”的列表,该列表有一个工作流,用于创建、修改项目。当我使用 Web 部件以及手动添加项目时,工作流会触发。我开发了一个每天运行的计时器作业,它将项目添加到“会话”列表中。 当计时器作业将项目添加到列表中时,工作流不会触发。
【问题讨论】:
标签: workflow sharepoint-timer-job
我有一个名为“会话”的列表,该列表有一个工作流,用于创建、修改项目。当我使用 Web 部件以及手动添加项目时,工作流会触发。我开发了一个每天运行的计时器作业,它将项目添加到“会话”列表中。 当计时器作业将项目添加到列表中时,工作流不会触发。
【问题讨论】:
标签: workflow sharepoint-timer-job
使用 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)。
【讨论】: