Вопрос

Логирование работы процессов с помощью бизнесс процессов

Можно ли с помощью бизнесс процессов отслеживать изменения в таблицах SysProcessLog и SysProcessElementLog ?

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

 

Цель - отслеживать процессы которые упали в  Error, например WebService упал по timeout или не удалось добавить запись в таблицу...
По таким события хочется хотя бы cделать отправку сообщений, чтоб оперативно реагировать. 

Нравится

6 комментариев

Думаю дело не в том что это Sys таблицы, а в том что запись производиться через Insert класс, который не отправляет сообщения о том что запись была добавлена, на которую и срабатывает сигнал.

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

Добрый день!
Дело в том, что стартовые сигналы работают только с событиями проходящими слой Entity.
Используя базовый функционал Вы можете настроить дашборды для отслеживания процессов в ошибке.
https://academy.terrasoft.ru/docs/user/kastomizacija_no_code/analitika

Sorotiuk Anna,

Это же будет чисто визуальное отображение, а смысл в нотификациях сразу по событию

Мы сделали регулярную отсылку администратору статуса процессов (раз в сутки). Таким образом, если администратор не получил мейл, то это тоже проблема.
 

В критически важные процессы добавляем обработку ошибок

Владимир Соколов,

Раз в сутки - слишком долго. В нашем случае надо сразу понимать, что процесс не отработал.
Можно подробней про обработку ошибок? Например, элемент процесса web-service упал по timeout, как это можно обработать из процесса?
Или элемент процесса "Добавить запись", упал в ошибку (была пара ситуаций когда запись не создалась, на входе все переменные были заполнены (before), а на выход (after) все переменные получили значение null ), как обработать такое? 

Для элементов процесса нет выхода "Error", а было бы неплохо иметь такую возможность.

Пока решил таким образом:
1) В базе создан триггер на таблицу SysProcessLog.

2) При изменении поля StasusId на значение соответсвующее статусу "Error", срабатывает триггер и делает запись в таблицу UsrErrorLog.

3) Записи созданные в таблице UsrErrorLog обрабатываются БП, который отправляет нотификации по выбранному каналу связи.

Показать все комментарии