如何在Power Automate中按被分配人及创建日期检索并重新分配审批?
可以实现按被分配人和创建日期检索并重分配审批,但需先解决数据可见性问题
第一步:解决Dataverse中看不到审批记录的问题
你当前看不到近期审批的核心原因大概率是权限不足或筛选条件错误:
- 检查Dataverse权限:联系租户管理员,确认你的安全角色拥有
Approval Requests表的全局读取权限(而非仅能查看自己作为请求人/审批人的记录)。默认权限设置通常会限制用户查看其他用户的审批记录,需要调整角色权限。 - 修正List Rows筛选逻辑:
在Dataverse的「List rows」操作中,选择Approval Requests表,使用精准的筛选条件(注意用Dataverse字段的逻辑名):- 按被分配人筛选:
_assignedto_value eq '<被分配人Azure AD对象ID>' - 按创建日期筛选:
createdon ge 'yyyy-MM-dd'(例如createdon ge '2024-05-01') - 组合筛选:
_assignedto_value eq '<对象ID>' and createdon ge '2024-05-01'
- 按被分配人筛选:
第二步:检索到审批后执行重分配
当能正常读取审批记录后,有两种方式实现重分配:
方式1:使用Dataverse「Update row」操作
- 遍历「List rows」返回的审批记录,对每条记录执行「Update row」操作:
- 选择
Approval Requests表,指定记录ID - 更新
assignedto字段为新审批人的Azure AD对象ID - 可选:更新
statuscode(状态码)为「重新分配」对应的数值(可在Dataverse表的选项集中查看,通常为2)
- 选择
方式2:使用Power Automate内置「Reassign approval」操作
- 直接调用「Reassign approval」操作,输入两个关键参数:
- Approval ID:从「List rows」返回的记录中提取
approvalid字段值 - Assigned to:新审批人的邮箱或Azure AD对象ID
这个操作会自动处理状态更新,并向原审批人和新审批人发送通知。
- Approval ID:从「List rows」返回的记录中提取
注意事项
- 所有涉及用户的字段需使用Azure AD对象ID,而非用户邮箱或用户名,Dataverse的Lookup字段仅识别对象ID。
- 如果需要批量重分配,可以在流程中添加「Apply to each」循环,遍历筛选后的审批记录批量处理。
内容的提问来源于stack exchange,提问作者Kris
相关产品推荐
相关产品推荐

