如何防止第一个Flow更新SharePoint项时触发第二个Flow?
下面是几个实用的解决办法,按需选择:
方法1:给SharePoint列表加标记列做过滤
- 给目标SharePoint列表新增一个单行文本列或选择列,命名为
WorkflowTriggerSource - 手动触发的第一个工作流在更新
AzureDevopsID时,顺便把WorkflowTriggerSource设为固定值(比如ManualSync) - 自动触发的第二个工作流,在触发节点的筛选条件里添加规则:仅当
WorkflowTriggerSource不等于ManualSync(或为空)时才启动执行 - 第二个工作流完成更新操作后,记得把
WorkflowTriggerSource重置为空,不影响后续正常的人工修改触发
方法2:用触发条件限制执行范围
- 打开第二个自动工作流的触发节点(「当SharePoint项目被修改时」),点击节点右上角的省略号→「设置」
- 选择「添加触发条件」,配置判断规则:
- 如果第一个工作流是用特定服务账户执行的,直接用账户邮箱做判断:
@not(equals(triggerBody()?['Editor/Email'], 'your-service-account@domain.com')) - 这个逻辑是:只有当修改操作不是来自那个服务账户时,才触发第二个工作流
- 如果第一个工作流是用特定服务账户执行的,直接用账户邮箱做判断:
- 保存设置后,第一个工作流更新SP项目时就不会触发第二个了
方法3:临时存储标记(适合复杂场景)
- 新建一个小型的SharePoint列表或者Azure存储表,用来存临时触发标记,字段包含「项目ID」「工作流运行ID」「触发类型」
- 第一个手动工作流在更新SP项目前,先往这个临时表里插入一条记录,标记当前是手动同步操作
- 第二个自动工作流触发后,第一步就查询这个临时表:如果当前修改的项目ID存在对应的手动同步标记,就直接终止工作流;否则继续执行后续逻辑
- 第二个工作流执行完成(或终止)后,删除对应的临时标记,避免数据堆积
内容的提问来源于stack exchange,提问作者Mlwix
相关产品推荐
相关产品推荐

