Heapselect обычно используется для настройки представления списка и формы.
Еще один случай использования инструмента heapselect – редактирование динамических связанных списков на форме записи. Heapselect позволяет вам изменить набор записей, отображаемых в списке.
- Настройте URL-адрес heapselect.
- Создайте действие по URL с помощью URL-адреса heapselect или просто поделитесь URL с другим пользователями.
Когда пользователь переходит по ссылке, отображаемые записи всегда проверяются правилами контроля доступа (ACL).
Настройка URL-адреса heapselect
URL-адрес heapselect выполняет следующие действия с таблицей сущности:
- Сервер возвращает списки записей по их ID в двух окнах с помощью GET-параметров:
- В левом окне – записи, отфильтрованные по условию, доступны для ручного выбора пользователем.
- В правом окне – пользовательский внешний скрипт возвращает определенные записи таблицы по их ID.
- (Опционально) заголовок и отображаемое значение можно настроить.
- После нажатия Сохранить внешний скрипт применяется ко всем выбранным записям.
Чтобы настроить 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-параметр | Описание |
---|---|
essence | Cистемное название исходной таблицы. |
condition | Cтрочные условия для фильтрации записей таблицы, используя операторы условий. Вы можете просто применить нужный фильтр или настройки конструктора условий к таблице в форме списка, затем скопировать тело условия из URL-адреса браузера и использовать его в качестве условия heapselect. Узнайте больше о том, как работают фильтры. |
select_ids_script_id | Пользовательский внешний скрипт, который возвращает список ID записей таблицы сущности в качестве результатов поиска. При применении этого скрипта heapselect добавляет записи таблицы с возвращением ID в правое окно Выбрано формы. |
script_id | Пользовательский внешний скрипт, который применяется к записям таблицы essence, содержащимся в правом окне Выбрано. |
display_value | Наименование колонки, которое будет отображаться как наименования записей в форме heapselect. |
title | Строчный заголовок формы heapselect. По умолчанию отображается заголовок Select Items. |
parent_id | ID записи, на которую будет воздействовать примененное действие. |
parent_table | ID таблицы, на которую будет воздействовать примененное действие. |
field_name | Значение для определенного поля. |
form_view | Представление формы или списка. Все пользователи переключаются на указанный вид независимо от их предпочтений. |
Использование heapselect
После настройки URL-адреса heapselect используйте опции heapselect, выполнив следующие действия:
Используйте URL-адрес, чтобы войти в форму и выбрать нужные записи. Окно Доступно для выбора содержит все поля таблицы, кроме выбранных. Записи из окна Выбрано выбираются для дальнейшего применения скрипта. Перемещайте элементы, перетаскивая их и используя кнопки и .
- Чтобы удалить или добавить все поля, нажмите на кнопку или .
- Чтобы переместить несколько элементов подряд, выберите их с нажатой кнопкой Shift и перетащите из поля Доступно для выбора в поле Выбрано.
- Чтобы переместить сразу несколько разбросанных элементов, выберите их с нажатой кнопкой Ctrl и перетащите из поля Доступно для выбора в поле Выбрано.
- Нажмите Сохранить, чтобы применить скрипт heapselect к записям в окне Выбрано.
Пример использования
Кейс:
Добавьте связанный список Конфигурационные единицы в запись таблицы Сотрудники, где условием выбора является Расположение равно {расположение текущего пользователя}.
Чтобы настроить связанные списки с heapselect, выполните следующие шаги:
Создайте связанный список, используя инструмент динамических связанных списков. В нашем случае – это CI my Location.
Scripted Related List exampleif(Boolean(parent.sys_id)){ current.addQuery('location', parent.location.sys_id); }
Создайте внешний скрипт. В нашем случае – это heapSelectExecute.
heapSelectExecute examplesetResult(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(); }
Создайте действие пользовательского интерфейса к созданному связанному списку со следующими настройками:
Поле Значение Таблица Таблица, которая отображается в связанном списке.
Условия и действия На новой записи true На существующей записи true URL 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
В результате на форме записи Сотрудника появляется редактируемый связанный список. Пользователь может добавлять или удалять записи из списка конфигурационных единиц, которые имеют то же расположение, что и сотрудник.
- No labels