Esempio n. 1
0
 /**
  * {@inheritdoc}
  */
 public function interrupt(VirtualExecution $execution, array $transitions = NULL)
 {
     foreach ($execution->findChildExecutions() as $sub) {
         $sub->terminate(false);
     }
     parent::interrupt($execution, $transitions);
 }
Esempio n. 2
0
 /**
  * {@inheritdoc}
  */
 public function interrupt(VirtualExecution $execution, array $transitions = NULL)
 {
     $engine = $execution->getEngine();
     $root = $execution->getScope();
     $params = ['e1' => $root->getId()];
     $i = 1;
     foreach ($root->findChildExecutions() as $child) {
         $params['e' . ++$i] = $child->getId();
     }
     $placeholders = implode(', ', array_map(function ($p) {
         return ':' . $p;
     }, array_keys($params)));
     $stmt = $engine->prepareQuery("SELECT `id` FROM `#__bpmn_user_task` WHERE `execution_id` IN ({$placeholders})");
     $stmt->bindAll($params);
     $stmt->transform('id', new UUIDTransformer());
     $stmt->execute();
     foreach ($stmt->fetchColumns('id') as $taskId) {
         $engine->executeCommand(new RemoveUserTaskCommand($taskId));
     }
     parent::interrupt($execution, $transitions);
 }