Созданный дизайн процесса необходимо скомпилировать, то есть создать на основе схемы исполняемый код процесса. Выберите строку с дизайном в окне Processes Design и нажмите . В случае успешной компиляции в колонке Compilation date появится текущее время.
Следующий этап - развертывание процесса. Выберите строку со скомпилированным дизайном и нажмите Create new process и нажмите . В результате происходит следующее:
. В диалоговом окне оставьте отмеченным флажок-
В базе данных приложения создается новый объект
Proc
и соответствующие имеющимся в дизайне ролям объектыProcRole
. -
В подкаталоге
process
конфигурационного каталога среднего слоя приложения создается каталог с именем видаproc_<date_time>
, гдеdate_time
- момент времени развертывания процесса. Данный каталог содержит файлы, необходимые для исполнения процесса: jPDL, описатель форм, пакет локализованных сообщений. -
Файл jPDL отправляется в механизм исполнения jBPM, который создает соответствующие записи в таблицах JBPM4_DEPLOYMENT и JBPM4_DEPLOYPROP. Идентификатором процесса jBPM становится строка, идентичная имени каталога развертывания (
proc_<date_time>
). Данный идентификатор записывается также в атрибутjbpmProcessKey
объектаProc
.
Процесс готов к запуску, однако для целей нашего примера выполним еще одно подготовительное действие - назначим исполнителей по умолчанию для ролей в процессе.
Откройте экран Manager
и Operator
и в списке Default participants добавьте для них исполнителей - предварительно созданных пользователей системы manager
и operator
соответственно. Экран редактирования процесса примет следующий вид:

Кроме явно указанных в дизайне ролей система создала роль CARD_CREATOR
с признаком Assign to creator. Эту роль можно использовать для того, чтобы пользователь, создавший карточку, автоматически становился участником процесса.
В описываемом примере данная роль не используется.
Атрибут Code процесса желательно установить в некоторое осмысленное уникальное значение, так как в программном коде по этому атрибуту
удобно находить процесс для запуска. В данном случае задаем значение book_scanning
.
Как правило, дизайн процесса разрабатывается итеративно, поэтому система предоставляет возможность неоднократно развертывать один и тот же изменяющийся дизайн, обновляя имеющийся процесс. Фактически при развертывании дизайна в существующий процесс происходит следующее:
-
Производится проверка возможности миграции незавершенных экземпляров процесса (другими словами, активных карточек) на новую схему процесса.
-
Создается новый каталог
proc_<date_time>
, гдеdate_time
- текущий момент времени развертывания процесса. -
В механизме исполнения jBPM создается новое описание процесса с новым идентификатором, эквивалентным имени каталога развертывания. Этот новый идентификатор устанавливается в атрибуте
jbpmProcessKey
объектаProc
. -
Производится миграция активных карточек.
Для обновления процесса в соответствии с измененным дизайном достаточно при развертывании последнего снять флажок Create new process и в выпадающем списке Existing process указать процесс, который необходимо обновить.