Общая концепция

Весь код для работы с workflow, условно можно разделить на три слоя:

Название слоя Описание
1 prepare data Подготовка данных для слоя бизнес слогики.
2 workflow Бизнес логика
3 prepare view data На основе данных полученных в результате работы слоя с бизнес логикой, подготавливаются данные для отображения

Подготовка данных для слоя бизнес слогики

Поскольку код описывающий бизнес логику, не должен быть завязан на окружение в котором он вызвается (т.е. не важно, обрабатывается ли http запрос, произошел ли запуск приложения из консоли, либо был выполнен soap запрос и т.д.). То в данный слой, выносится весь код отвечающий за подготовку данных для запуска workflow

Бизнес логика

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

Подготовка данных для отображения

Результаты работы workflow, используются для подготовки данных в view. На этом этапе происходит создание ViewModel, либо данных для ViewModel

Структуризация кода по слоям

Название слоя Описание
1 prepare data Выноситься в отедьлный метод класса контроллера. (В дальнейшем будет добавлена поддержак серисов)
2 workflow Запуск workflow. Передача данных из слоя 1, и отдача результатов слою 3, происходит автоматически.
3 prepare view data Action контроллера