break;
         case 3:
             $sType = 'PARALLEL';
             break;
         case 4:
             $sType = 'PARALLEL-BY-EVALUATION';
             break;
         case 5:
             $sType = 'SEC-JOIN';
             break;
         case 8:
             $sType = 'DISCRIMINATOR';
             break;
     }
     if ($oData->type != 0 && $oData->type != 5 && $oData->type != 8) {
         if ($oProcessMap->getNumberOfRoutes($oData->pro_uid, $oData->tas_uid, $oData->next_task, $sType) > 0) {
             die;
         }
         unset($aRow);
     }
     if ($oData->delete || $oData->type == 0 || $oData->type == 5 || $oData->type == 8) {
         G::LoadClass('tasks');
         $oTasks = new Tasks();
         $oTasks->deleteAllRoutesOfTask($oData->pro_uid, $oData->tas_uid);
         $oTasks->deleteAllGatewayOfTask($oData->pro_uid, $oData->tas_uid);
     }
     $oProcessMap->saveNewPattern($oData->pro_uid, $oData->tas_uid, $oData->next_task, $sType, $oData->delete);
     break;
 case 'deleteAllRoutes':
     G::LoadClass('tasks');
     $oTasks = new Tasks();
示例#2
0
    /**
     * Create Route
     *
     * @param string $processUid
     * @param string $taskUid
     * @param string $nextTaskUid
     * @param string $type
     * @param bool   $delete
     *
     * return string Return UID of new Route
     *
     * @access public
     */
    public function defineRoute($processUid, $taskUid, $nextTaskUid, $type, $delete = false)
    {
        //Copy of processmaker/workflow/engine/methods/processes/processes_Ajax.php //case 'saveNewPattern':

        $processMap = new \processMap();

        if ($type != "SEQUENTIAL" && $type != "SEC-JOIN" && $type != "DISCRIMINATOR") {
            if ($processMap->getNumberOfRoutes($processUid, $taskUid, $nextTaskUid, $type) > 0) {
                //die();
                throw (new \Exception());
            }

            //unset($aRow);
        }

        if ($delete || $type == "SEQUENTIAL" || $type == "SEC-JOIN" || $type == "DISCRIMINATOR") {
            //\G::LoadClass("tasks");

            $tasks = new \Tasks();

            $tasks->deleteAllRoutesOfTask($processUid, $taskUid);
            $tasks->deleteAllGatewayOfTask($processUid, $taskUid);
        }

        return $processMap->saveNewPattern($processUid, $taskUid, $nextTaskUid, $type, $delete);
    }