如何构建Power Automate流同步SharePoint列表同PO编号的Completed状态
核心思路
当某条记录的Completed被设为Yes时,自动筛选出相同PO number的其他记录,批量将它们的Completed也更新为Yes。
具体步骤
设置触发条件
- 新建自动云流,选择SharePoint连接器的当项目被创建或修改时触发器,指定目标站点和
DCE列表。 - 打开触发器的触发条件,添加以下表达式,确保仅当
Completed从非Yes改为Yes时才触发流(避免循环触发):@and(equals(triggerBody()?['Completed/Value'], 'Yes'), not(equals(triggerBody()?['Completed/PreviousValue'], 'Yes'))) - 若无需区分历史状态,仅当当前
Completed为Yes就触发,表达式简化为:@equals(triggerBody()?['Completed/Value'], 'Yes')
- 新建自动云流,选择SharePoint连接器的当项目被创建或修改时触发器,指定目标站点和
捕获当前记录的PO编号
- 添加初始化变量动作,变量名设为
CurrentPONumber,类型选整数(匹配PO number数字列类型),值设为触发器输出的PO编号:triggerBody()?['PO_x0020_number'] - 注意:
PO_x0020_number是列的内部名称,若你的列内部名称不同需替换。查看方法:在SharePoint列表设置中点击对应列,URL里Field=后的字符串即为内部名称。
- 添加初始化变量动作,变量名设为
查询同PO编号的其他记录
- 添加获取项目动作,指定目标站点和
DCE列表,在筛选查询中输入:PO_x0020_number eq @{variables('CurrentPONumber')} and ID ne @{triggerBody()?['ID']} - 该条件会筛选出与当前记录PO编号相同,但排除触发记录本身的所有条目。
- 添加获取项目动作,指定目标站点和
批量更新状态
- 添加应用到每一个动作,将获取项目输出的
value作为输入集合。 - 在循环内部添加更新项目动作,指定目标站点、
DCE列表,选择当前循环项目的ID,然后将Completed字段设置为Yes。
- 添加应用到每一个动作,将获取项目输出的
关键注意事项
- 防止循环触发:必须保留触发条件中对
PreviousValue的判断,否则批量更新其他记录时会再次触发流,导致无限循环。 - 列内部名称准确性:Power Automate引用SharePoint列必须用内部名称,显示名含空格或特殊字符时会引发错误。
- 权限验证:确保流使用的连接账户拥有列表编辑权限,否则无法完成更新操作。
内容的提问来源于stack exchange,提问作者Alan Tse
相关产品推荐
相关产品推荐

