Power Automate流程中SharePoint列表无法记录正确审批人详情求助
解决方案
方法1:通过SharePoint REST API手动更新默认审计字段
Power Automate无法直接编辑默认的Modified By(Editor)字段,但可以通过调用REST API实现:
- 在审批完成的步骤后,添加「发送HTTP请求到SharePoint」动作:
- 站点地址:选择目标SharePoint站点
- 方法:
POST - Uri:
/_api/web/lists/getbytitle('你的列表名称')/items(列表项ID)/validateUpdateListItem - 请求正文:
{ "formValues": [ { "FieldName": "Editor", "FieldValue": "[{'Key':'i:0#.f|membership|审批人邮箱地址'}]" }, { "FieldName": "Modified", "FieldValue": "@{utcNow()}" } ], "bNewDocumentUpdate": false } - 替换说明:把
审批人邮箱地址换成实际审批人的邮箱,列表项ID用流程动态内容(比如触发项的ID);同步更新Modified字段为当前时间,确保历史记录时间准确。 - 权限要求:流程运行账号需具备列表编辑权限,若使用应用权限,需提前配置好对应的站点权限。
方法2:新增自定义审计字段替代默认字段
如果不想处理API,可通过自定义字段实现审计需求:
- 在SharePoint列表中新增两个字段:
- 「审批人」:人员类型字段,支持多选或单选
- 「审批完成时间」:日期时间类型字段
- 在流程的每个审批阶段完成后,添加「更新列表项」动作:
- 将当前阶段的审批人赋值给「审批人」字段,审批完成时间设为当前时间
- 若需区分多阶段,可新增「第二阶段审批人」「第二阶段审批时间」等字段
- 此方法无需复杂配置,列表项历史会清晰记录自定义字段的修改记录,满足审计要求。
方法3:使用「以用户身份运行」动作(限权限可控场景)
若环境支持委派权限,可让更新操作以审批人身份执行:
- 在「更新列表项」动作前,添加「以用户身份运行」动作,选择审批人的用户信息(从审批动作的输出中获取)
- 将「更新列表项」动作放入该容器内,此时列表的
Modified By字段会显示为审批人 - 注意:审批人需具备列表编辑权限,且流程拥有者需配置好委派权限,否则会触发权限错误。
内容的提问来源于stack exchange,提问作者grasshopper
相关产品推荐
相关产品推荐

