Связанные списки
Связанные списки отображаются в нижней части форм и отображают записи, связанные с текущей записью, в виде таблиц, Например, запись Таблица (sys_db_table) содержит связанный список колонок. Он отображает записи из таблицы Колонки (sys_db_column), связанные с текущей записью.
Существует два типа связанных списков:
- Ссылочные связанные списки имеют прямую ссылку на другую таблицу через ID текущей записи. Например, запись в таблице А содержит ID записи из таблицы Б. Тогда запись из таблицы Б, на которую ссылаются, будет иметь связанный список с записью из таблицы А в нем. Эта связь устанавливается колонками типа Reference, List и Document ID.
- Синтетические связанные списки не имеют прямых ссылок друг на друга. Смотрите раздел Динамические связанные списки.
В связанных списках пользователи могут просматривать и редактировать информацию так же, как и в любом другом списке, а администраторы могут настраивать их представление через настройку представления формы.
Если у пользователей нет доступа к некоторым записям в области связанных списков, отображается следующее сообщение:
Некоторые записи скрыты политикой безопасности
- При добавлении нового связанного списка копируется и используется представление списка по умолчанию связанной таблицы. Вы можете настроить вид позже.
- При создании дочерней таблицы ее форма и представление списка копируются из родительской таблицы с учетом представлений секций и связанных списков. Вы можете настроить эти представления позже. Дополнительные сведения смотрите в статьях Представление списков и Представление форм.
Чтобы сузить список записей в связанном списке, используйте конструктор условий. Обратите внимание, что установленные фильтры не будут сохранены по умолчанию. Чтобы применить сложный фильтр к связанному списку, используйте динамический связанный список.
Добавление связанного списка
Требуемая роль: admin.
Чтобы добавить связанный список на форму, выполните следующие шаги:
- Откройте форму, на которую вам необходимо добавить связанный список.
- В бургер-меню выберите Настроить → Связанные списки → Макет.
- Настройте наборы связанных списков, перемещая элементы из окон:
Окно Доступно для выбора содержит список связанных таблиц, которые вы можете добавить на форму. Окно Выбрано содержит список связанных таблиц, которые отображаются на форме.Отредактируйте область связанных списков, выполнив следующие действия:
- Чтобы переместить элементы, перетаскивайте их или используйте кнопки и .
- Чтобы убрать или добавить все колонки, нажмите кнопку или .
- Чтобы изменить порядок отображения полей, используйте кнопки и .
- Чтобы переместить несколько элементов подряд, выберите их, удерживая клавишу Shift, а затем перетащите их в нужную область.
- Чтобы перенести несколько разбросанных элементов, выберите их, удерживая клавишу Ctrl, а затем перетащите их в нужную область.
- Нажмите Сохраните, чтобы применить изменения.
Перед стрелкой (→) отображается заголовок таблицы, в которой хранятся связанные записи. После стрелки (→) отображается поле, относящееся к текущей записи. То есть, Задачи инцидента → Родитель будет отображать записи из таблицы Задачи инцидента, у которых в поле Родитель значение содержит ID текущей записи.
В одной таблице может быть более одного поля: таблица Запросы на изменение (itsm_change_request) может ссылаться на текущую запись в полях Вызвано инцидентами, Родитель, Связанные инциденты и Решенные инциденты.
Связанные списки связаны через ID текущей записи. То есть условием для связанного списка является [Наименование колонки] равно [ID текущей записи]
. Чтобы создать более точные условия и установить сложные отношения между полями, создайте связанный список скриптов.
Создание записи в связанном списке
Вы можете создать записи, связанные с текущей записью, через связанные списки. Например, вы можете создать новую задачу изменения для записи запроса на изменение.
Кнопка Создать недоступна на некоторых связанных списках. Кнопка отображается в связанных списках, логика которых предполагает создание новых записей. Например, вы можете создать новую колонку через связанный список Колонки в записи таблицы. Но записи из таблицы Согласования нельзя добавить вручную из-за реализованной логики: согласования создаются автоматически.
Чтобы создать запись через связанный список, выполните следующие шаги:
- Откройте запись, к которой вам нужно добавить связанную запись.
- Перейдите в область Связанные списки и откройте необходимую вкладку.
- Нажмите Сохранить, заполни те поля.
- Нажмите Сохранить или Сохранить и выйти.
Добавление записей через связанный список
Вы можете добавлять существующие записи в связанный список текущей записи. Например, вы можете добавить пользователя в существующие группы:
Кнопка Изменить недоступна на некоторых связанных списках. Кнопка отображается в связанных списках, логика которых предполагает добавление новых записей. Например, вы можете добавить пользовательский критерий к записи пользователя через связанный список Пользовательские критерии. Но из-за логики таблицы Роли пользователя связывать роли с пользователями запрещено: записи создаются индивидуально для каждого пользователя.
Чтобы добавить запись в связанный список, выполните следующие шаги:
- Откройте запись, к которой вам нужно добавить связанную запись.
- Перейдите в область Связанные списки и откройте необходимую вкладку.
- Нажмите Изменить.
- Используя heapselect, выберите записи для привязки к текущей записи.
- Нажмите Сохранить.
Динамические связанные списки
Динамические связанные списки отличаются от ссылочных связанных списков – они связанны скриптом синтетически. То есть вы можете добавить отношения между таблицами, которые не ссылаются друг на друга в колонках типа Reference, List или Document ID. Эти списки можно настроить с помощью таблицы Динамические связанные списки (sys_related_list_script).
Чтобы настроить динамический связанный список, выполните следующие шаги:
- Перейдите в Настройка системы → Динамические связанные списки.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти, чтобы применить изменения.
Поля формы Динамические связанные списки
Поле | Обязательно | Описание |
---|---|---|
Наименование | Да | Укажите название отношений, отображаемые в списке. |
Применить к | Да | Укажите таблицу, на формах которой будет отображаться этот связанный список. |
Запрос от | Да | Укажите таблицу, содержащую исходные записи для этого списка. |
Запрос к таблице | Да | В этом поле вы можете написать скрипт, указывающий записи, которые нужно включить из таблицы, обрабатываемой этим отношением. |
В своем скрипте вы можете свободно использовать объекты current и parent. Основная цель этого скрипта – сгенерировать запрос, который будет применен к таблице, указанной в поле Запрос от.
- Объект current – это объект таблицы, в которой создается запрос (таблица, указанная в поле Запрос от).
- Объект parent – это ссылка на объект таблицы, указанной в поле Применить к.
Другими словами, объект parent – это форма записи, указанная в поле Применить к, а объект current – это список таблицы, указанной в поле Запрос от.
Вы можете использовать любые методы серверного API SimpleRecord Server-Side в качестве директив в объектах current и parent.