function loadTest($aTestData, $aFields)
 {
     $oRoute = new Route();
     try {
         return $oRoute->load($aFields['ROU_UID']);
     } catch (Exception $oError) {
         return $oError;
     }
 }
Example #2
0
 /**
  * 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;
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
<?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";