Как отфильтровать проиндексированный столбец «Люди/пользователи»
-
10-12-2019 - |
Вопрос
У меня длинный список (более 5000 элементов), и из-за порога просмотра я проиндексировал некоторые столбцы.Один из них — столбец «Люди/пользователи».Когда я хочу создать представление, которое фильтрует столбец «Пользователь», оно не работает и возвращает сообщение об ошибке «Это представление невозможно отобразить, поскольку оно превышает порог представления списка (5000 элементов), установленный администратором».
Вот что я тестировал:
- если я использую «равно» «[Me]», то это работает
- если я использую «равно» «имени», то это не работает (столбец настроен на отображение имени)
- если я использую «равно» «домен\имя пользователя», то это не работает
- если я использую «равно» «email@address», то это не сработает
- если я использую «равно» «имени пользователя», то это не работает
- если я использую «равно» «userID», то это не работает
- если я использую «равно» «userID;#username», то это не работает
- если я использую «равно» «-1;#username», то это не сработает
- Я не могу использовать слова «содержит» или «начинается с», потому что это поле людей.
Больше идей у меня нет....Какие-либо предложения ?
Спасибо
Решение 2
Наконец, я решил создать текстовую версию столбца «Человек/группа», которая также будет индексироваться.Теперь я могу фильтровать этот столбец ТЕКСТ, и у меня есть рабочий процесс в фоновом режиме, который копирует значение человека/группы в это текстовое поле.
РЕДАКТИРОВАТЬ:
На самом деле это можно сделать, используя UserID.Код CAML будет включать LookupId="True"
и в конце предложение WHERE должно выглядеть так <FieldRef Name="My_x0020_Field_x0020_Name" LookupId="True"/><Value Type="Integer">123</Value>
Я реализовал этот метод в своем JavaScript-библиотека Sharepoint для запросов.Например, если UserID равен 123, мой запрос в SharepointPlus будет выглядеть так:
$SP().list("List Name").get({
fields:"Manager",
where:"Employee_x0020_Name ~= 123" /* we use the special operator '~=' */
}, function(data) {
if (data.length===1) alert("Manager: "+data[0].getAttribute("Manager"))
})
Другие советы
[ME] - это стандартный способ отфильтровать список.Как я вспоминаю, столбцы человека / группы имеют дополнительные накладные расходы в том, что есть дополнительные запросы, которые влияют на порог, как с столбцами поиска.Этот дополнительный накладные расходы по очереди уменьшает фактическое пороговое значение, которое можно вернуть, меньше, чем предел.Я пытаюсь найти ссылку на это.
Вам может потребоваться появится порог поиска списка, увеличился в центральном администрате.