Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

Tip

Требуемая роль: admin.

Чтобы использовать системные события в своих задачах, вам необходимо создать

  1. Создайте запись в реестре событий.
После этого:
  1. Определите сценарий сервера серверный скрипт для системного события (, создав запись в словаре действий сценария события таблице Скрипты действий для событий (sys_event_script_action)).
  2. Определите правило отправки уведомлений.
  3. Вы можете комбинировать перечисленные выше параметры, чтобы ваша запись реестра событий могла совместно запускать действия и отправлять уведомления.

Структура событий

Image RemovedImage Added

Создание события


Чтобы создать событие, используйте методы серверного API ss.eventQueue или ss.eventQueueScheduled. В результате создания добавятся записи в таблице События (sys_event).

Note

Вы не можете создавать, редактировать или удалять записи в таблице События (sys_event) вручную. Их могут читать только пользователи с ролью admin.

Tip

Требуемая роль: admin.

Поля формы Событие

ПолеОписание
НаименованиеИмя записи, вызываемой из таблицы Реестр событий (sys_event_register).
Экземпляр

ID записи объекта.

При создании события с помощью вызова методов ss.eventQueue или ss.eventQueueScheduled необходимо передать запись объекта. ID объекта будет сохранен в этом поле.

Это значение можно будет вызвать в теле Скрипта действия для события (sys_event_script_action):

event.instance

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

Статус события:

  • Готово
  • Обработка
  • Обработано
  • Ошибка
    • – событие ожидает выполнения. Время выполнения указывается в поле Процесс стартовал в.
    • Обработка – событие выполняется.
    • Обработано – событие обработано. Время обработки указывается в поле Процесс завершился в.
    • Ошибка – обработка события не удалась. Время обработки указывается в поле Процесс завершился в.
    • Отменено – событие не будет обрабатываться после изменения статуса Готов на Отменено.
    Отменено Info
    Длительность обработки, мсПродолжительность обработки системного события (в миллисекундах).
    Пользователь

    Скрипт, указанный в записи Скрипт действия для события, будет выполняться с разрешениями этого пользователя, а также будут учитываться ограничения правил контроля доступа (ACL).

    В этом поле всегда указывается

    системный

    пользователь системы (который также может отображаться в формах как 100000000000000000). Это пользователь, от имени которого должно выполняться событие.

    Информация об инициаторе события (пользователь, от имени которого создано это событие) записывается в поле Кем создано.

    Процесс стартовал в

    Дата и время начала выполнения системного события.

    Что касается

    Для запланированных событий, это поле заполняется значением, переданным параметром метода ss.eventQueueScheduled.

    Дата и время выполнения скрипта События (sys_event).

    Процесс завершился вДата и время окончания выполнения системного события.
    Параметр 1-5

    Строковые параметры, которые можно передать в указанную запись События (sys_event) через серверный API SimpleOne (методы ss.eventQueue и ss.eventQueueScheduled).

    Info

    Максимальная длина переданной строки 4000 символов. Символы, превышающие лимит, обрезаются в записи События. Данные записи, из которой передаются строковые параметры, не меняются.


    Связанные списки записи события содержат следующие записи:

    • Список всех связанных записей из таблицы Реестра событий (sys_event_register).
    • Список всех скриптов из таблицы Скрипты действий для событий (sys_event_script_action) ссылается , которые ссылаются на текущую запись.

    Реестр событий

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

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

    Поля формы Реестр событий

    ПолеОбязательноОписание
    Наименование
    Д
    Да

    Укажите название реестра событий. Оно будет отображаться в поле Наименование связанных События (sys_event)

    , вызываемые для этого реестра, содержат это значение в поле Наименование

    .

    Info

    Наименование – это первый параметр метода eventQueue.


    Таблица
    Д
    Да

    Укажите таблицу, содержащую записи, относящиеся к событиям.

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

    Описание
    Н
    НетДобавьте описание реестра событий.
    Отключить логирование скриптов
    Н
    НетУстановите флажок, чтобы отключить ведение Журнала выполнения скриптов (sys_log_script) при запуске связанного события. 

    Связанные списки записи реестра событий содержат следующие записи:

    • Список всех скриптов из таблицы Скрипты действий для событий (sys_event_script_action) ссылается на текущую запись.
    • Список всех связанных Правил уведомлений активированных текущей записью реестра событий. 

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

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

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

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

    ПолеОбязательноОписание
    Активно
    Н
    НетУстановите флажок, чтобы активировать скрипт.
    Наименование
    Д
    ДаУкажите название скрипта действия. 
    Запись реестра событий
    Д
    ДаУкажите связанный Реестр событий (sys_event_register).
    Скрипт
    Д
    Да

    Укажите скрипт, который выполняется при запуске события.

    Info

    В скрипте действия для события доступен объект event. Объект является экземпляром класса SimpleRecord и ссылается на запись из таблицы События (sys_event), которая запустила скрипт. Чтобы получить значения полей записи, используйте dot-walking для объекта event. Для этого нужно использовать свойства с именами, соответствующими названиям полей записи. Например:

    Code Block
    languagejs
    themeEclipse
    linenumberstrue
    const currentRecord = new SimpleRecord(event.table_id.name);
    currentRecord.get(event.instance);
    if (String(currentRecord.state) !== event.param_1) {
        currentRecord.state = event.param_1;
        currentRecord.update();
    }


    Вы также можете обновить параметры объекта события (Параметр 1-5) с помощью скрипта действий для события.

    Code Block
    languagejs
    themeEclipse
    titleПример скрипта
    linenumberstrue
    (function executeEventScript(event) {
      const lastComment = new SimpleRecord('sys_activity_feed_item');
      lastComment.addQuery('table_id', '156950677111866258'); // itsm_incident
      lastComment.addQuery('record_id', event.instance);
      lastComment.addQuery('type_id.name', '!=', 'history');
      lastComment.orderByDesc('sys_created_at');
      lastComment.setLimit(1);
      lastComment.query();
      event.param_5 = lastComment.next();
    })(event);



    Table of Contents
    absoluteUrltrue
    classfixedPosition
    printablefalse