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

Скрипты уведомлений

Скрипты уведомлений позволяют динамически менять параметры исходящих электронных писем при помощи класса SimpleEmailOutbound.

Вы можете использовать один и тот же скрипт в нескольких почтовых уведомлениях и шаблонах уведомлений. Для этого добавьте тег встроенного скрипта ${script:script_name} в правило уведомлений или в связанный шаблон уведомления. Встроенный скрипт можно использовать в следующих полях:

  • Тема
  • Сообщение
  • Сообщение (HTML)
  • Другое

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

  1. Перейдите в Системные уведомления → Скрипты уведомлений.
  2. Нажмите Создать и заполните все поля.
  3. Нажмите Сохранить или Сохранить и выйти.

Поля формы Скрипты уведомлений

ПолеОбязательноОписание
НаименованиеДаНазвание скрипта, которое будет использоваться в уведомлениях и шаблонах. Название должно быть указано без пробелов.
СкриптДаВведите скрипт с помощью серверного API SimpleOne. Используйте классы SimpleRecord Server-Side, SimpleEmailOutbound и SimpleTemplatePrinter.
В скрипте уведомления доступны четыре объекта:
  • current – объект класса SimpleRecord, на который сработало уведомление.
  • template – объект класса SimpleTemplatePrinter.
  • email – объект класса SimpleEmailOutbound.
  • event – объект класса SimpleRecord.

Чтобы получить значения объектов current и event, используйте точечную нотацию для обращения к свойствам, соответствующим названиям колонок текущей таблицы и таблицы События (sys_event):

Example
(function runNotificationScript(
/* SimpleRecord */ current,
/* SimpleTemplatePrinter */ template,
/* SimpleEmailOutbound */ email,
/* SimpleRecord */ event
) {

email.setSubject(current.number + ' - был добавлен дополнительный комментарий');
email.setBody(`Комментарий от ${event.sys_created_by.display_name}: "${event.param_2}"`);

if (current.days_count > 3 && !current.requester.vip) {
email.addAddressCc(current.requester.email, current.requester.display_name);
}

})(current, template, email, event);

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

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

Example

(function runNotificationScript(
/* SimpleRecord */ current,
/* SimpleTemplatePrinter */ template,
/* SimpleEmailOutbound */ email,
/* SimpleRecord */ event
) {

email.setSubject('spanish subject');
email.setBody(`spanish body`);
email.addAdress(`ivan.ivanov@gmail.com`);
})(current, template, email, event);

внимание

Для того чтобы определить, где используются скрипты уведомлений, при помощи конструктора условий отфильтруйте записи в таблице Записи VCS (sys_vcs_record) по следующим условиям:

  1. Перейдите в Конфигурация → Записи VCS.
  2. Нажмите на иконку воронки наверху, чтобы открыть конструктор условий.
  3. Создайте фильтр со следующими условиями:
    • Копия записи (JSON) СОДЕРЖИТ script:название_скрипта. Например, script:stop_notifications.
    • Наименование таблицы НЕ РАВНО sys_notification_script
    • Актуальная РАВНО Да.