【发布时间】:2026-02-24 13:45:01
【问题描述】:
我们有一个显示日历和管理约会等的 SharePoint 网站。
我们正在尝试通过工作流程自动化该系统的多个方面。
每个工作流程都可以正常工作。
问题是我们希望它们在项目被修改时自动运行。但有时工作流本身会修改另一个项目 - 这反过来会触发工作流....
如何避免这些竞争条件?
【问题讨论】:
标签: sharepoint workflow
我们有一个显示日历和管理约会等的 SharePoint 网站。
我们正在尝试通过工作流程自动化该系统的多个方面。
每个工作流程都可以正常工作。
问题是我们希望它们在项目被修改时自动运行。但有时工作流本身会修改另一个项目 - 这反过来会触发工作流....
如何避免这些竞争条件?
【问题讨论】:
标签: sharepoint workflow
请注意:我没有专门用工作流测试过这个
对于 SP 事件,您可以通过列表项事件接收器以编程方式执行此操作。
当您将事件接收器附加到列表时,您可以显式禁用特定序列的事件触发。这会阻止后续事件因初始事件而触发。
只要您从事件接收器启动工作流,此行为就应该延续到工作流。
public class ListItemEventReceiver : SPItemEventReceiver
{
#region SPItemEventReceiver Interface
public override void ItemAdded(SPItemEventProperties properties)
{
this.DisableEventFiring();
// trigger your workflow here
this.EnableEventFiring();
}
}
【讨论】: