/** * @param WorkflowDefinition $definition * @return array */ protected function getDataAsArray(WorkflowDefinition $definition) { $entitiesData = array(); foreach ($definition->getWorkflowDefinitionEntities() as $entity) { $entitiesData[] = array('class' => $entity->getClassName()); } return array('name' => $definition->getName(), 'label' => $definition->getLabel(), 'enabled' => $definition->isEnabled(), 'start_step' => $definition->getStartStep(), 'configuration' => $definition->getConfiguration(), 'entities' => $entitiesData); }
/** * @param WorkflowDefinition $definition * @return array */ protected function getDataAsArray(WorkflowDefinition $definition) { $data = array('name' => $definition->getName(), 'label' => $definition->getLabel(), 'entity' => $definition->getRelatedEntity(), 'configuration' => $definition->getConfiguration()); if ($definition->getStartStep()) { $data['start_step'] = $definition->getStartStep()->getName(); } return $data; }
/** * Get Workflow by WorkflowDefinition * * @param WorkflowDefinition $definition * @return Workflow */ protected function getAssembledWorkflow(WorkflowDefinition $definition) { $workflowName = $definition->getName(); if (!isset($this->workflowByName[$workflowName])) { $workflow = $this->workflowAssembler->assemble($definition); $this->workflowByName[$workflowName] = $workflow; } return $this->refreshWorkflow($this->workflowByName[$workflowName]); }
protected function generateEntities(ObjectManager $manager, WorkflowDefinition $definition) { // load entities /** @var WorkflowAwareEntity[] $entities */ $entities = array(); for ($i = 1; $i <= self::COUNT; $i++) { $entity = new WorkflowAwareEntity(); $entity->setName($definition->getName() . '_entity_' . $i); $entities[] = $entity; $manager->persist($entity); } $manager->flush(); // create workflow item manually (to make it faster) foreach ($entities as $entity) { $workflowItem = new WorkflowItem(); $workflowItem->setDefinition($definition)->setWorkflowName($definition->getName())->setEntity($entity)->setEntityId($entity->getId())->setCurrentStep($definition->getSteps()->first()); $manager->persist($workflowItem); $entity->setWorkflowItem($workflowItem)->setWorkflowStep($workflowItem->getCurrentStep()); } $manager->flush(); }
/** * @param WorkflowDefinition $workflowDefinition */ public function resetWorkflowData(WorkflowDefinition $workflowDefinition) { $this->getWorkflowItemRepository()->resetWorkflowData($workflowDefinition->getRelatedEntity(), array($workflowDefinition->getName())); }
/** * @param WorkflowDefinition $definition * @return $this */ public function import(WorkflowDefinition $definition) { $this->setName($definition->getName())->setType($definition->getType())->setLabel($definition->getLabel())->setEnabled($definition->isEnabled())->setConfiguration($definition->getConfiguration())->setStartStep($definition->getStartStep())->setWorkflowDefinitionEntities($definition->getWorkflowDefinitionEntities()); return $this; }
/** * @param WorkflowDefinition $definition * @return WorkflowDefinition */ public function import(WorkflowDefinition $definition) { $this->setName($definition->getName())->setLabel($definition->getLabel())->setRelatedEntity($definition->getRelatedEntity())->setEntityAttributeName($definition->getEntityAttributeName())->setConfiguration($definition->getConfiguration())->setSteps($definition->getSteps())->setStartStep($definition->getStartStep())->setStepsDisplayOrdered($definition->isStepsDisplayOrdered())->setEntityAcls($definition->getEntityAcls())->setSystem($definition->isSystem()); return $this; }
/** * @param WorkflowDefinition $definition * @return array */ protected function getDefinitionAsArray(WorkflowDefinition $definition) { return array('name' => $definition->getName(), 'label' => $definition->getLabel(), 'steps' => $definition->getSteps(), 'start_step' => $definition->getStartStep(), 'configuration' => $definition->getConfiguration()); }