/** * Short description of method deleteProcessExecutions * * @access public * @author Somsack Sipasseuth, <*****@*****.**> * @param array processExecutions * @param boolean finishedOnly * @return boolean */ public function deleteProcessExecutions($processExecutions = array(), $finishedOnly = false) { $returnValue = (bool) false; if (is_array($processExecutions)) { if (empty($processExecutions)) { $activityExecutionClass = new core_kernel_classes_Class(CLASS_ACTIVITY_EXECUTION); //get all instances! foreach ($this->processInstancesClass->getInstances(false) as $processInstance) { if ($finishedOnly) { if (!$this->isFinished($processInstance)) { continue; } } $processExecutions[] = $processInstance; } $execToDelete = array(); foreach ($processExecutions as $processExecution) { $allActivityExecutions = $processExecution->getPropertyValues($this->processInstancesActivityExecutionsProp); $count = count($allActivityExecutions); for ($i = 0; $i < $count; $i++) { $uri = $allActivityExecutions[$i]; if (common_Utils::isUri($uri)) { $execToDelete[] = $uri; } } } $this->processInstancesClass->deleteInstances($processExecutions); $activityExecutionClass->deleteInstances($execToDelete); } foreach ($processExecutions as $processExecution) { if (!is_null($processExecution) && $processExecution instanceof core_kernel_classes_Resource) { $returnValue = $this->deleteProcessExecution($processExecution, $finishedOnly); } } } else { throw new InvalidArgumentException('$processExecutions must be an array.'); } return (bool) $returnValue; }