示例#1
0
            $arrayEvents[$count]['2'] = $value['TAS_POSX'] + 68;
            $arrayEvents[$count]['3'] = $value['TAS_POSY'] - 50;
            $arrayEvents[$count]['4'] = $value['TAS_UID'];
            $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID();
            $arrayRoutes[$countRoutes]['1'] = $arrayEvents[$count]['0'];
            $arrayRoutes[$countRoutes]['2'] = $value['TAS_UID'];
            $arrayRoutes[$countRoutes]['3'] = '1';
            $arrayRoutes[$countRoutes]['4'] = '2';
            $count = $count + 1;
            $countRoutes = $countRoutes + 1;
        }
        $countTasks = $countTasks + 1;
    }
}
$lanes = $oProcess->createLanesNewPM($oData->lanes);
$fields = $oProcess->createTransitionsPM($oData->tasks, $oData->routes, $arrayEvents, $count, $arrayRoutes, $countRoutes);
//Get Standalone Events and routes
$countEvent = count($fields['EVENTS']);
$countRoutes = count($fields['TRANSITION']);
foreach ($oData->event as $id => $value) {
    if ($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && $value['EVN_TAS_UID_TO'] != '') {
        //Check for Intermediate Events
        $evn_uid = $value['EVN_UID'];
        $idTaskFrom = $value['EVN_TAS_UID_FROM'];
        $idTaskTo = $value['EVN_TAS_UID_TO'];
        $fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
        $fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
        $fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
        $fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
        $fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
        $countEvent = $countEvent + 1;
示例#2
0
 function openProcess($httpData)
 {
     G::LoadClass('xpdl');
     $processUID = $httpData->PRO_UID;
     $oProcess = new Xpdl();
     $fields = $oProcess->serializeProcess($processUID);
     $oData = unserialize($fields);
     $arrayTasks = array();
     $countTasks = 0;
     $countSubProcess = 0;
     $arrayEvents = array();
     $arraySubProcess = array();
     $count = 0;
     $countRoutes = 0;
     $arrayRoutes = array();
     $process = array();
     $process = $oProcess->createProcessPM($oData->process);
     foreach ($oData->tasks as $id => $value) {
         if ($value['TAS_TYPE'] == 'SUBPROCESS') {
             $arraySubProcess[$countSubProcess]['0'] = $value['TAS_UID'];
             $arraySubProcess[$countSubProcess]['1'] = $value['TAS_TITLE'];
             $arraySubProcess[$countSubProcess]['2'] = $value['TAS_POSX'];
             $arraySubProcess[$countSubProcess]['3'] = $value['TAS_POSY'];
             $countSubProcess = $countSubProcess + 1;
         } else {
             $arrayTasks[$countTasks]['0'] = $value['TAS_UID'];
             $arrayTasks[$countTasks]['1'] = $value['TAS_TITLE'];
             $arrayTasks[$countTasks]['2'] = $value['TAS_POSX'];
             $arrayTasks[$countTasks]['3'] = $value['TAS_POSY'];
             $arrayTasks[$countTasks]['4'] = $value['TAS_WIDTH'];
             $arrayTasks[$countTasks]['5'] = $value['TAS_HEIGHT'];
             $arrayTasks[$countTasks]['6'] = $value['TAS_BOUNDARY'];
             if ($value['TAS_START'] == 'TRUE') {
                 $arrayEvents[$count]['0'] = G::generateUniqueID();
                 if ($value['TAS_EVN_UID'] == '') {
                     $arrayEvents[$count]['1'] = 'bpmnEventEmptyStart';
                 } else {
                     foreach ($oData->event as $eventid => $val) {
                         if ($val['EVN_UID'] == $value['TAS_EVN_UID']) {
                             $arrayEvents[$count]['0'] = $val['EVN_UID'];
                             $arrayEvents[$count]['1'] = $val['EVN_TYPE'];
                             break;
                         }
                     }
                 }
                 $arrayEvents[$count]['2'] = $value['TAS_POSX'] + 68;
                 $arrayEvents[$count]['3'] = $value['TAS_POSY'] - 50;
                 $arrayEvents[$count]['4'] = $value['TAS_UID'];
                 $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID();
                 $arrayRoutes[$countRoutes]['1'] = $arrayEvents[$count]['0'];
                 $arrayRoutes[$countRoutes]['2'] = $value['TAS_UID'];
                 $arrayRoutes[$countRoutes]['3'] = '1';
                 $arrayRoutes[$countRoutes]['4'] = '2';
                 $count = $count + 1;
                 $countRoutes = $countRoutes + 1;
             }
             $countTasks = $countTasks + 1;
         }
     }
     $lanes = $oProcess->createLanesNewPM($oData->lanes);
     $fields = $oProcess->createTransitionsPM($oData->tasks, $oData->routes, $arrayEvents, $count, $arrayRoutes, $countRoutes);
     //Get Standalone Events and routes
     $countEvent = count($fields['EVENTS']);
     $countRoutes = count($fields['TRANSITION']);
     foreach ($oData->event as $id => $value) {
         if ($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && $value['EVN_TAS_UID_TO'] != '') {
             //Check for Intermediate Events
             $evn_uid = $value['EVN_UID'];
             $idTaskFrom = $value['EVN_TAS_UID_FROM'];
             $idTaskTo = $value['EVN_TAS_UID_TO'];
             $fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
             $fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
             $fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
             $fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
             $fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
             $countEvent = $countEvent + 1;
             $fields['TRANSITION'][$countRoutes]['0'] = G::generateUniqueID();
             $fields['TRANSITION'][$countRoutes]['1'] = $idTaskFrom;
             $fields['TRANSITION'][$countRoutes]['2'] = $evn_uid;
             $fields['TRANSITION'][$countRoutes]['3'] = '1';
             $fields['TRANSITION'][$countRoutes]['4'] = '2';
             $countRoutes = $countRoutes + 1;
             $fields['TRANSITION'][$countRoutes]['0'] = G::generateUniqueID();
             $fields['TRANSITION'][$countRoutes]['1'] = $evn_uid;
             $fields['TRANSITION'][$countRoutes]['2'] = $idTaskTo;
             $fields['TRANSITION'][$countRoutes]['3'] = '2';
             $fields['TRANSITION'][$countRoutes]['4'] = '1';
             $countRoutes = $countRoutes + 1;
         } else {
             if ($value['TAS_UID'] == '' && $value['EVN_TAS_UID_TO'] != '' && !preg_match("/Start/", $value['EVN_TYPE'])) {
                 $evn_uid = $value['EVN_UID'];
                 $idTask = $value['EVN_TAS_UID_TO'];
                 $fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
                 $fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
                 $fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
                 $fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
                 $fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
                 $countEvent = $countEvent + 1;
                 $fields['TRANSITION'][$countRoutes]['0'] = G::generateUniqueID();
                 $fields['TRANSITION'][$countRoutes]['1'] = $evn_uid;
                 $fields['TRANSITION'][$countRoutes]['2'] = $idTask;
                 $fields['TRANSITION'][$countRoutes]['3'] = '2';
                 $fields['TRANSITION'][$countRoutes]['4'] = '1';
                 $countRoutes = $countRoutes + 1;
             } else {
                 if ($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] != '' && !preg_match("/End/", $value['EVN_TYPE'])) {
                     //Check for Intermediate Events
                     $evn_uid = $value['EVN_UID'];
                     $idTask = $value['EVN_TAS_UID_FROM'];
                     $fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
                     $fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
                     $fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
                     $fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
                     $fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
                     $countEvent = $countEvent + 1;
                     $fields['TRANSITION'][$countRoutes]['0'] = G::generateUniqueID();
                     $fields['TRANSITION'][$countRoutes]['1'] = $idTask;
                     $fields['TRANSITION'][$countRoutes]['2'] = $evn_uid;
                     $fields['TRANSITION'][$countRoutes]['3'] = '1';
                     $fields['TRANSITION'][$countRoutes]['4'] = '2';
                     $countRoutes = $countRoutes + 1;
                 } else {
                     if ($value['TAS_UID'] == '' && $value['EVN_TAS_UID_FROM'] == '' && $value['EVN_TAS_UID_TO'] == '') {
                         $fields['EVENTS'][$countEvent]['0'] = $value['EVN_UID'];
                         $fields['EVENTS'][$countEvent]['1'] = $value['EVN_TYPE'];
                         $fields['EVENTS'][$countEvent]['2'] = $value['EVN_POSX'];
                         $fields['EVENTS'][$countEvent]['3'] = $value['EVN_POSY'];
                         $fields['EVENTS'][$countEvent]['4'] = $value['TAS_UID'];
                         $countEvent = $countEvent + 1;
                     }
                 }
             }
         }
     }
     //Get all the standalone Gateway
     $countGateway = count($fields['GATEWAYS']);
     $countTransitions = count($fields['TRANSITION']);
     foreach ($oData->gateways as $id => $value) {
         if ($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] != '' && $value['GAT_TYPE'] != '') {
             $fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
             $fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
             $fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
             $fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
             $fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
             $fields['GATEWAYS'][$countGateway]['5'] = $value['TAS_UID'];
             $countGateway += 1;
             $fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
             $fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
             $fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
             $fields['TRANSITION'][$countTransitions]['3'] = '1';
             $fields['TRANSITION'][$countTransitions]['4'] = '2';
             $countTransitions += 1;
             $fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
             $fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
             $fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
             $fields['TRANSITION'][$countTransitions]['3'] = '2';
             $fields['TRANSITION'][$countTransitions]['4'] = '1';
             $countTransitions += 1;
         } else {
             if ($value['GAT_NEXT_TASK'] != '' && $value['TAS_UID'] == '') {
                 $fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
                 $fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
                 $fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
                 $fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
                 $fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
                 $fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
                 $fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
                 $fields['TRANSITION'][$countTransitions]['1'] = $value['GAT_UID'];
                 $fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_NEXT_TASK'];
                 $fields['TRANSITION'][$countTransitions]['3'] = '2';
                 $fields['TRANSITION'][$countTransitions]['4'] = '1';
                 $countGateway += 1;
                 $countTransitions += 1;
             } else {
                 if ($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] != '') {
                     $fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
                     $fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
                     $fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
                     $fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
                     $fields['GATEWAYS'][$countGateway]['4'] = $value['TAS_UID'];
                     $fields['GATEWAYS'][$countGateway]['5'] = $value['GAT_NEXT_TASK'];
                     $fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
                     $fields['TRANSITION'][$countTransitions]['1'] = $value['TAS_UID'];
                     $fields['TRANSITION'][$countTransitions]['2'] = $value['GAT_UID'];
                     $fields['TRANSITION'][$countTransitions]['3'] = '1';
                     $fields['TRANSITION'][$countTransitions]['4'] = '2';
                     $countGateway += 1;
                     $countTransitions += 1;
                 } else {
                     if ($value['GAT_NEXT_TASK'] == '' && $value['TAS_UID'] == '') {
                         $fields['GATEWAYS'][$countGateway]['0'] = $value['GAT_UID'];
                         $fields['GATEWAYS'][$countGateway]['1'] = $value['GAT_TYPE'];
                         $fields['GATEWAYS'][$countGateway]['2'] = $value['GAT_X'];
                         $fields['GATEWAYS'][$countGateway]['3'] = $value['GAT_Y'];
                         $countGateway += 1;
                     }
                 }
             }
         }
     }
     //Create Annotation route
     foreach ($oData->lanes as $id => $value) {
         if ($value['SWI_NEXT_UID'] != '') {
             $fields['TRANSITION'][$countTransitions]['0'] = G::generateUniqueID();
             $fields['TRANSITION'][$countTransitions]['1'] = $value['SWI_NEXT_UID'];
             $fields['TRANSITION'][$countTransitions]['2'] = $value['SWI_UID'];
             $fields['TRANSITION'][$countTransitions]['3'] = '1';
             $fields['TRANSITION'][$countTransitions]['4'] = '2';
             $countTransitions += 1;
         }
     }
     //$subProcess         = $oProcess->createSubProcessesPM($oData->subProcess);
     $arrayEvents = $fields['EVENTS'];
     $arrayGateways = $fields['GATEWAYS'];
     $arrayRoutes = $fields['TRANSITION'];
     $data['tasks'] = $arrayTasks;
     $data['subprocess'] = $arraySubProcess;
     $data['routes'] = $arrayRoutes;
     $data['events'] = $arrayEvents;
     $data['gateways'] = $arrayGateways;
     $data['process'] = $process;
     $data['annotations'] = $lanes;
     return $data;
 }