Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс

Люди vs Машины: как не пропустить сообщение в BPNM 2.0

BA_Deep_12.11_site-5020-c8026d.png

Как известно бизнес-аналитикам, реальное исполнение бизнес-процессов в компании штука сложная, ведь процессы взаимодействуют между собой. Для описания таких взаимодействий в BPMN 2.0 часто применяются сообщения. Типичное описание такого взаимодействия выглядит так: БА_1-20219-f1e525.jpg«Процесс 1» шлёт сообщение «Процессу 2», при этом «Процесс 2» не пойдёт дальше «Задачи 23», пока не получит сообщение. Но что будет, если «Процесс 1» отправит сообщение раньше, чем «Процесс 2» будет готов его получить? Например, будет находиться на этапе выполнения «Задачи 22».

Нотация BPMN 2.0 прямого ответа на этот вопрос не даёт, оставляя его решение на откуп разработчикам процессных движков. А у разработчиков вариантов немного: хранить сообщение или не хранить.

Если хранить, то последовательность выполнения задач во взаимодействующих процессах неважна — сообщение из «Процесса 1» дождётся «своего часа» в «Процессе 2». А если не хранить, то сообщение, пришедшее раньше, просто потеряется и экземпляр «Процесса 2» навсегда зависнет на «Задаче 23».

Если мы хотим изобразить процесс, который будет точно исполним на любом BPMS, то можно самостоятельно организовать хранилище информации о сообщениях в базе данных и периодически (желательно автоматически) узнавать, не пришло ли данное сообщение. БА_2-20219-d55439.jpgСобственно, именно таким способом устроена обработка прерываний процессором, когда нам кажется, что компьютер мгновенно реагирует на мышь или клавиатуру (впрочем, не всегда мгновенно).

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

Во-первых, он более читаем, а во-вторых (и это главное отличие людей от компьютеров) — любой вменяемый человек обязательно проверит, не пришло ли сообщение раньше: получено ли письмо, пришла ли машина, поступал ли товар и т. п. Ему даже в голову не придёт остановить процесс, просто потому что письмо, на которое он должен ответить, пришло раньше, чем он закончил читать предыдущее.

Всем адекватных исполнителей бизнес-процесов и не забывайте оставлять комментарии!

Автор
0 комментариев
Для комментирования необходимо авторизоваться