首页 > 解决方案 > 是否可以使用 SharePoint 的 ValidateUpdateListItem 端点将长字符串值设置为 Note 类型的字段?

问题描述

我正在尝试解决 SharePoint 在更新其他列表属性字段时设置列表项元数据属性(例如编辑器和修改)的行为。我有一个包含注释字段的列表,即使注释字段的值是超过 255 个字符的字符串,我也可以通过 MERGE 调用成功设置它。(这符合预期,因为注释可以是 63999 个字符。)

但是使用 MERGE 会导致 Editor 和 Modified 被更新。相反,对项目的 ValidateUpdateListItem 方法使用 POST 应该只更新提供的字段 AFAIK。

ValidateUpdateListItem 调用的主体如下所示:

{:formValues [{"FieldName": "My_x0020_Internal_x0020_Field_x0020_Name",
               "FieldValue": "This is a string longer than 255 characters ...   really"}]}

但是将长字符串传递给 Note 字段值时失败,结果中出现错误消息:“此字段不能超过 255 个字符”和错误代码 0x80131600。

有没有办法通过 ValidateUpdateListItem 传递一个长字符串?

nb我很乐意使用 MERGE 并通过 ValidateUpdateListItem 仅重写 Editor 和 Modified 字段,这不会有长字符串问题。但是,将编辑器重置为不再存在于 Active Directory 中的用户身份是不可能的,即使您将其设置为i:0#.f|membership|deleted@tenant.com编辑器字段在 MERGE 调用之前具有的名称值(例如,)。在这种情况下,SharePoint 会以“我们找不到完全匹配”错误作为响应,并将编辑器设置为“SharePoint 应用程序”,这会丢失我们试图在文档库中维护的历史记录。

标签: restsharepoint

解决方案


答案是即使字段是 Note 类型并且可以通过 MERGE 写入长值,要使用 ValidateUpdateListItem 写入长值,必须UnlimitedLengthInDocumentLibrary="TRUE"在字段模式 XML 中创建该字段。

感谢Michael Han的 Microsoft 问答。


推荐阅读