API REST SharePoint с CAML-запросом для более чем 5000 элементов - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужно отфильтровать список, содержащий более 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, но все еще та же ошибка

Столбцы, используемые в запросе, индексируются, кстати.

1 Ответ

0 голосов
/ 21 ноября 2018

Это связано с пороговым значением представления списка, которое имеет SharePoint.См. здесь

Это пороговое значение, и вы можете изменить его в соответствии со своими потребностями.Это делается в Central Admin следующим образом:

  • Перейдите в центр администрирования фермы SharePoint
  • Перейдите в раздел «Управление веб-приложениями» в разделе «Управление приложениями»
  • Выберите «Веб-приложение», куда вы переносите сайт.
  • Нажмите раскрывающийся список «Общие параметры» и выберите «Регулирование ресурсов»
  • Измените «Порог представления списка» на 12000 или что-то вродеэто.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...