Введение в отладку экземпляров бизнес-процесса¶
С помощью редактора экземпляра бизнес-процесса (см. раздел Редактирование экземпляра процесса) можно также производить отладку процесса и возобновление выполнения асинхронных операций.
Текущие механизмы отладки позволяют производить следующие операции над экземпляром процесса:
-
Изменить, завершить или удалить задание, созданное действием процесса
-
Отправить сигнал на обработку в подпроцесс, созданный действием процесса
-
Повторить отправку сигнала, при обработке которого произошла ошибка
-
Возобновить работу процесса в случае возникновения ошибки при обработке асинхронной операции
Отправка произвольного сигнала¶
Редактор экземпляра процесса позволяет отправить произвольный сигнал на любой узел процесса (как активный, так и не активный). Данный функционал удобно использовать, когда в случае ошибок настроек шаблона экземпляр процесса перешел в некорректную стадию (например, не вызвался узел из-за неверных настроек перехода в действии) или для отладки процесса при его разработке.
Чтобы отправить сигнал нужно открыть контекстное меню любого узла и выбрать опцию Отправить сигнал.
Появится окно с редактором отправляемого сигнала (более подробно о редакторе сигнала см. в разделе
Если при отправке сигнала возникнет ошибка, то система выведет сообщение об ошибке. Если сигнал обработается успешно, то процесс обновится.
Управление заданием¶
Для активных узлов, для которых есть отправленные задания, есть возможность отправить сигнал, сформированный непосредственно для изменения этих заданий.
Есть два способа формирования подобного сигнала:
-
Открыть контекстное меню активного узла с отправленными заданиями и выбрать одну из опций: Отправить сигнал завершения заданий, Отправить сигнал обновления заданий или Отправить сигнал удаления заданий.
-
Открыть редактор экземпляра узла, в таблице Задания выбрать одну или несколько строк с заданиями и нажать одну из кнопок: Отправить сигнал завершения заданий, Отправить сигнал обновления заданий или Отправить сигнал удаления заданий.
Основная разница между первым и вторым подходами в том, что в первом произойдет управление всеми заданиями всех экземпляров узла для выбранного узла, а во втором произойдет управление только для выбранных заданий.
Есть три типа воздействия на задание, каждое из которых вызывается соответствующей кнопкой или вариантом контекстного меню:
-
Завершение заданий - завершает выбранные задания с указанным в сигнале вариантом завершения. При выборе данного варианта завершения система предложит сразу выбрать вариант завершения заданий и по нему сформирует сигнал и откроет редактор сигнала.
-
Обновление заданий - производит обновление данных (исполнитель, срок завершения, текст задания) для выбранных заданий. После нажатия на кнопку система сформирует макет сигнала и откроет редактор сигнала, в котором есть дополнительная кнопка Выбрать роль для выбора новой роли исполнителя из представления системы.
У заданий обновятся только те поля, которые были заполнены в сигнале (Date - для даты завершения, Digest - для текста задания, Role - для роли исполнителя). -
Удаление заданий - удаляет выбранные задания. После нажатия на кнопку система сформирует макет сигнала и откроет редактор сигнала.
Управление подпроцессом¶
Для активных узлов, для которых есть отправленные подпроцессы, есть возможность отправить сигнал сформированный непосредственно для управления этим подпроцессом.
Есть два способа формирования подобного сигнала:
-
Открыть контекстное меню активного узла с отправленными подпроцессами и выбрать опцию Отправить сигнал управления подпроцессом.
-
Открыть редактор экземпляра узла, в таблице Подпроцессы выбрать одну или несколько строк с подпроцессами и нажать на кнопку Отправить сигнал управления подпроцессом.
Основная разница между первым и вторым подходами в том, что в первом произойдет управление всеми подпроцессами всех экземпляров узла для выбранного узла, а во втором произойдет управление только для выбранных подпроцессов.
После нажатия на кнопку или опцию контекстного меню, откроется окно для выбора сигнала для отправки в подпроцесс, а после редактор редактор сигнала с сформированным макетом сигнала. В нем можно поменять тип сигнала для управления подпроцессом на кастомный в поле SubprocessControlSignal.
Повторная отправка сигналов после ошибки¶
В случае, если при обработке процесса возникла ошибка, она отображается в редакторе экземпляра процесса в таблице ошибки.
С помощью кнопки Повторить отправку сигнала можно отправить тот же сигнал на экземпляр узла, при отправке которого произошла ошибка. Отправка производится из-под сессии текущего сотрудника.
Важно понимать, что повторная отправка сигнала не делает всех действий, которые делает сотрудник (например при завершении задания заполняет поля задания).
При выборе строки с ошибкой и нажатии на кнопку Повторить отправку сигнала появляется окно с редактором сигнала, в котором преднастроены тип и параметры сигнала, при отправке которых возникла ошибка. Если сигнал обрабатывался синхронно, то повторный вызов также будет синхронным и сразу вернется результат обработки. Если вызов был асинхронным, то повторная отправка также отправит сигнал асинхронно.
Возобновление процесса¶
При возникновении ошибки при асинхронной обработке процесса, помимо повторной отправки сигнала, в системе есть возможность возобновления асинхронной обработки процесса.
Возобновить работу процесса после ошибки при асинхронной обработке можно двумя способами:
-
На панели с кнопками при редактировании экземпляра процесса нажать на кнопку Возобновить процесс. Данная кнопка доступна в случае, когда в процессе есть ошибки, которые можно возобновить.
-
В представлении Бизнес-процессы с ошибками на левой панели есть тайл Возобновить выбранные процессы. Это позволяет возобновить после возникновения ошибки сразу несколько экземпляров процесса. В данном представлении отображаются экземпляры процесса со всеми ошибками (в том числе и при синхронной обработке, которые нельзя возобновить таким образом), поэтому при использовании данного функционала возобновляются обработка только тех процессов, у которых в колонке Возобновимый стоит значение Да.
При возобновлении процесса ошибка, из-за которой идет возобновление, помечается как не активная и больше не отображается в списке ошибок в редакторе экземпляра процесса или в представлении с ошибками.
Редактор сигнала¶
Редактор сигнала представляет из себя редактор параметров с возможностью указания типа сигнала при отправке.
Для некоторых действий в редакторе сигнала предусмотрены дополнительные кнопки, которые позволяют более просто заполнять параметры отправляемого сигнала (например кнопка Выбрать роль при формировании сигнала для обновления задания).
При нажатии на кнопку Отправить сигнал производится отправка сигнала с типом и параметрами, указанными в редакторе.