2011-05-04 80 views
1

我正在使用SharePoint 2010,我被卡住了。我有一个FeatureAcitvated方法的功能。在这个方法中,我有一个类,我想要有代码来启动我创建的工作流程。Sharepoint工作流何时创建?

所以我做了这个

foreach (SPListItem item in itemCollection) 
    { 
     SPWorkflowAssociation wfAssoc = listItem.ParentList.WorkflowAssociations[new Guid("0768433d-23b1-4797-be66-fefc486e7e08")]; 
    } 

然而,它始终为空。它从未找到我的工作流程。当我查看WorkflowAssociations时,它只有一个我相信的工作流计数可能是一个内置的工作流。

所以我想知道是我在这个时候生成的工作流程?或者在功能EventReceiver类被触发后创建它?

我通过视觉工作室2010

回答

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); 
}