Глава 1. Обзор подсистемы Workflow

Сутью Workflow является последовательное изменение состояния некоторой сущности (карточка) в соответствии с заданным процессом, вовлекающее пользователей системы и автоматические механизмы. Типичным примером является процесс согласования некоторого документа между сотрудниками в организации.

Рассмотрим структуру подсистемы Workflow платформы CUBA.

Рисунок 1.1. Структура подсистемы Workflow

Структура подсистемы Workflow

Основными элементами структуры являются:

  • Process Design (дизайн процесса) - схема процесса, а также набор связанных с ней скриптов, переменных, параметров оповещения и локализации сообщений. Дизайн является исходным материалом для процесса, который создается или обновляется на основе дизайна в результате развертывания последнего в приложении.

  • Process (процесс) - исполняемое описание бизнес-процесса. Механизм исполнения основан на фреймворке jBPM 4, поэтому основным элементом процесса является описатель графа состояний на языке jPDL. Кроме того, процесс включает в себя описатели форм пользовательского интерфейса, списки пользователей, назначенных для исполнения ролей процесса, локализованные сообщения и т.д.

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

Можно сказать, что процесс задает тип бизнес-процесса, а карточка представляет собой один экземпляр этого бизнес-процесса.

Процесс задает набор состояний (узлов) и переходов между ними, а также следующие ассоциированные объекты:

  • Activities (действия) - программный код, выполняющийся при переходе в некоторое состояние.

  • Forms (формы) - экраны, позволяющие взаимодействовать с пользователем во время принятия им решений о переходе по процессу.

  • Timers (таймеры) - программный код, автоматически срабатывающий по истечении заданного времени после входа в некоторое состояние.

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

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