Документооборот КОРП, ДГУ
30.03.2016
События в процессах, или Как сделать событийно управляемый процесс
Общее описание
При автоматизации процессов нередко встречается ситуация, когда требуется запустить процесс или действие комплексного процесса по какому-либо событию. Например, после согласования договора для его исполнения необходимо дождаться оплаты. Но договор может быть еще не оплачен.
Самый простой способ автоматизации ожидания оплаты договора – это создание задачи "ожидание оплаты договора" одному из сотрудников, который бы периодически проверял факт оплаты договора. Если договор оплачен, сотрудник должен выполнить задачу, и тем самым продвинуть процесс обработки договора дальше по марштуру. Но у данного подхода есть недостаток – задача направляется сотруднику, отображается в его списках, мешается и влияет на его исполнительскую дисциплину. И сотрудник на это не может повлиять.
Но данную проблему можно решить при помощи событийно управляемых процессов.
Сущности "события в процессах" в программе нет, но ее несложно ввести и использовать при помощи типовой механики продвижения процессов и механизма бизнес-событий.
Как настроить событийно управляемый процесс
Рекомендована следующая последовательность действий:
- Спроектировать комплексный процесс так, как он бы выполнялся без события ожидания. Например, создать комплексный процесс с двумя действиями: согласование и исполнение договора.
- В местах, где требуется ожидания какого-либо события (например, ожидание оплаты договора перед исполнением договора), добавить процесс исполнение. Назвать процесс можно, например, "Ожидание оплаты договора".
- Адресовать процесс пользователю, созданному специально для этой цели. Он может называться Робот ДО. Важно: используйте именно пользователя, а не роль. Это связано с тем, что задачи в программе должны выполняться только пользователями. При несоблюдении этого условия исполнителем задачи окажется пользователь <Не указан>.
- Привязать старт процесса к соответствующим действиям, которые инициируют ожидание. Это может быть завершение процесса согласования договора или процесс исполнение, в рамках которого один из сотрудников отправляет корреспонденту подписанный договор и счет на оплату.
- Привязать старт следующих действий (например, которые должны выполняться после оплаты договора) к выполнению процесса исполнения, добавленного в действии 2.
- Добавить вид бизнес-события, соответствующий детектор и обработчик бизнес-события (Настройка и администрирование – Бизнес-события).
- В коде детектора следует анализировать условие выполнения задачи (например, пришла ли оплата по договору, который прикреплен в качестве предмета). Если условие выполняется, тогда регистрировать бизнес-событие.
- В код обработчика бизнес-события следует поместить код, который будет выполнять задачу по зарегистрированному бизнес-событию.
- Прежде чем добавлять код в детектор и обработчик бизнес-событий, его следует проверить на работоспособность во внешней обработке.
Как работает событийно управляемый процесс
- Заводится договор (договор подряда на строительство) и запускается комплексный процесс по обработке договора (Обработка строительного договора).
- Сотрудники согласуют договор.
- После этого в рамках комплексного процесса запускается процесс ожидания оплаты договора (ожидание события).
- По факту оплаты договора (при выставлении соответствующей отметки в карточке договора) комплексный процесс переходит к действию исполнения договора.