コード例 #1
0
 /**
  * 
  * @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);
 }
コード例 #2
0
 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;
     }
 }