我正在尝试创建一个计时器作业,以便每天为列表项调用 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?谢谢,安东。