【问题标题】:Guidance on creating non conflicting workflows创建非冲突工作流的指南
【发布时间】:2026-02-24 13:45:01
【问题描述】:

我们有一个显示日历和管理约会等的 SharePoint 网站。

我们正在尝试通过工作流程自动化该系统的多个方面。

每个工作流程都可以正常工作。

问题是我们希望它们在项目被修改时自动运行。但有时工作流本身会修改另一个项目 - 这反过来会触发工作流....

如何避免这些竞争条件?

【问题讨论】:

    标签: sharepoint workflow


    【解决方案1】:

    请注意:我没有专门用工作流测试过这个

    对于 SP 事件,您可以通过列表项事件接收器以编程方式执行此操作。

    当您将事件接收器附加到列表时,您可以显式禁用特定序列的事件触发。这会阻止后续事件因初始事件而触发。

    只要您从事件接收器启动工作流,此行为就应该延续到工作流。

    public class ListItemEventReceiver : SPItemEventReceiver
    {
        #region SPItemEventReceiver Interface
        public override void ItemAdded(SPItemEventProperties properties)
        {
            this.DisableEventFiring();
    
            // trigger your workflow here
    
            this.EnableEventFiring();
        }
     }
    

    【讨论】: