/** * * @param type $processDefinitionData */ public function processRelatedDependencies($processDefinitionData) { $fakeEventData = array('id' => 'TERMINATE', 'evn_type' => 'GLOBAL_TERMINATE', 'evn_criteria' => $processDefinitionData['pro_terminate_variables'], 'evn_behavior' => 'CATCH', 'pro_id' => $processDefinitionData['id']); $depWrapper = new PMSERelatedDependencyWrapper(); $depWrapper->processRelatedDependencies($fakeEventData); }
public function updateDiagramElements($entityData, $keysArray, $elementArray, $args = array()) { $this->initWrapper(); $action = strtolower($elementArray['action']); unset($elementArray['action']); $bean = $this->getBean($entityData['bean_object']); switch ($action) { case 'create': $elementArray['pro_id'] = $keysArray['pro_id']; $elementArray['prj_id'] = $keysArray['prj_uid']; $elementArray['name'] = $elementArray[$entityData['element_name']]; $elementID = $this->create($bean, $elementArray); global $beanList; $tmpList = $beanList; $evn_module = !empty($this->processDefinition->pro_module) ? $this->processDefinition->pro_module : ''; foreach ($tmpList as $key => $value) { $elementArray['evn_message'] = isset($elementArray['evn_message']) ? $elementArray['evn_message'] : ''; if (strtoupper($value) == strtoupper($elementArray['evn_message'])) { $evn_module = $key; } } if ($entityData['bean'] == 'BpmnActivity') { $tmpDefinition = $this->getBean('pmse_BpmActivityDefinition'); $tmpDefinition->new_with_id = true; $tmpDefinition->id = $elementID; $tmpDefinition->name = $elementArray['name']; $tmpDefinition->act_type = $bean->act_task_type == 'USERTASK' && $bean->act_type == 'TASK' ? $this->getDefaultDynaformView($bean->prj_id) : $bean->act_type; //Fix whenever a new record is added and no Form has been changed //$tmpDefinition->act_type = 'EditView'; $tmpDefinition->pro_id = $bean->pro_id; $tmpDefinition->save(); } elseif ($entityData['bean'] == 'BpmnEvent') { $tmpDefinition = $this->getBean('pmse_BpmEventDefinition'); $tmpDefinition->new_with_id = true; $tmpDefinition->id = $elementID; $tmpDefinition->evn_type = $bean->evn_type; $tmpDefinition->evn_module = $evn_module; $tmpDefinition->evn_status = 'ACTIVE'; $tmpDefinition->pro_id = $bean->pro_id; $tmpDefinition->prj_id = $bean->prj_id; $tmpDefinition->save(); } elseif ($entityData['bean'] == 'BpmnGateway') { $tmpDefinition = $this->getBean('pmse_BpmGatewayDefinition'); $tmpDefinition->new_with_id = true; $tmpDefinition->id = $elementID; $tmpDefinition->pro_id = $bean->pro_id; $tmpDefinition->prj_id = $bean->prj_id; $tmpDefinition->execution_mode = 'SYNC'; $tmpDefinition->save(); } if ($entityData['bean'] != 'BpmnFlow') { $bound = $this->getBean('pmse_BpmnBound'); $bound->bou_uid = create_guid(); //ADAMEngineUtils::generateUniqueID(); $bound->bou_x = $elementArray['bou_x']; $bound->bou_y = $elementArray['bou_y']; $bound->bou_width = $elementArray['bou_width']; $bound->bou_height = $elementArray['bou_height']; $bound->prj_id = $keysArray['prj_uid']; $bound->dia_id = $keysArray['dia_id']; $bound->bou_container = $elementArray['bou_container']; switch ($elementArray['bou_container']) { case 'bpmnDiagram': $bound->element_id = $bound->dia_id; break; } $bound->bou_element_type = $this->lowerFirstCharCase($entityData['bean']); $bound->bou_element = $elementID; $bound->new_with_id = true; $bound->id = $bound->bou_uid; $bound->save(); } break; case 'update': $bean->retrieve_by_string_fields(array($entityData['uid_field'] => $elementArray[$entityData['uid_field']])); $id = $this->update($bean, $elementArray); $primaryField = $this->getPrimaryFieldName($bean); $elementID = $bean->fetched_row[$primaryField]; if ($entityData['bean'] != 'BpmnFlow') { $bound = $this->getBean('pmse_BpmnBound'); $bound->retrieve_by_string_fields(array('bou_element' => $elementID, 'bou_element_type' => $entityData['bound_element'])); if (isset($elementArray['bou_x'])) { $bound->bou_x = $elementArray['bou_x']; } if (isset($elementArray['bou_y'])) { $bound->bou_y = $elementArray['bou_y']; } if (isset($elementArray['bou_width'])) { $bound->bou_width = $elementArray['bou_width']; } if (isset($elementArray['bou_height'])) { $bound->bou_height = $elementArray['bou_height']; } if (isset($elementArray['bou_container'])) { switch ($elementArray['bou_container']) { case 'bpmnDiagram': $bound->element_id = $bound->dia_id; break; // case 'bpmnLaneset': // $laneset = $this->getBean('BpmnLaneset'); // $laneset->retrieve_by_string_fields(array('lns_uid' => $elementArray['element_uid'])); // $bound->element_id = $laneset->lns_id; // break; // case 'bpmnLane': // $lane = $this->getBean('BpmnLane'); // $lane->retrieve_by_string_fields(array('lan_uid' => $elementArray['element_uid'])); // $bound->element_id = $laneset->lns_id; // break; } } $bound->save(); } break; case 'remove': $primaryField = $this->getPrimaryFieldName($bean); $bean->retrieve_by_string_fields(array($entityData['uid_field'] => $elementArray[$entityData['uid_field']])); if ($entityData['bean'] == 'BpmnActivity') { $tmpDefinition = $this->getBean('pmse_BpmActivityDefinition'); $tmpDefinition->retrieve_by_string_fields(array('id' => $bean->{$primaryField})); $this->delete($tmpDefinition); } elseif ($entityData['bean'] == 'BpmnEvent') { $tmpDefinition = $this->getBean('pmse_BpmEventDefinition'); $tmpDefinition->retrieve_by_string_fields(array('id' => $bean->{$primaryField})); $this->delete($tmpDefinition); if (!empty($tmpDefinition->fetched_row)) { $relDepWrapper = new PMSERelatedDependencyWrapper(); $relDepWrapper->removeRelatedDependencies($tmpDefinition->fetched_row); $relDepWrapper->removeActiveTimerEvents($tmpDefinition->fetched_row); } } if ($this->delete($bean) && $entityData['bean'] != 'BpmnFlow') { $bound = $this->getBean('pmse_BpmnBound'); $bound->retrieve_by_string_fields(array('bou_element' => $bean->fetched_row[$primaryField], 'bou_element_type' => $entityData['bound_element'])); $this->delete($bound); } break; default: break; } }