1

リスト アイテムに対して 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 を呼び出すにはどうすればよいですか? ありがとう、アントン。

4

0 に答える 0