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

能否使用SharePoint的ValidateUpdateListItem为Note类型字段设置长字符串值

解决方案

方案1:MERGE请求直接保留元数据(优先推荐)

无需绕路使用ValidateUpdateListItem,仅需在MERGE请求中添加X-PreserveAuditMetadata请求头,设置值为true,即可在更新指定字段时完全保留原有Editor、Modified等元数据,不会触发自动更新,也无需后续回写操作,即使原Editor用户已从AD删除也不受影响,同时天然支持Note字段的长文本写入。
请求示例:

POST https://<租户域名>.sharepoint.com/sites/<站点路径>/_api/web/lists/getbytitle('<列表名称>')/items(<列表项ID>)
请求头:
Authorization: Bearer <访问令牌>
Accept: application/json;odata=nometadata
Content-Type: application/json;odata=nometadata
X-HTTP-Method: MERGE
IF-MATCH: *
X-PreserveAuditMetadata: true

请求体:
{
  "My_x0020_Internal_x0020_Field_x0020_Name": "长度超过255字符的长文本内容"
}

方案2:通过ValidateUpdateListItem写入长文本Note字段

你遇到的255字符限制报错,是因为ValidateUpdateListItem默认将所有字段按单行文本规则做长度校验,只需在Note字段的formValues条目中添加IsLongTextField: true参数即可绕过该限制,同时可以在同一次请求中传入需要保留的Editor、Modified值,无需分两次调用:
请求体示例:

{
  "formValues": [
    {
      "FieldName": "My_x0020_Internal_x0020_Field_x0020_Name",
      "FieldValue": "长度超过255字符的长文本内容",
      "IsLongTextField": true
    },
    {
      "FieldName": "Editor",
      "FieldValue": "<用户ID>;#i:0#.f|membership|deleted@tenant.com"
    },
    {
      "FieldName": "Modified",
      "FieldValue": "2023-01-01T12:00:00Z"
    }
  ],
  "bNewDocumentUpdate": false
}

已删除用户Editor字段回写说明

如果需要写入已从AD删除的用户作为Editor值,只需将FieldValue调整为<用户数字ID>;#<原用户登录名>的格式即可,SharePoint不会触发用户存在性校验,直接保留传入的值,不会返回匹配失败错误。

内容的提问来源于stack exchange,提问作者Eric Schoen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:54:04