You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Power Automate批量插入SharePoint Person类型字段报错求助

解决Power Automate批量插入SharePoint Person字段的400错误

错误原因

SharePoint的Person类型字段属于导航属性,不能直接传入邮箱字符串(原始值),必须传入符合OData规范的对象或数组结构,这就是你收到InvalidClientQueryException错误的核心原因。

解决方法

1. 单个用户的字段结构

在批量请求的JSON体中,Person字段需要以对象形式传入,包含元数据和邮箱信息:

"[Person字段内部名称]": {
    "__metadata": { "type": "SP.Data.[列表名称]ListItem.UserInfo" },
    "Email": "目标用户邮箱@domain.com"
}
  • 替换[Person字段内部名称]为实际字段的内部名称(可在列表设置的字段编辑页面URL中获取)
  • 替换[列表名称]为你的SharePoint列表名称(注意区分大小写)

2. 多用户的字段结构(若字段允许多选)

如果Person字段支持多选,需要用数组包裹多个用户对象:

"[Person字段内部名称]": [
    {
        "__metadata": { "type": "SP.Data.[列表名称]ListItem.UserInfo" },
        "Email": "user1@domain.com"
    },
    {
        "__metadata": { "type": "SP.Data.[列表名称]ListItem.UserInfo" },
        "Email": "user2@domain.com"
    }
]

3. 批量插入的完整请求示例

以Power Automate的「Send an HTTP request to SharePoint」动作为例:

  • 请求方法:POST
  • URL:_api/web/lists/getbytitle('[列表名称]')/items
  • Headers:
    • Accept: application/json;odata=verbose
    • Content-Type: application/json;odata=verbose
  • Body(单条数据示例):
{
    "__metadata": { "type": "SP.Data.[列表名称]ListItem" },
    "Title": "测试条目",
    "[Person字段内部名称]": {
        "__metadata": { "type": "SP.Data.[列表名称]ListItem.UserInfo" },
        "Email": "user@domain.com"
    }
}

若批量插入多条数据,需使用$batch请求格式,每条数据都遵循上述Person字段结构。

注意事项

  • 必须使用字段的内部名称而非显示名称,避免因名称空格或特殊字符导致解析失败。
  • 确保目标用户的邮箱已存在于SharePoint站点的用户信息列表中(外部用户需先添加至站点)。

内容的提问来源于stack exchange,提问作者Wellerson Clayton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:25:28