Сервис для работы с workflow

Сервис \OldTown\Workflow\ZF2\ServiceEngine\Workflow предоставляет базовый функционал для работы с workflow.

Получение сервиса

Для получения сервиса, необходим получить экземплря ServiceLocator приложения. Пример получения.


        /** @var \OldTown\Workflow\ZF2\Service\Workflow $workflowService */
        $workflowService = $this->getServiceLocator()->get(\OldTown\Workflow\ZF2\Service\Workflow::class);

Базовые методы сервиса

Инициализация нового процесса workflow

        /** @var \OldTown\Workflow\ZF2\Service\Workflow $workflowService */
        $workflowService = $this->getServiceLocator()->get(\OldTown\Workflow\ZF2\Service\Workflow::class);
        $workflowService->initialize($workflowManagerName, $workflowName, $workflowActionName);

Праметра: $workflowManagerName - имя менеджера workflow $workflowName - имя зарегестрированного workflow * $workflowActionName - имя действия которое должно быть вызвано для инициализации

Запуск перехода между двумя состояниями workflow


        /** @var \OldTown\Workflow\ZF2\Service\Workflow $workflowService */
        $workflowService = $this->getServiceLocator()->get(\OldTown\Workflow\ZF2\Service\Workflow::class);
        $workflowService->doAction($workflowManagerName, $entryId, $workflowActionName);

Праметра: $workflowManagerName - имя менеджера workflow $entryId - id уже существующего запущенного процесса workflow * $workflowActionName - имя действия которое должно быть вызвано для инициализации

Базовые события сервиса

Сервис имеет своей менеджер событий. Во время работые сервиса, могут бросаться события позволяющие взаймодействовать с сервисом из других модулей. Для передачи информации о событии, используется объект события инстанцированного от класса \OldTown\Workflow\ZF2\Event\WorkflowEvent. Сервис бросает следующие события:

workflow.manager.create

Событие бросается при создание нового менеджера workflow(объект реализующий интерфейс \OldTown\Workflow\WorkflowInterface). Бросаемое событие инкапуслировано от класса \OldTown\Workflow\ZF2\Event\WorkflowManagerEvent. Собыите содержит следующую информацию:

  • workflowManager - менеджер workflow. Объект реализующий интерфейс \OldTown\Workflow\WorkflowInterface

Данное событие может быть использованно для дополнительной настройки менеджера workflow в других модулях.

initialize

Событие бросается когда создается новый процесс workflow.

doAction

Событие бросается когда происходит переход между двумя состояниями

render

Событие бросается когда необходимо отобразаить результаты работы workflow

Объект события сервиса

Для взаимодействия с другими модулями, используется менеджер событий. События бросамые сервисом инкапсулированы от класса \OldTown\Workflow\ZF2\Event\WorkflowEvent. Событие содержит следующую информацию:

  • workflow - дескриптор описывающий workflow. Объект реализующий \OldTown\Workflow\Loader\WorkflowDescriptor
  • transientVars - переменные времени выполнения workflow. Там содержаться результаты работы workflow
  • viewName - имя вида, используется для отображения результатов работы workflow в интегрируемой системе.
  • workflowManager - менеджер workflow. Объект реализующий интерфейс \OldTown\Workflow\WorkflowInterface
  • entryId - идендификатор запущенного процесса workflow