Концепции BPM

В этом разделе кратко описаны ключевые концепции, необходимые для понимания работы Jmix BPM и движка Flowable.

Жизненный цикл процесса

Каждый процесс проходит несколько стадий от создания модели до завершения. Вот как это происходит шаг за шагом:

proccess lifecycle
  1. Моделирование

    Жизненный цикл начинается с этапа моделирования, на котором разрабатываются и определяются bpm:process-artifacts.adoc#process-models с использованием нотации BPMN 2.0.

    Кроме создания модели, данный этап обычно включает дополнительные шаги для создания полностью исполняемого процесса в приложении Jmix:

    • Реализация бизнес-логики

    • Создание форм пользовательского интерфейса

    • Определение таблиц решений (Decision Tables)

    • Настройка слушателей событий и обработка ошибок

  2. Развертывание

    Готовые модели процессов могут быть развернуты на движке процессов. На этом шаге происходит упаковка модели и связанных ресурсов в артефакт развертывания на основе которого будут создаваться экземпляры процессов.

  3. Создание экземпляра

    После того как процесс развернут, его можно запустить. В результате запуска создается экземпляр процесса, который получает уникальный идентификатор и инициализируется необходимыми данными.

  4. Выполнение

    По мере выполнения экземпляр процесса проходит через разные состояния, которые контролирует движок. Движок управляет потоком работы на основе модели процесса, перемещаясь между задачами, событиями и шлюзами. Во время выполнения движок может создавать артефакты выполнения для управления параллельными путями, многократными действиями или подпроцессами, чтобы все элементы процесса были правильно организованы.

  5. Управление состоянием

    Во время выполнения экземпляр процесса может пе из одного состояние в другое. Например, из состояния выполнения он может перейти в состояние приостановки. Движок управляет состояниями, позволяя приостанавливать или возобновлять процессы по мере необходимости. Эта возможность касается не только экземпляров процессов, но и определений процессов, что позволяет приостанавливать и активировать их по мере необходимости.

  6. Завершение

    Экземпляр процесса считается завершенным, когда все задачи выполнены, и в процессе не осталось активных элементов. В этот момент движок завершает выполнение, и экземпляр переходит в конечное состояние. Все связанные данные могут быть извлечены для отчетности или аудита.

    В некоторых случаях экземпляр процесса может быть завершен преждевременно из-за ошибок или по требованию пользователя. Движок предоставляет механизмы для корректного завершения, обеспечивая сохранение согласованности состояния процесса.
  7. Запись в историю

    Flowable ведет историю экземпляров процессов, фиксируя все важные события. Эти исторические данные ценны для аудита, отчетности и анализа производительности процессов. Они позволяют организациям пересматривать прошлые выполнения и получать информацию об эффективности процессов.

Токены

Токен — это ключевое понятие в BPMN, которое помогает понять и определить поведение процесса во время его выполнения. Токен представляет текущее состояние процесса и служит средством визуализации его поведения в реальном времени.

Токены перемещаются по определению процесса, переходя от одной активности к другой в соответствии с логикой процесса. По мере движения токена он запускает выполнение задач, шлюзов, событий и других элементов, определенных в модели процесса. На параллельных шлюзах токен может разделяться на несколько токенов, а в других точках процесса эти токены могут объединяться. Достижение токеном конечного события означает завершение экземпляра процесса. Важно отметить, что токены не могут перемещаться по потокам сообщений; только сообщения могут проходить по этим потокам.

Каждый экземпляр процесса имеет свой токен, который отслеживает его состояние. Таким образом несколько экземпляров процесса могут работать одновременно, и каждый из них будет иметь свой токен.

token simulation 1

NOTE: Хотя вы можете наблюдать за токенами, вы не сможете с ними взаимодействовать напрямую, так как это может привести к непредсказуемому поведению и нарушить процесс. Лучше управлять поведением токенов через модель и другие инструменты, предоставляемые API Flowable.

Бизнес-ключ

Бизнес-ключ — это способ идентификации экземпляра процесса на основе специфических для бизнеса критериев, а не только по системному идентификатору. Он позволяет связать экземпляр процесса с конкретной бизнес-единицей или контекстом.

Примером бизнес-ключей могут служить:

  • Номер заказа

  • Идентификатор сотрудника

  • Номер контракта

  • Адрес

Когда у экземпляра процесса есть бизнес-ключ, пользователям проще понять бизнес-контекст.

Бизнес-ключ можно определить в форме ввода данных для стартового события. Подробности приведены в инструкции по настройке такой формы. Также, можно задать бизнес-ключ для процессной формы как показано здесь. Кроме того, вы можете установить или обновить бизнес-ключ программно через API. Пример можно найти здесь.

Контекст процесса

Контекст процесса — это совокупность данных, используемых на протяжении выполнения процесса. Он включает в себя всю важную информацию, такую как переменные процесса, состояние выполнения, роли пользователей и любые другие данные, необходимые для выполнения. Контекст служит основой для принятия решений и операционного потока в процессе, обеспечивая доступ всех компонентов к необходимой информации для корректной работы.

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