リスト アイテムに対して 1 日 1 回 2 つのワークフローを呼び出すタイマー ジョブを作成しようとしています。もう少し明確にするために: 最初のワークフロー (workflowName) はフィールド値を Yes から No に変更し、電子メールを送信します。値。したがって、ワークフローを開始するための私の方法は次のとおりです。
private void startWorkflow(string wfName, SPSite site, SPList list, SPListItem item)
{
SPWorkflowManager manager = site.WorkflowManager;
SPWorkflowAssociation association = list.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture);
string data = association.AssociationData;
SPWorkflow wf = manager.StartWorkflow(item, association, data, true);
}
そして、ここに私のメソッド呼び出しがあります:
foreach (SPListItem item in items)
{
startWorkflow(workflowName, site, list, item);
startWorkflow(workflowName1, site, list, item);
}
タイマー ジョブを開始した後、最初のワークフロー コールが正常に実行され、2 番目のワークフロー コールがエラーを返すことがわかります。
FAILED hr が検出されました (hr = 0x8102008a)
いくつかの調査の結果、最初のwfの実行後に一部のアイテムメタデータが変更されたために問題が発生することがわかりました(上記で述べたように、1つのフィールドの値がYesからNoに変更されます)。
それをオーバーライドして、1 つのアイテムで 2 つの wf を呼び出すにはどうすればよいですか? ありがとう、アントン。