Содержание

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

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

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

Управление событиями таймера

«Администрирование» → «Управление событиями таймера».

По любой колонке можно эту таблицу отсортировать.

При нажатии на «Добавить», отображается окно

Справочник бизнес операций

При вызове по ссылке «Справочник бизнес операций» из формы «Управление событиями таймера», открывается форма с таблицей:

При нажатии на кнопку «+ Добавить», отображается поле для ввода названия бизнес операции (как при редактировании), но изначально пустое.

После заполнения и сохранения:

  1. операция сохраняется,
  2. ей присваивается новый код – порядковый номер сохранённой бизнес-операции.

Связанные API методы

InsertTimerEvent

Cохраняет в очереди один вызов.

Параметры метода:

SessionIDID сессии пользователя
CallTimeобязательный параметр типа DateTime в котором содержится дата и время, когда необходимо послать сообщение на шину.
ObjectIDGUID объекта, идентификатор, смысл которого будет известен при создании логики обработки, может быть идентификатором объекта дерева, записи справочника, пользователя и т.п. параметр не обязательный, если он не требуется, то вместо него должен допускаться null
OperationCodeобязательный целочисленный параметр с кодом операции. Код должен быть зарегистрирован в справочнике кодов операций, если его там нет, то ошибка «Код операции не зарегистрирован»
Parametersобъект типа JSON, в котором вызывающий может сохранить дополнительные параметры, которые будут необходимы при последующей обработке.

Метод не возвращает ничего если завершение успешно. Если не успешно, то вызывает исключение.

CheckTimerEvent

Проверяет, есть ли заданный вызов в очереди среди будущих и еще не сработавших элементов очереди.

Параметры метода:

SessionIDID сессии пользователя
OperationCodeобязательный целочисленный параметр с кодом операции
ObjectIDGUID объекта.
Не обязательный параметр. Если он передан, ищутся сохраненные в очереди записи с точным совпадением на GUID и код операции. Если параметр null, то необходимо искать в очереди записи только с кодом операции и ObjectID = null.

Возвращать метод должен список, содержащий удовлетворяющие условию поиска элементы очереди с параметрами (CallTime, Parameters), в том числе может быть пустой список, если поиск успешен, если поиск не успешен, то вызывает исключение.

Генерация событий в шину по подписке

При наступлении времени, когда должно быть отправлено в шину событие, в зарегистрированных через метод InsertTimerEvent и не обработанных еще на момент наступления заданного времени, генерируется отправка в шину события типа «Подписка на таймер», с параметрами, сохраненными в нем при подписке:

Подписка отмечается как исполненная.

Генерация событий в шину по регулярному таймеру

При наступлении времени, когда должно быть отправлено событие, согласно таблице настроек, в шину отправляется событие типа «Таймер», которое содержит параметры:

OperationCode

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