1

我正在尝试创建一个计时器作业,以便每天为列表项调用 2 个工作流。为了更清楚一点:第一个工作流(workflowName)将字段值从 Yes 更改为 No 并发送一封电子邮件,第二个(workflowName1)根据第一个列表更改其他两个列表之一中的一些值价值观。所以,这是我启动工作流程的方法:

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

启动计时器作业后,我看到第一个工作流调用成功运行,而调用第二个则返回错误:

检测到失败的小时 (hr = 0x8102008a)

经过一番研究,我发现问题的发生是因为在第一次 wf 执行后更改了某些 Item 元数据(一个字段将其值从 Yes 更改为 No,如上所述)。

如何覆盖它并在一项上调用 2 wf?谢谢,安东。

4

0 回答 0