function loadTest($aTestData, $aFields) { $oRoute = new Route(); try { return $oRoute->load($aFields['ROU_UID']); } catch (Exception $oError) { return $oError; } }
/** * updates row tasks from an Route Array * @param string $aTasks * @return array */ public function updateRouteRows($aRoutes) { foreach ($aRoutes as $key => $row) { $oRoute = new Route(); //krumo ($row); if (is_array($oRoute->load($row['ROU_UID']))) { $oRoute->remove($row['ROU_UID']); } else { $res = $oRoute->update($row); } } return; }
/** * This function create transitions from the array transitions for the new processmap * @param array $task * @param array $routes * @param array $events * @param array $countEvents * @param array $arrayRoutes * @param array $countRoutes * @return array */ function createTransitionsPM($tasks, $routes, $events, $countEvents, $arrayRoutes, $countRoutes) { $cont = 0; $dataRoutes = ''; $endEvent = 1; $taskParallel = ''; $routeParallel = ''; $taskSecJoin = ''; $routeSecJoin = ''; $taskDiscriminator = ''; $taskEvaluate = ''; $routeEvaluate = ''; $taskParallelEv = ''; $routeParallelEv = ''; $taskSelect = ''; $routeSelect = ''; $routeEnd = ''; $arraySecJoin = array(); $position = 0; $fillColor = ''; $transitions = ''; $arrayGateways = array(); $countG = 0; $gatPosX = 0; $gatPosY = 0; foreach ($routes as $key => $row) { if ($row['ROU_TYPE'] == 'SEC-JOIN') { $arraySecJoin[$position] = array(); $arraySecJoin[$position] = $row; $position = $position + 1; unset($routes[$key]); } } $aux = $arraySecJoin; foreach ($arraySecJoin as $key => $row) { $aux[$key] = $row['ROU_NEXT_TASK']; } if (sizeof($arraySecJoin) > 0) { array_multisort($aux, SORT_ASC, $arraySecJoin); unset($aux); } foreach ($routes as $key => $row) { $uid[$key] = $row['TAS_UID']; $case[$key] = $row['ROU_CASE']; } if (sizeof($routes) > 0) { array_multisort($uid, SORT_ASC, $case, SORT_ASC, $routes); } $routes = array_merge($routes, $arraySecJoin); foreach ($routes as $key => $val) { $end = 0; $idRoute = $val['ROU_UID']; $idTask = $val['TAS_UID']; $nextTask = $val['ROU_NEXT_TASK']; $condition = htmlentities($val['ROU_CONDITION']); $toPort = $val['ROU_TO_PORT']; $fromPort = $val['ROU_FROM_PORT']; //If End Event if ($nextTask == "-1") { $end = 1; } $typeRoute = $val['ROU_TYPE']; $route = ''; //Get GAT_UID from ROUTE table based on ROU_UID $oRoute = new Route(); $aRouteDetails = $oRoute->load($idRoute); $sGateUID = $aRouteDetails['GAT_UID']; //Get Gateway details from above GAT_UID $oGateway = new Gateway(); if ($sGateUID != '') { $aGatewayDetails = $oGateway->load($sGateUID); $gatPosX = $aGatewayDetails['GAT_X']; $gatPosY = $aGatewayDetails['GAT_Y']; } //if route is of SEQUENTIAL type,assign route id to GAT_UID if ($sGateUID == '') { $sGateUID = $idRoute; } if ($typeRoute != "SEQUENTIAL") { switch ($typeRoute) { case 'PARALLEL': $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 62; $positionY = $coordinateY + 55; if ($idTask != $taskParallel) { $taskParallel = $idTask; $routeParallel = $sGateUID; $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayParallel'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $taskParallel; $arrayRoutes[$countRoutes]['2'] = $routeParallel; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeParallel; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeParallel; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } break; case 'SEC-JOIN': $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $nextTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 60; $positionY = $coordinateY - 45; if ($nextTask != $taskSecJoin) { $taskSecJoin = $nextTask; $routeSecJoin = $sGateUID; $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayParallel'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeSecJoin; $arrayRoutes[$countRoutes]['2'] = $taskSecJoin; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $routeSecJoin; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $routeSecJoin; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } break; case 'EVALUATE': $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 62; $positionY = $coordinateY + 55; if ($idTask != $taskEvaluate) { $taskEvaluate = $idTask; $routeEvaluate = $sGateUID; if ($nextTask != "-1") { $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayExclusiveData'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $taskEvaluate; $arrayRoutes[$countRoutes]['2'] = $routeEvaluate; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeEvaluate; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } } else { if ($nextTask != "-1") { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeEvaluate; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $routeEnd = $routeEvaluate; } } break; case 'PARALLEL-BY-EVALUATION': $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 62; $positionY = $coordinateY + 55; if ($idTask != $taskParallelEv) { $taskParallelEv = $idTask; $routeParallelEv = $sGateUID; $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayInclusive'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $taskParallelEv; $arrayRoutes[$countRoutes]['2'] = $routeParallelEv; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeParallelEv; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeParallelEv; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } break; case 'SELECT': $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 60; $positionY = $coordinateY + 40; if ($idTask != $taskSelect) { $taskSelect = $idTask; $routeSelect = $sGateUID; $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayExclusiveData'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $taskSelect; $arrayRoutes[$countRoutes]['2'] = $routeSelect; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeSelect; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { if ($nextTask != "-1") { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeSelect; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $routeEnd = $routeSelect; } } break; case 'DISCRIMINATOR': $coordinateX = 0; $coordinateY = 0; $optional = $val['ROU_OPTIONAL']; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $nextTask) { $coordinateX = $idVal['TAS_POSX'] + 60; $coordinateY = $idVal['TAS_POSY'] + 60; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + 60; $positionY = $coordinateY - 45; if ($nextTask != $taskDiscriminator) { $taskDiscriminator = $nextTask; $routeDiscriminator = $sGateUID; $arrayGateways[$countG]['0'] = $sGateUID; $arrayGateways[$countG]['1'] = 'bpmnGatewayComplex'; $arrayGateways[$countG]['2'] = $gatPosX; $arrayGateways[$countG]['3'] = $gatPosY; $countG = $countG + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $routeDiscriminator; $arrayRoutes[$countRoutes]['2'] = $taskDiscriminator; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $routeDiscriminator; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $routeDiscriminator; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } break; } } if ($end == 1) { if ($typeRoute == "SEQUENTIAL") { $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX']; $coordinateY = $idVal['TAS_POSY']; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; $tas_uid = $idVal['TAS_UID']; } } $positionX = $coordinateX + 92; $positionY = $coordinateY + 40; $evn_uid = $val['ROU_EVN_UID']; if ($evn_uid != '') { $oEvent = new Event(); $aEvent = $oEvent->load($evn_uid); $events[$countEvents]['0'] = $evn_uid; $events[$countEvents]['1'] = $aEvent['EVN_TYPE']; $events[$countEvents]['2'] = $positionX - 25; $events[$countEvents]['3'] = $positionY + 35; $events[$countEvents]['4'] = $tas_uid; $countEvents = $countEvents + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $evn_uid; $arrayRoutes[$countRoutes]['3'] = $toPort; $arrayRoutes[$countRoutes]['4'] = $fromPort; $arrayRoutes[$countRoutes]['5'] = $typeRoute; $countRoutes = $countRoutes + 1; $end = 0; $endEvent = 0; } } else { $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX']; $coordinateY = $idVal['TAS_POSY']; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; $tas_uid = $idVal['TAS_UID']; } } $positionX = $coordinateX + $tas_width / 1.5 + 19; $positionY = $coordinateY + $tas_height / 2; $idTask = $routeEnd; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $idRoute; $arrayRoutes[$countRoutes]['3'] = $toPort; $arrayRoutes[$countRoutes]['4'] = $fromPort; $arrayRoutes[$countRoutes]['5'] = $typeRoute; $countRoutes = $countRoutes + 1; $events[$countEvents]['0'] = $idRoute; $events[$countEvents]['1'] = 'bpmnEventEmptyEnd'; $events[$countEvents]['2'] = $positionX - 25; $events[$countEvents]['3'] = $positionY + 35; $events[$countEvents]['4'] = $tas_uid; $countEvents = $countEvents + 1; $end = 0; $endEvent = 0; } } else { if ($typeRoute == "SEQUENTIAL") { //Will Check for Intermediate Timer $evn_uid = $val['ROU_EVN_UID']; if ($evn_uid != '') { $coordinateX = 0; $coordinateY = 0; foreach ($tasks as $taskVal => $idVal) { if ($idVal['TAS_UID'] == $idTask) { $coordinateX = $idVal['TAS_POSX']; $coordinateY = $idVal['TAS_POSY']; $tas_width = $idVal['TAS_WIDTH']; $tas_height = $idVal['TAS_HEIGHT']; } } $positionX = $coordinateX + $tas_width / 1.5 + 19; $positionY = $coordinateY + $tas_height / 2; $oEvent = new Event(); $aEvent = $oEvent->load($evn_uid); $events[$countEvents]['0'] = $evn_uid; $events[$countEvents]['1'] = $aEvent['EVN_TYPE']; $events[$countEvents]['2'] = $aEvent['EVN_POSX']; $events[$countEvents]['3'] = $aEvent['EVN_POSY']; $countEvents = $countEvents + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $evn_uid; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; $arrayRoutes[$countRoutes]['0'] = G::generateUniqueID(); $arrayRoutes[$countRoutes]['1'] = $evn_uid; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = '1'; $arrayRoutes[$countRoutes]['4'] = '2'; $countRoutes = $countRoutes + 1; } else { $arrayRoutes[$countRoutes]['0'] = $idRoute; $arrayRoutes[$countRoutes]['1'] = $idTask; $arrayRoutes[$countRoutes]['2'] = $nextTask; $arrayRoutes[$countRoutes]['3'] = $toPort; $arrayRoutes[$countRoutes]['4'] = $fromPort; $countRoutes = $countRoutes + 1; } } } } $data = array(); $data['GATEWAYS'] = $arrayGateways; $data['TRANSITION'] = $arrayRoutes; $data['EVENTS'] = $events; return $data; }
<?php //connects to the database require_once "source/system/db/conf.php"; //class to define the function require_once "source/classes/core/Route.php"; require_once "source/classes/core/DB.php"; require_once "source/classes/core/Core.php"; require_once "source/classes/core/Path.php"; require_once "source/classes/core/Bb.php"; require_once "source/classes/core/Preg.php"; require_once "source/classes/core/Pages.php"; //classes and functions require_once "source/system/inc/route.php"; require_once "source/system/inc/route404.php"; //require_once ("source/system/inc/layout.php"); //define class $RouteClass = new Route(); //start route $RouteClass->load($path); //include skeleton require_once "source/system/inc/skeleton.php";