You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 5 Next »
Системные события позволяют создавать задачи для выполнения скрипта на стороне сервера или отправки уведомления в указанный момент времени. Это наиболее распространенные варианты использования системных событий. Вы также можете использовать один регистр событий для обоих перечисленных выше потребностей.
Чтобы использовать системные события в своих задачах, вам необходимо создать запись в реестре событий.
После этого:
- Определите сценарий сервера для системного события (создав запись в словаре действий сценария события (sys_event_script_action))
- Определите правило отправки уведомлений.
- Вы можете комбинировать перечисленные выше параметры, чтобы ваша запись реестра событий могла совместно запускать действия и отправлять уведомления.
Структура событий
Создание события
Чтобы создать событие, используйте методы серверного API ss.eventQueue или ss.eventQueueScheduled. В результате создания добавятся записи в таблице События (sys_event).
Вы не можете создавать, редактировать или удалять записи в таблице События (sys_event) вручную. Их могут читать только пользователи с ролью admin.
Требуемая роль: admin.
Поля формы Событие
Поле | Описание |
---|---|
Наименование | Имя записи, вызываемой из таблицы Реестр событий (sys_event_register). |
Экземпляр | ID записи объекта. При создании события с помощью вызова методов ss.eventQueue или ss.eventQueueScheduled необходимо передать запись объекта. ID объекта будет сохранен в этом поле. Это значение можно будет вызвать в теле Скрипта действия для события (sys_event_script_action): event.instance |
Таблица | Это поле содержит ссылку на таблицу, которая была передана во время создания события. Это поле заполняется автоматически. |
Статус | Статус события:
|
Длительность обработки, мс | Продолжительность обработки системного события (в миллисекундах). |
Пользователь | В этом поле всегда указывается пользователь системы (который также может отображаться в формах как 100000000000000000). Это пользователь, от имени которого должно выполняться событие. Информация об инициаторе события (пользователь, от имени которого создано это событие) записывается в поле Кем создано. |
Процесс стартовал в | Дата и время начала выполнения системного события. Что касается запланированных событий, это поле заполняется значением, переданным параметром метода ss.eventQueueScheduled. Дата и время выполнения скрипта События (sys_event). |
Процесс завершился в | Дата и время окончания выполнения системного события. |
Параметр 1-5 | Строковые параметры, которые можно передать в указанную запись События (sys_event) через серверный API SimpleOne (методы ss.eventQueue и ss.eventQueueScheduled). |
Связанные списки записи события содержат следующие записи:
- Список всех связанных записей из таблицы Реестра событий (sys_event_register).
- Список всех скриптов из таблицы Скрипты действий для событий (sys_event_script_action) ссылается на текущую запись.
Реестр событий
Чтобы создать запись реестра, выполните следующие шаги:
- Перейдите в Системные события → Реестр событий.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти.
Поля формы Реестр событий
Поле | Обязательно | Описание |
---|---|---|
Наименование | Д | Укажите название реестра событий. События (sys_event), вызываемые для этого реестра, будут содержать это значение в поле Наименование. Наименование – это первый параметр метода eventQueue. |
Таблица | Д | Укажите таблицу, содержащую записи, относящиеся к событиям. Если вы собираетесь инициировать отправку электронной почты с помощью этой записи, убедитесь, что значение в поле Таблица в записи Правило уведомления такое же, как в этой записи реестра событий. |
Описание | Н | Добавьте описание реестра событий. |
Отключить логирование скриптов | Н | Установите флажок, чтобы отключить ведение Журнала выполнения скриптов (sys_log_script) при запуске связанного события. |
Связанные списки записи реестра событий содержат следующие записи:
- Список всех скриптов из таблицы Скрипты действий для событий (sys_event_script_action) ссылается на текущую запись.
- Список всех связанных Правил уведомлений активированных текущей записью реестра событий.
Скрипты действий для событий
Чтобы создать скрипт действия для события, выполните следующие шаги:
- Перейдите в Системные события → Скрипты событий.
- Нажмите Создать и заполните поля.
- Нажмите Сохранить или Сохранить и выйти.
Поля формы Скрипты действий для событий
Поле | Обязательно | Описание |
---|---|---|
Активно | Н | Установите флажок, чтобы активировать скрипт. |
Наименование | Д | Укажите название скрипта действия. |
Запись реестра событий | Д | Укажите связанный Реестр событий (sys_event_register). |
Скрипт | Д | Укажите скрипт, который выполняется при запуске события. В скрипте действия для события доступен объект event. Объект является экземпляром класса SimpleRecord и ссылается на запись из таблицы События (sys_event), которая запустила скрипт. Чтобы получить значения полей записи, используйте dot-walking для объекта event. Для этого нужно использовать свойства с именами, соответствующими названиям полей записи. Например: 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) с помощью скрипта действий для события. Пример скрипта (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); |
- No labels