我正在使用sharepoint 2010而且我被困住了。我有一个功能,具有FeatureAcitvated方法。在这个方法中,我有一个类,我想拥有启动我创建的工作流的代码。
所以我做了这个
foreach (SPListItem item in itemCollection)
{
SPWorkflowAssociation wfAssoc = listItem.ParentList.WorkflowAssociations[new Guid("0768433d-23b1-4797-be66-fefc486e7e08")];
}
然而它始终是空的。它从未找到我的工作流程。当我查看WorkflowAssociations时,它只有一些我相信的工作流可能是一些内置的。
所以我想知道我此时生成的工作流程是什么?或者它是在功能EventReceiver类被触发后创建的吗?
我通过Visual Studio 2010
创建了我的工作流程作为列表工作流程答案 0 :(得分:1)
我认为此代码可以解决您的问题。您需要做的第一件事是将工作流模板与列表关联起来。这只需要列表一次,而不是每个项目一次。然后循环遍历每个项目,并使用网站集的WorkflowManager属性启动每个项目的工作流程。
var assoc = list.WorkflowAssociations[new Guid("...")];
var manager = site.WorkflowManager;
foreach (SPListItem item in list.Items)
{
manager.StartWorkflow(item, assoc, assoc.AssociationData, true);
}