Очереди событий предназначены для лучшего контроля обработки событий. Как правило, очереди используются при интеграции с внешними системами. Очереди состоят из потоков. Потоки удобно использовать для разделения событий из разных систем или разнородных событий из одной системы. Выполнение событий фиксируется в журнале очередей и журнале потоков.
В очередь могут попадать входящие и исходящие события.
Исходящее событие инициируется внутри системы "Первая Форма". Для этого должен выполниться пакет действий, в котором содержится смарт-действие "Добавить новое событие в очередь" — оно добавляет в указанный поток запись с нужными параметрами.
Входящее событие инициируется внешней системой. Для обработки входящих событий в "Первой Форме" настраиваются кастомные действия и к ним привязываются пакеты действий.
Обработка очереди запускается заданием по таймеру QueueEventsJob.
На вкладке Потоки можно создать потоки и настроить стратегию их обработки.
Список потоков
Параметр |
Описание |
---|---|
Id |
Уникальный Id потока |
Название потока |
Название потока |
Неудачных попыток до полной остановки |
Количество неудачных попыток. После того, как счетчик достигнет этой цифры, обработка потока будет остановлена. |
Поведение в случае ошибки |
Поведение в случае ошибки. Возможные значения: "Пропускать", "Останавливать". Если выбрано значение "Пропускать" в случае возникновения ошибки в очереди, обработка остальных событий не прекращается. Счетчик неудачных попыток при этом увеличен не будет. Если выбрано значение "Останавливать" в случае возникновения ошибки при обработке одного из событий обработка остальных событий прекращается и увеличивается счетчик неудачных попыток. Администратор должен удалить ошибочное событие из очереди или исправить ошибку (объект, над которым выполняется действие) и запустить выполнение события вручную. |
Есть ошибки |
Наличие флажка означает, что в потоке есть ошибки обработки очереди
|
На вкладке Произвольные события можно создать события, к которым потом будут привязываться смарт-пакеты (по аналогии с произвольными событиями в категориях).
Список кастомных событий
Параметр |
Описание |
---|---|
Id |
Уникальный Id события |
Название события |
Название события |
Описание |
Описание действия в свободной форме |
На вкладке Привязки действий к событиям можно привязать смарт-пакет к системному или кастомному событию.
Список привязок пакетов действий к событиям
Параметр |
Описание |
---|---|
Название события |
Событие, при наступлении которого вызывается пакет действий |
Smart фильтр |
Условия, при которых пакет действий выполняется. Если смарт-фильтр не задан, то условия не проверяются, и пакет действий выполняется всегда |
Пакет действий |
Пакет, который выполняется при наступлении события |
Системные события, к которым можно привязать пакеты действий
Событие |
Описание |
---|---|
ChangeEdocumentStatus |
Изменился статус электронного документа в системе Диадок |
ReceiveNewEdocument |
Получен новый электронный документ через систему Диадок |
Пример использования очереди событий
Пример использования очереди исходящих событий
Пример: Массовая рассылка сообщений, инициируемая внутри системы "Первая Форма".
Порядок действий:
1. На вкладке Потоки создайте поток по кнопке + и настройте стратегию его обработки.
Окно создания потока
2. На вкладке Кастомные события создайте событие, к которому будет привязан смарт-пакет
Поля создания кастомного события
3. На вкладке Привязки действий к событиям привяжите смарт-пакет к кастомному событию
Пример привязки действия к кастомному событию
4. Создайте пакет действий, в котором содержится смарт-действие "Добавить новое событие в очередь".
Пример создания смарт-днйствия "Добавить новое событие в очередь"
Пример использования очереди входящих событий
Пример: Изменение статуса документа в системе Диадок.
Порядок действий:
1. На вкладке Привязки действий к событиям привяжите действие к системному событию ChangeEdocumentStatus.
2. В пакете действий настройте смарт-действие "Выполнить смарт-скрипт".
Пример привязки действия к системному событию ChangeEdocumentStatus
В скрипте нужно проверить сообщение, присылаемое Диадоком, и в зависимости от него перевести задачу в нужный статус.