Скриптовое действие по событию

Описание настройки

Событие с объектом системы или пользовательское событие может инициировать выполнение одного или нескольких автоматических действий, определенных скриптом.

Скриптовые действия по событиям, настроенные для одного события с объектом определенного класса или типа, выполняются в произвольном порядке после наступления инициирующего события.

Алгоритм выполнения действия по событию

Наступление инициирующего события → Проверка выполнения условий действия по событию → Выполнение скрипта, определяющего действие по событию. Действие по событию выполняется один раз.

Синхронные и асинхронные действия по событию

Действия по событию типа "Скрипт" бывают двух видов: синхронные и асинхронные. Если для одного события настроено несколько действий, то сначала выполняются все синхронные действия, а затем, если событие выполнилось, асинхронные.

Асинхронное действие по событию:

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

    Пример. Действие по событию настроено для события изменение объекта. В системе выполнено изменение объекта. Не зависимо от этого выполняется скриптовое действие по событию, инициированное изменением объекта. Скриптовое действие по событию может быть выполнено или не выполнено.

Синхронное действие по событию:

  • действие по событию выполняется сразу после наступления инициирующего события и проверки условий (если они заданы), на время выполнения скрипта блокируется интерфейс системы;

  • выполнение действия по событию влияет на завершение выполнения события с объектом:

    • если действие по событию выполнено успешно, то инициирующее событие завершается и текущая страница системы автоматически обновляется.

      Исключение: после выполнения синхронных действий по событию "Добавление комментария", "Редактирование комментария", "Добавление файла" комментарии и файлы отображаются после перезагрузки страницы.

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

    Пример. Действие по событию настроено для события изменение объекта. В системе выполняется изменение объекта и скриптовое действие по событию, инициированное изменением объекта. Если скриптовое действие по событию успешно выполнено, изменение объекта будет завершено. Если скриптовое действие по событию не выполнится, объект не будет изменен.

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

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

Место настройки в интерфейсе

Добавление действия по событию выполняется в разделе "Настройка системы" → "Действия по событиям".

Включение или выключение действия по событию, редактирование параметров действия по событию и удаление действия по событию выполняется в списке действий по событию и в карточке действия по событию

Выполнение настройки

На странице "Действия по событиям" нажмите кнопку Добавить действие, на форме добавления действия по событию заполните поля и нажмите кнопку Сохранить.

Общие параметры действия по событию:

  • Название — название действия по событию, используемое в системе.
  • Код — уникальный код действия по событию. Значение заполняется автоматически (транслитерация названия действия по событию при переводе фокуса с поля "Название"), код можно изменить.
  • Описание — дополнительная информация о действии и его назначении.
  • Объекты — классы/типы объектов, относительно которых совершается событие.

    При установке флажка у класса или типа флажки проставляются у всех вложенных типов. Флажки вложенных типов доступны для редактирования.

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

  • Метки — одна или несколько меток, определяющих процессы, в которых используется данное действие по событию.

  • Событие — событие, при наступлении которого будет выполняться действие.

    Перечень доступных событий зависит от выбранного класса/типа объектов.

    Для определенных событий на форме добавления и редактирования могут отображаться дополнительные поля.

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

    Подробное описание инициирующих событий и дополнительных полей приводится в разделе Инициирующие события для выполнения действия по событию

  • Действие — действие: "Скрипт", на форме отобразятся поля "Скрипт" и "Выполнять синхронно".
  • Атрибуты, передаваемые в контекст — укажите атрибуты, которые будут использоваться при выполнении действия по событию. Поле отображается только для асинхронных действий.

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

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

    Поле доступно для всех событий, кроме событий "Редактирование комментария" и "Упоминание в рамках выбранных объектов".

  • Очередь обработки действия — выберите очередь, в которой будет размещено скриптовое действие по событию.

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

Параметры действия типа "Скрипт":

  • Выполнять синхронно:

    • флажок снят (по умолчанию) — действия по событию выполняется асинхронно и не влияет на выполнение события с объектом;
    • флажок установлен — действие по событию выполняется синхронно, влияет на выполнение события с объектом, на время выполнения действия по событию блокируется интерфейс системы.

    Параметр заполняется для всех событий, кроме событий "Наступление времени атрибута", "Поступление письма", "Упоминание в рамках выбранных объектов", "Активация тревоги", "Деактивация тревоги", "Изменение активности тревоги", "Сообщение NDAP".

  • Взаимодействие с внешней системой:

    • флажок снят — действие выполняется в очереди обработки внутренних операций, значение по умолчанию;
    • флажок установлен — действие по событию выполняется в очереди обработки внешних операций.

    Пример внешней операции (взаимодействие с внешней системой), запрос информации из внешних ресурсов (SOAP, REST).

  • Скрипт — введите содержание скрипта, который задает действие, выполняемое при наступлении события.

Результат настройки

На экране отобразится карточка действия по событию. Действие по событию также отобразится в списке на странице "Действия по событиям".

Последующие настройки

Включение действия по событию

Действие по событию создается в состоянии "выключено". Для использования действия по событию его необходимо включить. Затем действие по событию можно исключить из работы путем отключения и снова включить при необходимости его дальнейшего использования. Текущее состояние действия по событию отображается в параметре "Включено", означает включено.

Чтобы включить (выключить) действие по событию, выполните одно их следующих действий:

  • В карточке действия по событию нажмите кнопку Включить или Выключить.
  • В списке действий по событиям нажмите иконку в строке действия по событию.

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

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

Условия выполнения действия по событию

Для действия по событию можно настроить условия выполнения.