我们有一个SharePoint网站,可以显示日历和管理约会等。
我们正试图通过工作流程自动化该系统的几个方面。
每个工作流程都可以正常工作。
问题是我们希望它们在修改项目时自动运行。但有时工作流本身会修改另一个项目 - 这又会触发工作流程....
你如何避免这些竞争条件?
答案 0 :(得分:2)
抬头:我没有专门针对工作流程进行测试
对于SP事件,您可以通过列表项事件接收器以编程方式执行此操作。
将事件接收器附加到列表时,可以显式禁用特定序列的事件触发。这会因初始事件而停止后续事件的触发。
只要您从事件接收器启动工作流程,此行为就会延续到工作流程。
public class ListItemEventReceiver : SPItemEventReceiver
{
#region SPItemEventReceiver Interface
public override void ItemAdded(SPItemEventProperties properties)
{
this.DisableEventFiring();
// trigger your workflow here
this.EnableEventFiring();
}
}