Механизм dot-walking предоставляет доступ к полям связанных таблиц с формы, со списка или из скрипта. В таблице могут содержаться ссылки на другие таблицы. Доступ к полям в этих таблицах можно получить при помощи dot-walking.
Механизм dot-walking создает цепочку наименований атрибутов, разделенных точками. Например, incident.assigned_user.company ссылается на компанию пользователя, назначенного на инцидент.
const current = new SimpleRecord('itsm_incident');
current.get('158557395619812771');
ss.info(current.assignment_group.responsible.email);
// Информация: john.doe@example.com
Для ускорения выполнения скрипта используйте метод getValue(property), чтобы получить значения полей типа Reference, вместо использования dot-walking.
Например, предпочтительнее использовать структуру current.getValue('reference_field') вместо current.reference_field.sys_id.
Обработка контекста
Например, вы, как администратор, работаете с записями таблицы Вам нужно получить информацию о заявителе по конкретной задаче. Обычно заявителем указан объект из таблицы Пользователи (user). Однако в данном случае заявитель – это объект из таблицы Сотрудники (employee), которая является дочерней от Пользователей и имеет расширенный набор полей.
Поле Заявитель ссылается на таблицу Пользователи (user). Чтобы получить значение атрибута дочерней таблицы Сотрудники, перезагрузите запись в контексте текущей таблицы Задачи. Для этого добавьте символы '$$' перед наименованием вызываемого атрибута.
const current = new SimpleRecord('task');
current.get('161157603117108419'); // Запись задачи, в которой заявитель является объектом в таблице Сотрудники.
ss.info( "VIP: " + current.caller.$$vip) // Информация: VIP: true
ss.info( "Несуществующий атрибут: " + current.caller.$$NonExisting) // Информация: Несуществующий атрибут: null
if (!!current.caller.$$manager) {
ss.info("Начальник: " + current.caller.manager.getDisplayValue()) // Информация: Начальник: Иван Иванов
}