SharePoint API CAML视图:当我在CAML中包含查询时,即使具有行限制,我也会收到列表阈值错误

我不确定我的CAML查询中是否存在语法错误,或者我误解了API的工作原理,但是我有一个非常大的文档库,我试图在其中标识没有合规性/保留标签的项目设置。

我的查询试图返回库中没有将合规保留标签设置为“测试”的任何项目。这是查询,但不管行数限制如何,控制台应用程序都会返回阈值错误...“尝试的操作被禁止,因为它超过了管理员强制执行的列表视图阈值。”

<View Scope='RecursiveAll'><RowLimit>20</RowLimit><Query><Where><Neq><FieldRef Name='_Compliancetag'/><Value Type='String'>Test</Value></Neq></Where></Query></View>

我一直在尝试最基本的查询,我可以确认这项工作...

<View Scope='RecursiveAll'><RowLimit>20</RowLimit></View>

但是,一旦我将元素添加到CAML,就会收到错误消息。似乎一旦添加查询,它就会忽略我的行数限制。计划是将这些物品分批带回并贴上标签。我已经建立了一个控制台应用程序,该应用程序使用SetCompliancetag to library方法。这会将Tag应用于库中的所有内容,但不幸的是我的库太大了,我们发现它缺少了一些。

任何见解将不胜感激。

qqaq99 回答:SharePoint API CAML视图:当我在CAML中包含查询时,即使具有行限制,我也会收到列表阈值错误

进一步阅读后,我现在了解到查询是在整个列表上执行的,因此限制适用于CAML中的rowLimit。现在,我已经复制并改编了Piyush K Singh在下面链接的教程中所做的工作。有一个ListItemCollectionPosition对象,该对象可以处理将您的API请求分解为行限制中指定的大小的批处理。然后,我遍历每个批次,寻找符合我指定条件的物品...

https://piyushksingh.com/2016/12/04/query-listitems-in-batches-sharepoint-online/

感谢Piyush!

本文链接:https://www.f2er.com/2971419.html

大家都在问