1

SharePoint 2010 を使用していますが、行き詰っています。FeatureActivated メソッドを持つ機能があります。このメソッドには、作成したワークフローを開始するコードが必要なクラスがあります。

だから私はこれをやった

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

それでも、常に null です。私のワークフローが見つかりません。WorkflowAssociations を調べると、おそらく組み込みのワークフローであると思われるワークフローの 1 つのカウントしかありません。

私のワークフローはこの時点で生成されているのでしょうか? それとも、機能 EventReceiver クラスが起動された後に作成されますか?

Visual Studios 2010 を使用してワークフローをリスト ワークフローとして作成しました

4

1 に答える 1

1

このコードで問題が解決すると思います。最初に行う必要があるのは、ワークフロー テンプレートのリストへの関連付けを取得することです。これは、アイテムごとに 1 回ではなく、リストに対して 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); 
}
于 2011-05-11T02:21:09.147 に答える