2013-11-28 1 views
1

У меня есть вид на xpage с некоторыми элементами (скажем, клиенты). У меня есть группа лиц (клиентов) acl, которая содержит некоторые из клиентов представления. Теперь я хочу использовать атрибут поиска для отображения только записей, относящихся к группе.XPages: можно ли фильтровать представление, чтобы отображать только записи, принадлежащие группе?

Я уже использую атрибут поиска для выбора пользователей по названию: например

ПОЛЕ Название содержит «Чак Норрис»

Есть ли аналогичный запрос? (возможно, используя @isMember на поле ....?)

UPDATE: У меня также будут записи группы (имена клиентов) в текстовый список в документе. поэтому я могу отфильтровать поле «имя» представления на основе значений текстового списка?

+0

Вы можете поместить свои документы в папку плановым агентом. –

ответ

5

Возможно, использование поля считывателя - хорошая идея. Вы говорите об ограничении доступа к документу для группы пользователей Domino - это именно то, для чего предназначены поля для чтения.

Например, сделать свой текстовое поле списка, содержащего имена клиентов в области чтения, как это:

var item = document1.getFirstItem("myfield"); 
item.setReaders(true); 
document1.save(); 

myfield должен содержать канонические имена (CN = Имя Фамилия/O = организация).

Используя поля считывателя, вам не нужно вообще никакой фильтрации изображений, это происходит автоматически. Если у вас действительно много документов (скажем, полмиллиона или около того), это может замедлить работу, в противном случае это хороший подход.

Если вы хотите ограничить отображение документов только в одном определенном поле зрения читателя, это не решение. В этом случае вам нужно выполнить фильтрацию вида, как вы пробовали.

Если вы хотите отфильтровать только для ОДНОГО определенного клиента, то использование категоризированного представления - путь. Затем вы можете дать панели просмотра имя одного клиента в качестве фильтра категории.

Если вы хотите отфильтровать несколько клиентов, вам необходимо сделать это на основе полнотекстового поиска, как вы уже пробовали. В этом случае убедитесь, что вы работаете с Domino 9. Предыдущие версии Domino не применяют порядок сортировки представления к результату полнотекстового поиска, а это означает, что вам нужно искать его вручную, используя собственный javascript или так, что сложно.

Или, как предложил Франтишек, написать агент по расписанию, который помещает документы в папки в зависимости от их клиентов, - но в зависимости от количества клиентов, которые вы хотите отфильтровать, это может привести ко многим папкам, что может привести к другим проблемы. Кроме того, вы должны убедиться, что удалите папки, когда они больше не нужны, и у вас есть отставание, пока в папке не появятся новые документы.

Итак, если вы хотите ограничить применение приложениями на основе имен клиентов, используйте поля считывателя. Если вы хотите ограничить одно имя клиента одновременно, используйте категории. В противном случае используйте полнотекстовый поиск с Domino 9.

+0

Если вы используете поля читателей, убедитесь, что вы включили серверы, администраторы и группы разработчиков или роли в качестве записей в списке. У меня, как правило, есть роль, называемая [AllAccess], которая является одним из каждого документа, чтобы гарантировать, что кто-то может получить к нему, если это необходимо. – Newbs

+0

Да, это хорошая рекомендация.Тем не менее, я когда-либо забыл это сделать, вы все равно можете получить доступ к документам через функцию полного доступа администратора Domino Administrator - по крайней мере, пока кто-то имеет такой уровень доступа. –

Смежные вопросы