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

Инициирующее событие указывается при настройке каждого действия по событию.

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

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

События, инициирующие действие по событию

Набор событий зависит от класса /типа объектов, для которого настраивается действие по событию.

События для всех классов

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

    Примеры настройки см. Пользовательские действия и элементы управления (кнопки, иконки, ссылки).

  • Добавление комментария к объекту.

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

  • Добавление объекта — создание нового объекта с произвольными характеристиками, кроме класса "Компания" (root).
  • Изменение объекта — изменение значения любого невычислимого атрибута объекта пользователем через форму редактирования.

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

    Добавление и удаление файла в списке файлов не инициирует действия по событию.

    Если для класса/типа объектов настроено действие при смене статуса, которое изменяет атрибут объекта (в том числе статус), и настроено действие по событию с типом события "Изменение объекта", то действие по событию выполнится один раз, при этом не важно, сколько атрибутов изменилось у объекта действием при смене статуса.

  • Наступление времени атрибута — наступление даты или даты/времени, указанных в атрибуте объекта или вычисленных в обратном счетчике, см. Событие "Наступление времени атрибута"
  • Открытие формы редактирования — открытие формы смены типа, полноэкранной формы редактирования, формы редактирования контента, быстрой формы редактирования, формы редактирования атрибута объекта в списке, формы добавления связи/ расширенной формы добавления связи, формы перемещения.

    Особенности:

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

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

Для объектов с жизненным циклом и сменой ответственного

  • Смена ответственного — изменение значения атрибута "Ответственный" (responsible).

  • Смена статуса — изменение значения атрибута "Статус" (state).

  • Открытие формы редактирования — открытие формы смены статуса, смены ответственного.

    При редактировании через массовые формы события инициируются для каждого объекта, для которого меняется статус или ответственный.

Если для класса/типа объектов настроено действие при смене статуса, которое изменяет статус, и настроено действие по событию с типом события "Смена статуса", то действие по событию выполнится один раз, при этом не важно, сколько статусов изменилось у объекта действием при смене статуса.

Для класса "Сотрудник"

  • Вход в систему — вход пользователя в систему.

Для класса "Запрос"

  • Изменение признака массовости.
  • Связь с массовым объектом.
  • Связь с подчиненным объектом.
  • Поступление письма — к существующему запросу прикреплено письмо.
  • Открытие формы редактирования — открытие формы массовости, формы изменения привязки.

Не связанное с объектами

  • Поступление сообщения в очередь — инициирует выполнение скрипта для обработки сообщения из пользовательской очереди, указанной в параметре "Очередь обработки действия". Событие доступно для выбора, только если поле "Объекты" пусто.

    Логика работы: api-метод api.mq.send отправляет сообщение в пользовательскую очередь → срабатывает действие по событию на поступление сообщения в очередь → поступившее сообщение обрабатывается в очереди согласно скрипту действия по событию (см. api.mq Отправка сообщения в пользовательскую очередь).

    Особенности формы добавления действия по событию при выборе события "Поступление сообщения в очередь":

    • Поле Объекты скрывается.
    • В поле Очередь обработки действия доступны только пользовательские очереди с типом обрабатываемых действий "Скрипт" см. Очереди обработки действий по событиям.
    • В поле Действия выбрано значение "Скрипт".
    • Поля Выполнять синхронно и Взаимодействие с внешней системой недоступны для редактирования.

    Особенности карточки действия по событию "Поступление сообщения в очередь":

    • На карточке отсутствуют блоки "Параметры" и "Условия выполнения действия."

    Действие по событию "Поступление сообщения в очередь" всегда обрабатывается асинхронно.

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

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

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

Поле Выполнять действие при изменении атрибутов отображается для типов событий:

  • Добавление объекта;
  • Изменение объекта;
  • Прикрепление файла к объекту;
  • Смена ответственного;
  • Смена статуса;
  • Изменение признака массовости;
  • Связь с массовым объектом;
  • Связь с подчиненными объектами.

Поле Выполнять действие при изменении атрибутов комментария отображается для типов событий:

  • Добавление комментария к объекту;
  • Редактирование комментария.

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

В дереве выбора не отображаются вычислимые атрибуты и атрибуты связанного объекта.

Структура дерева выбора атрибутов:

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

При выборе атрибутов класса проверка на изменение атрибута производится у всех выбранных типов объектов.

Особенности работы агрегирующего атрибута в поле Выполнять действие при изменении атрибутов:

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