Сутью Workflow является последовательное изменение состояния некоторой сущности (карточка) в соответствии с заданным процессом, вовлекающее пользователей системы и автоматические механизмы. Типичным примером является процесс согласования некоторого документа между сотрудниками в организации.
Рассмотрим структуру подсистемы Workflow платформы CUBA.
Основными элементами структуры являются:
-
Process Design (дизайн процесса) - схема процесса, а также набор связанных с ней скриптов, переменных, параметров оповещения и локализации сообщений. Дизайн является исходным материалом для процесса, который создается или обновляется на основе дизайна в результате развертывания последнего в приложении.
-
Process (процесс) - исполняемое описание бизнес-процесса. Механизм исполнения основан на фреймворке jBPM 4, поэтому основным элементом процесса является описатель графа состояний на языке jPDL. Кроме того, процесс включает в себя описатели форм пользовательского интерфейса, списки пользователей, назначенных для исполнения ролей процесса, локализованные сообщения и т.д.
-
Card (карточка) - сущность модели данных, непосредственно связанная с экземпляром процесса. В большинстве случаев карточкой процесса может являться объект предметной области, состояние которого меняется в соответствии с процессом. Это, например, документ для согласования, или тикет в системе отслеживания дефектов. В случае если такого объекта в предметной области нет, карточкой может являться искусственная сущность, просто отражающая текущее состояние экземпляра процесса.
Можно сказать, что процесс задает тип бизнес-процесса, а карточка представляет собой один экземпляр этого бизнес-процесса.
Процесс задает набор состояний (узлов) и переходов между ними, а также следующие ассоциированные объекты:
-
Activities (действия) - программный код, выполняющийся при переходе в некоторое состояние.
-
Forms (формы) - экраны, позволяющие взаимодействовать с пользователем во время принятия им решений о переходе по процессу.
-
Timers (таймеры) - программный код, автоматически срабатывающий по истечении заданного времени после входа в некоторое состояние.
Во время выполнения процесса возникают объекты Assignments (назначения), сигнализирующие пользователю о том, что он должен предпринять некоторые действия по процессу.
В подсистему Workflow платформы интегрирован визуальный редактор процессов Visual Designer, который позволяет создавать дизайн процессов и разворачивать их прямо в процессе работы приложения. Набор возможных состояний, действий, форм и таймеров, из которых конструируются процессы, закладывается в приложение на этапе разработки.