Перейти к основному содержимому
Версия: 1.21.3

Heapselect

Heapselect обычно используется для настройки представления списка и формы.

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

подсказка
  1. Настройте URL-адрес heapselect.
  2. Создайте действие URL с помощью URL-адреса heapselect или просто поделитесь URL с другим пользователями.

Когда пользователь переходит по ссылке, отображаемые записи всегда проверяются правилами контроля доступа (ACL).

Настройка URL-адреса heapselect


Как работает heapselect

URL-адрес heapselect выполняет следующие действия с таблицей сущности:

  1. Сервер возвращает списки записей по их ID в двух окнах с помощью GET-параметров:

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

  2. (опционально) Заголовок и отображаемое значение можно настроить.

  3. После нажатия Сохранить внешний скрипт применяется ко всем выбранным записям.

Чтобы настроить URL heapselect, используйте GET-параметры и представление ниже:

<your_instance_URL>/<page_name>/<table_name>?condition=<conditional_expression>
&selected_ids_script_id=<script_returning_sys_ids>
&script_id=<script_applied>
&display_value=<column_name>
&title=<some_text>
&field_name=<field_value>
&form_view=<form_view_name>

Описание GET-параметров

GET параметрОписание
essenceCистемное название исходной таблицы.
condition

Cтрочные условия для фильтрации записей таблицы, используя операторы условий и закодированные символы URL.

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

select_ids_script_idПользовательский внешний скрипт, который возвращает список ID записей таблицы сущности в качестве результатов поиска. При применении этого скрипта heapselect добавляет записи таблицы с возвращением ID в правое окно Выбрано формы.
script_idПользовательский внешний скрипт, который применяется к записям таблицы essence, содержащимся в правом окне Выбрано.
display_valueНаименование колонки, которое будет отображаться как наименования записей в форме heapselect.
titleСтрочный заголовок формы heapselect. По умолчанию отображается заголовок Select Items.
parent_idID записи, на которую будет воздействовать примененное действие.
parent_tableID таблицы, на которую будет воздействовать примененное действие.
field_nameЗначение для определенного поля.
form_viewПредставление формы или списка. Все пользователи переключаются на указанный вид независимо от их предпочтений.

Использование heapselect


После настройки URL-адреса heapselect используйте опции heapselect, выполнив следующие действия:

  1. Используйте URL-адрес, чтобы войти в форму и выбрать нужные записи. Окно Доступно для выбора содержит все поля таблицы, кроме выбранных. Записи из окна Выбрано выбираются для дальнейшего применения скрипта. Перемещайте элементы, перетаскивая их и используя кнопки и .
    • Чтобы удалить или добавить все поля, нажмите на кнопку или .
    • Чтобы переместить несколько элементов подряд, выберите их с нажатой кнопкой Shift и перетащите из поля Доступно для выбора в поле Выбрано.
    • Чтобы переместить сразу несколько разбросанных элементов, выберите их с нажатой кнопкой Ctrl и перетащите из поля Доступно для выбора в поле Выбрано.
  2. Нажмите Сохранить, чтобы применить скрипт heapselect к записям в окне Выбрано.

Пример использования


Кейс:

Добавьте связанный список Конфигурационные единицы в запись таблицы Сотрудники, где условием выбора является Расположение равно {расположение текущего пользователя}.

Чтобы настроить связанные списки с heapselect, выполните следующие шаги:

  1. Создайте динамический связанный список. В этом случае – КЕ моего расположения.

    Пример динамического связанного списка

    if(Boolean(parent.sys_id)){
    current.addQuery('location', parent.location.sys_id);
    }
  2. Создайте внешний скрипт. В этом случае – это heapSelectExecute.

    heapSelectExecute example

    setResult(heapSelectExecute(essence, selectedIds));

    function heapSelectExecute(essence, selectedIds) {
    let selectedElements = [];
    let record = new SimpleRecord(essence);
    record.addQuery('sys_id', 'IN', selectedIds);
    record.query();
    record.setMultipleValue('location', parent.location.sys_id);
    record.updateMultiple();
    }
  3. Создайте действие пользовательского интерфейса к созданному связанному списку со следующими настройками:

    ПолеЗначение
    ТаблицаТаблица, которая отображается в связанном списке.

    Условия и действия

    ПолеЗначение
    На новой записиtrue
    На существующей записиtrue
    URL

    URL heapselect со всеми необходимыми параметрами. Дополнительные сведения см. в разделе настройки URL heapselect.

    /heap-select/sys_cmdb_ci?condition=(ci_status!=1)&select_ids_script_id=158764810812561263&script_id=158764868812483099&display_value=number&title=Edit CI Location

    Позиция и стиль

    ПолеЗначение
    Использовать дляСвязанных списков
    Синтетический списокtrue
    Вверху слеваtrue

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