Мне нужно отфильтровать список, содержащий более 5000 элементов, с помощью API REST SharePoint
Один из столбцов для фильтрации - это столбец управляемых метаданных, который не позволяет использовать SharePoint REST API GET Urls
Мне нужно использовать POST-запросы REST API с CAML Query в теле для достижения этой цели.
Мой код выглядит следующим образом
var viewXml =
{
ViewXml: "<View>" +
"<Query>" +
"<Where><Eq>" +
"<FieldRef Name='RegionTestHidden'/>" +
"<Value Type='TaxonomyFieldType'>" + "North" + "</Value>" +
"</Eq></Where>" +
"</Query>" +
"</View>"
}
function CamlQueryRESTCall(listName, viewXml)
{
var call = jQuery.ajax(
{
url: _spPageContextInfo.webAbsoluteUrl+ "/_api/Web/Lists/getByTitle('"+listName+"')/GetItems(query=@v1)?" +
"@v1=" + JSON.stringify(viewXml),
type: "POST",
dataType: "json",
headers:
{
Accept: "application/json;odata=verbose",
"X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
}
}
);
return call;
}
Проблема, с которой я сталкиваюсь, заключается в том, что если я использую фильтр на основев регионе South
, в результате которого более 5000 элементов, я получаю HTTP Error 500 Internal Server Error
с сообщением об ошибке List item threshold exceeded
.
С запросами GET я могу использовать $top
и data.d.__next
для загрузки более 5000 элементов.Но как сделать аналогичную логику в запросах POST?
Я попытался включить <RowLimit>1000</RowLimit>
в запрос CAML, но все еще та же ошибка
Столбцы, используемые в запросе, индексируются, кстати.