示例#1
0
 /**
  * @param ProcessData $processData
  * @param TaskListPosition $taskListPosition
  * @param WorkflowMessage $previousMessage
  * @param WorkflowEngine $workflowEngine
  */
 protected function performProcessData(ProcessData $processData, TaskListPosition $taskListPosition, WorkflowMessage $previousMessage, WorkflowEngine $workflowEngine)
 {
     $workflowMessage = $previousMessage->prepareDataProcessing($taskListPosition, $processData->target(), $processData->metadata());
     if (!in_array($workflowMessage->payload()->getTypeClass(), $processData->allowedTypes())) {
         $workflowMessage->changeProcessingType($processData->preferredType());
     }
     try {
         $workflowEngine->dispatch($workflowMessage);
     } catch (CommandDispatchException $ex) {
         $this->receiveMessage(LogMessage::logException($ex->getPrevious(), $workflowMessage), $workflowEngine);
     } catch (\Exception $ex) {
         $this->receiveMessage(LogMessage::logException($ex, $workflowMessage), $workflowEngine);
     }
 }