Концепции BPM
В этом разделе кратко описаны ключевые концепции, необходимые для понимания работы Jmix BPM и движка Flowable.
Жизненный цикл процесса
Каждый процесс проходит несколько стадий от создания модели до завершения. Вот как это происходит шаг за шагом:
-
Моделирование
Жизненный цикл начинается с этапа моделирования, на котором разрабатываются и определяются bpm:process-artifacts.adoc#process-models с использованием нотации BPMN 2.0.
Кроме создания модели, данный этап обычно включает дополнительные шаги для создания полностью исполняемого процесса в приложении Jmix:
-
Реализация бизнес-логики
-
Создание форм пользовательского интерфейса
-
Определение таблиц решений (Decision Tables)
-
Настройка слушателей событий и обработка ошибок
-
-
Развертывание
Готовые модели процессов могут быть развернуты на движке процессов. На этом шаге происходит упаковка модели и связанных ресурсов в артефакт развертывания на основе которого будут создаваться экземпляры процессов.
-
Создание экземпляра
После того как процесс развернут, его можно запустить. В результате запуска создается экземпляр процесса, который получает уникальный идентификатор и инициализируется необходимыми данными.
-
Выполнение
По мере выполнения экземпляр процесса проходит через разные состояния, которые контролирует движок. Движок управляет потоком работы на основе модели процесса, перемещаясь между задачами, событиями и шлюзами. Во время выполнения движок может создавать артефакты выполнения для управления параллельными путями, многократными действиями или подпроцессами, чтобы все элементы процесса были правильно организованы.
-
Управление состоянием
Во время выполнения экземпляр процесса может переходить из одного состояние в другое. Например, из состояния выполнения он может перейти в состояние приостановки. Движок управляет состояниями, позволяя приостанавливать или возобновлять процессы по мере необходимости. Эта возможность касается не только экземпляров процессов, но и определений процессов, что позволяет приостанавливать и активировать их по мере необходимости.
-
Завершение
Экземпляр процесса считается завершенным, когда все задачи выполнены, и в процессе не осталось активных элементов. В этот момент движок завершает выполнение, и экземпляр переходит в конечное состояние. Все связанные данные могут быть извлечены для отчетности или аудита.
В некоторых случаях экземпляр процесса может быть завершен преждевременно из-за ошибок или по требованию пользователя. Движок предоставляет механизмы для корректного завершения, обеспечивая сохранение согласованности состояния процесса. -
Запись в историю
Flowable ведет историю экземпляров процессов, фиксируя все важные события. Эти исторические данные ценны для аудита, отчетности и анализа производительности процессов. Они позволяют организациям пересматривать прошлые выполнения и получать информацию об эффективности процессов.
Токены
Токен — это ключевое понятие в BPMN, которое помогает понять и определить поведение процесса во время его выполнения. Токен представляет текущее состояние процесса и служит средством визуализации его поведения в реальном времени.
Токены перемещаются по определению процесса, переходя от одной активности к другой в соответствии с логикой процесса. По мере движения токена он запускает выполнение задач, шлюзов, событий и других элементов, определенных в модели процесса. На параллельных шлюзах токен может разделяться на несколько токенов, а в других точках процесса эти токены могут объединяться. Достижение токеном конечного события означает завершение экземпляра процесса. Важно отметить, что токены не могут перемещаться по потокам сообщений; только сообщения могут проходить по этим потокам.
Каждый экземпляр процесса имеет свой токен, который отслеживает его состояние. Таким образом несколько экземпляров процесса могут работать одновременно, и каждый из них будет иметь свой токен.
NOTE: Хотя вы можете наблюдать за токенами, вы не сможете с ними взаимодействовать напрямую, так как это может привести к непредсказуемому поведению и нарушить процесс. Лучше управлять поведением токенов через модель и другие инструменты, предоставляемые API Flowable.
Бизнес-ключ
Бизнес-ключ — это бизнес-специфичный идентификатор экземпляра процесса. Он связывает экземпляр с соответствующей бизнес-сущностью или контекстом, предоставляя более понятную альтернативу системно-сгенерированному идентификатору экземпляра процесса.
Примером бизнес-ключей могут служить:
-
Номер заказа
-
Идентификатор сотрудника
-
Номер контракта
-
Адрес
Добавление бизнес-ключа упрощает определение контекста процесса пользователями. Его можно задать тремя способами:
Контекст процесса
Контекст процесса — это совокупность данных, используемых на протяжении выполнения процесса. Он включает в себя всю важную информацию, такую как переменные процесса, состояние выполнения, роли пользователей и любые другие данные, необходимые для выполнения. Контекст служит основой для принятия решений и операционного потока в процессе, обеспечивая доступ всех компонентов к необходимой информации для корректной работы.
Важно отметить, что контекст процесса представляет собой абстрактную модель, которая не существует в виде отдельного объекта в системе. Движок процесса не создает отдельный объект или класс для контекста процесса.