Power Automate流问题:DevOps中Risk转Occurred时重复创建Issue
解决DevOps中Power Automate重复创建Issue工作项的问题
核心问题是你的流没有区分「首次变更为occurred状态」和「保持occurred状态的后续更新」,以下是两种可行的解决思路:
思路一:基于状态变更历史判断(推荐)
利用Power Automate触发动作自带的字段旧值,精准捕获状态从非occurred到occurred的变更:
- 保留原有的「当工作项创建或更新时」触发动作,后续添加条件控件:
- 条件1:工作项类型 等于
risk - 条件2:当前
System.State字段值 等于occurred - 条件3:
System.State字段的旧值 不等于occurred
- 条件1:工作项类型 等于
- 仅当三个条件同时满足时,才执行「创建Issue工作项」的动作。
注意:触发动作的输出里一般会包含
fields下各字段的oldValue和newValue,可直接引用,比如表达式写为triggerBody()?['fields']?['System.State']?['oldValue']
思路二:用自定义标记区分已处理的Risk工作项
如果无法直接获取状态旧值,可给已生成Issue的Risk工作项添加标记,后续更新时跳过创建:
- 在DevOps的Risk工作项类型中添加自定义布尔字段(比如
IsIssueGenerated),默认值设为No - 在Power Automate流中:
- 先判断工作项类型为
risk且当前状态为occurred - 再判断
IsIssueGenerated字段值为No - 满足条件时,先创建Issue工作项,再将该Risk工作项的
IsIssueGenerated更新为Yes
- 先判断工作项类型为
- 后续该Risk工作项保持occurred状态更新时,因
IsIssueGenerated为Yes,会跳过创建动作。
测试验证
分别测试两种场景:
- 将Risk工作项从其他状态改为
occurred:流应正常创建Issue - 已处于
occurred状态的Risk工作项,修改其他字段(比如标题、描述):流不执行创建动作
内容的提问来源于stack exchange,提问作者HRY
相关产品推荐
相关产品推荐

