Фильтрация данных

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

Вы можете создать новые связи объекта, которые будут использоваться для фильтрации данных. Для получения дополнительной информации см. раздел Связь несвязанных бизнес-объектов.

Создание правила фильтрации

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

В следующем примере представлено, как отображать в окне инцидента только элементы конфигурации, которые связаны с выбранным пользователем. Поскольку нам нужно ограничить вывод элементов конфигурации в окне инцидента, правило фильтрации будет основано на атрибуте Элемент конфигурации в объекте Инцидент.

Для создания правила фильтрации:
  1. Запустите компонент Дизайнер объектов и перейдите к бизнес-объекту, для которого нужно применить фильтры.
    В примере - Управление инцидентами | Инцидент.
  2. В списке Атрибуты выберите атрибут, для которого нужно добавить фильтр.
    В этом примере - Элемент конфигурации.
  3. На панели Свойства рядом со свойством Селекторы фильтров щелкните .
    Появится диалог селекторов фильтров атрибутов.
  4. Щелкните Создать правило фильтра.
    Появится диалог селекторов фильтров атрибутов.

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

Для получения дополнительной информации о значении выполнения см. раздел Фильтрация данных с использованием значения выполнения.

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

  1. Установите параметр Выберите фильтрацию запросов, а затем в списке щелкните [Создать].
    Появится диалог "Создать фильтр".

Если уже есть подходящий запрос фильтра, вы может выбрать его из списка.

Для получения информации о создании запросов фильтров см. раздел Фильтры.

  1. Введите Заголовок фильтра.

Заметьте, что элементы Модуль и Бизнес-объект для групп На основе и Фильтровать по уже определены. Объект На основе относится к объекту для атрибута, для которого определен селектор фильтров (в нашем примере, Управление конфигурациями\Элемент конфигурации). Это означает, что объект Фильтровать по - это объект, для которого предназначен атрибут для селектора фильтров (в нашем примере, Управление инцидентами\Инцидент). Это означает, что когда вы добавляете критерий в запрос фильтра, вы будете сопоставлять атрибуты элемента конфигурации с атрибутами инцидента.

  1. Выберите кнопку параметра Все, а затем щелкните OK.
    Появится построитель фильтров.
  2. В дереве Атрибуты переместите заголовок в список Выбранные атрибуты.

Вы можете также добавить любые атрибуты, которые нужно использовать в сложном списке во время создания окна (для получения дополнительной информации о сложных списках см. раздел Сложные списки).

  1. После установки требуемых атрибутов щелкните Далее.
    Появится страница "Критерий". На ней устанавливаются условия, которые ограничивают выводимые результаты.

В нашем примере необходимо указать значение выполнения, которое будет использоваться для выбора элемента конфигурации, связанного с создавшим событие пользователем. Связь элемента конфигурации с пользователем является связью нескольких с несколькими: пользователь может иметь несколько элементов конфигурации (компьютер, монитор, принтер и т.д.), а элемент конфигурации может быть связан с несколькими пользователями (например, сетевой принтер). По этой причине существует коллекция Элементы конфигурации пользователя в объекте Элемент конфигурации. Это атрибут Пользователь в данной коллекции, по которому нужно выполнить фильтрацию.

Это означает, что нужно создать критерий User Configuration Items.User Is Equal To (Raise User).

  1. Из дерева Атрибуты переместите атрибут, по которому нужно выполнить фильтрацию, в список Текущий критерий.
    В этом примере разверните элемент Элементы конфигурации пользователя и переместите элемент Пользователь в список Текущий критерий.
    Появится диалог критерия с заполненным полем Атрибут со значением User Configuration Items.User.
  2. В списке Условие выберите Равно.

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

  1. Установите параметр Укажите значение выполнения для параметра.
    Другие параметры могут быть добавлены в диалоге "Критерий":
  1. В дереве выберите элемент Создавший пользователь и щелкните OK.
    Критерий User Configuration Items.User Is Equal To (Raise User) будет добавлен в список Текущий критерий.
  2. В окне построителя фильтров щелкните Готово, а затем Да для сохранения изменений.
    Построитель фильтров будет закрыт, появится диалог селектора фильтров атрибута с новым фильтром.
  3. В групповом поле Выберите тип клиента выберите Любой, если нужно фильтровать всех клиентов, или выберите Web Access, если нужно отфильтровать приложения, полученные через Web Access, такие как Web Desk, а затем щелкните OK.
    Фильтр появится в списке "Правила фильтра". Заметьте, что Тип имеет значение Запрос.
  4. Нажмите OK.
    Правило фильтрации будет добавлено в атрибут.
  5. Щелкните для сохранения изменений объекта.

Для изменения существующего правила фильтрации выберите его в списке Правила фильтра и щелкните Изменить.

Вы можете создать другое правило фильтрации, для выбора элементов конфигурации только определенного типа. Это выполняется посредством сопоставления типа класса для элемента конфигурации с типом элемента конфигурации, выбранным в инциденте в значении выполнения.
Это: AND Class Type Is Equal To (ConfigurationItemType)

Установите фильтр для атрибута, который специфичен для родственного бизнес-объекта, вместо атрибута, наследуемого из другого бизнес-объекта. Если вам необходимо создать фильтр наследуемых бизнес-объектов (например, если фильтруемый атрибут доступен только для наследуемых бизнес-объектов, тогда вы должны создать правило фильтрации), оно должно иметь дополнительное условие, применяемое только к конкретному типу бизнес-объектов.
Например, для бизнес-объекта "Инцидент" фильтр атрибута процесса/создавшего пользователя будет фильтровать пользователей по клиентам, выбранным в окне "Инцидент". Это корректно работает для инцидентов. Однако вы не сможете выбрать создавшего пользователя для бизнес-объекта "Изменение", так как атрибут "Создавший пользователь" наследуется из бизнес-объекта "Процесс" - всегда выполняется фильтрация по инциденту/клиенту. Используя этот пример, вы не можете задать этот фильтр для атрибута процесса/создавшего пользователя, так как "Клиент" не является частью бизнес-объекта "Процесс", хотя и относится к бизнес-объекту "Инцидент". Поэтому фильтр должен оставаться в объекте процесса/создавшего пользователя, но не должен применяться для других бизнес-объектов. Это можно сделать посредством добавления условия фильтра для использования только в случае, если бизнес-объект является инцидентом.