PM-938 "Add default flow support" SOLVED

Issue:
    Add default flow support
Cause:
    Nueva solicitud de funciones
Solution:
    Se ha implementado esta nueva funcionalidad, la cual se aplica a:
            BPMN       ProcessMaker
            ====       ============
    Gateway EXCLUSIVE  EVALUATE
    Gateway INCLUSIVE  PARALLEL-BY-EVALUATION
This commit is contained in:
Victor Saisa Lopez
2014-11-26 10:19:07 -04:00
parent 6b6d11d953
commit dc21c89799
14 changed files with 315 additions and 141 deletions

View File

@@ -49,6 +49,81 @@ class Derivation
{ {
var $case; var $case;
/**
* prepareInformationTaskDerivation
*
* @param array $arrayDerivation Derivation
*
* return array Return array
*/
public function prepareInformationTaskDerivation(array $arrayDerivation)
{
try {
$task = new Task();
$taskFields = $task->load($arrayDerivation["TAS_UID"]);
$arrayDerivation = G::array_merges($arrayDerivation, $taskFields);
//2. if next case is an special case
if ((int)($arrayDerivation["ROU_NEXT_TASK"]) < 0) {
$arrayDerivation["NEXT_TASK"]["TAS_UID"] = (int)($arrayDerivation["ROU_NEXT_TASK"]);
$arrayDerivation["NEXT_TASK"]["TAS_ASSIGN_TYPE"] = "nobody";
$arrayDerivation["NEXT_TASK"]["TAS_PRIORITY_VARIABLE"] = "";
$arrayDerivation["NEXT_TASK"]["TAS_DEF_PROC_CODE"] = "";
$arrayDerivation["NEXT_TASK"]["TAS_PARENT"] = "";
$arrayDerivation["NEXT_TASK"]["TAS_TRANSFER_FLY"] = "";
switch ($arrayDerivation["ROU_NEXT_TASK"]) {
case -1:
$arrayDerivation["NEXT_TASK"]["TAS_TITLE"] = G::LoadTranslation("ID_END_OF_PROCESS");
break;
case -2:
$arrayDerivation["NEXT_TASK"]["TAS_TITLE"] = G::LoadTranslation("ID_TAREA_COLGANTE");
break;
}
$arrayDerivation["NEXT_TASK"]["USR_UID"] = "";
$arrayDerivation["NEXT_TASK"]["USER_ASSIGNED"] = array("USR_UID" => "");
} else {
//3. load the task information of normal NEXT_TASK
$arrayDerivation["NEXT_TASK"] = $task->load($arrayDerivation["ROU_NEXT_TASK"]); //print $arrayDerivation["ROU_NEXT_TASK"]." **** ".$arrayDerivation["NEXT_TASK"]["TAS_TYPE"]."<hr>";
if ($arrayDerivation["NEXT_TASK"]["TAS_TYPE"] == "SUBPROCESS") {
$sTaskParent = $arrayDerivation["NEXT_TASK"]["TAS_UID"];
$criteria = new Criteria("workflow");
$criteria->add(SubProcessPeer::PRO_PARENT, $arrayDerivation["PRO_UID"]);
$criteria->add(SubProcessPeer::TAS_PARENT, $arrayDerivation["NEXT_TASK"]["TAS_UID"]);
$rsCriteria = SubProcessPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$rsCriteria->next();
$row = $rsCriteria->getRow();
$arrayDerivation["ROU_NEXT_TASK"] = $row["TAS_UID"]; //print "<hr>Life is just a lonely highway";
$arrayDerivation["NEXT_TASK"] = $task->load($arrayDerivation["ROU_NEXT_TASK"]); //print "<hr>Life is just a lonely highway";print"<hr>";
$process = new Process();
$row = $process->load($row["PRO_UID"]);
$arrayDerivation["NEXT_TASK"]["TAS_TITLE"] .= " (" . $row["PRO_TITLE"] . ")";
$arrayDerivation["NEXT_TASK"]["TAS_PARENT"] = $sTaskParent;
//unset($task, $process, $row, $sTaskParent);
} else {
$arrayDerivation["NEXT_TASK"]["TAS_PARENT"] = "";
}
$arrayDerivation["NEXT_TASK"]["USER_ASSIGNED"] = $this->getNextAssignedUser($arrayDerivation);
}
//Return
return $arrayDerivation;
} catch (Exception $e) {
throw $e;
}
}
/** /**
* prepareInformation * prepareInformation
* *
@@ -67,10 +142,11 @@ class Derivation
//AND DEL_INDEX = '$aData['DEL_INDEX']' //AND DEL_INDEX = '$aData['DEL_INDEX']'
$c = new Criteria( 'workflow' ); $c = new Criteria( 'workflow' );
$c->clearSelectColumns(); $c->clearSelectColumns();
$c->addSelectColumn( AppDelegationPeer::TAS_UID ); $c->addSelectColumn(AppDelegationPeer::TAS_UID);
$c->addSelectColumn( RoutePeer::ROU_CONDITION ); $c->addSelectColumn(RoutePeer::ROU_NEXT_TASK);
$c->addSelectColumn( RoutePeer::ROU_NEXT_TASK ); $c->addSelectColumn(RoutePeer::ROU_TYPE);
$c->addSelectColumn( RoutePeer::ROU_TYPE ); $c->addSelectColumn(RoutePeer::ROU_DEFAULT);
$c->addSelectColumn(RoutePeer::ROU_CONDITION);
$c->addJoin( AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN ); $c->addJoin( AppDelegationPeer::TAS_UID, TaskPeer::TAS_UID, Criteria::LEFT_JOIN );
$c->addJoin( AppDelegationPeer::TAS_UID, RoutePeer::TAS_UID, Criteria::LEFT_JOIN ); $c->addJoin( AppDelegationPeer::TAS_UID, RoutePeer::TAS_UID, Criteria::LEFT_JOIN );
$c->add( AppDelegationPeer::APP_UID, $aData['APP_UID'] ); $c->add( AppDelegationPeer::APP_UID, $aData['APP_UID'] );
@@ -81,7 +157,8 @@ class Derivation
$rs->next(); $rs->next();
$aDerivation = $rs->getRow(); $aDerivation = $rs->getRow();
$i = 0; $i = 0;
$taskInfo = array (); $taskInfo = array();
$arrayDerivationDefault = array();
$oUser = new Users(); $oUser = new Users();
if (!class_exists('Cases')) { if (!class_exists('Cases')) {
@@ -94,8 +171,12 @@ class Derivation
} }
while (is_array( $aDerivation )) { while (is_array( $aDerivation )) {
$oTask = new Task(); $aDerivation = G::array_merges($aDerivation, $aData);
$aDerivation = G::array_merges( $aDerivation, $aData );
if ((int)($aDerivation["ROU_DEFAULT"]) == 1) {
$arrayDerivationDefault = $aDerivation;
}
$bContinue = true; $bContinue = true;
//evaluate the condition if there are conditions defined. //evaluate the condition if there are conditions defined.
@@ -115,62 +196,22 @@ class Derivation
} }
if ($bContinue) { if ($bContinue) {
$i ++; $i++;
$TaskFields = $oTask->load( $aDerivation['TAS_UID'] );
$aDerivation = G::array_merges( $aDerivation, $TaskFields ); $taskInfo[$i] = $this->prepareInformationTaskDerivation($aDerivation);
//2. if next case is an special case
if ((int) $aDerivation['ROU_NEXT_TASK'] < 0) {
$aDerivation['NEXT_TASK']['TAS_UID'] = (int) $aDerivation['ROU_NEXT_TASK'];
$aDerivation['NEXT_TASK']['TAS_ASSIGN_TYPE'] = 'nobody';
$aDerivation['NEXT_TASK']['TAS_PRIORITY_VARIABLE'] = '';
$aDerivation['NEXT_TASK']['TAS_DEF_PROC_CODE'] = '';
$aDerivation['NEXT_TASK']['TAS_PARENT'] = '';
$aDerivation['NEXT_TASK']['TAS_TRANSFER_FLY'] = '';
switch ($aDerivation['ROU_NEXT_TASK']) {
case - 1:
$aDerivation['NEXT_TASK']['TAS_TITLE'] = G::LoadTranslation( 'ID_END_OF_PROCESS' );
break;
case - 2:
$aDerivation['NEXT_TASK']['TAS_TITLE'] = G::LoadTranslation( 'ID_TAREA_COLGANTE' );
break;
}
$aDerivation['NEXT_TASK']['USR_UID'] = '';
$aDerivation['NEXT_TASK']['USER_ASSIGNED'] = array('USR_UID' => '');
} else {
//3. load the task information of normal NEXT_TASK
$aDerivation['NEXT_TASK'] = $oTask->load( $aDerivation['ROU_NEXT_TASK'] ); //print $aDerivation['ROU_NEXT_TASK']." **** ".$aDerivation['NEXT_TASK']['TAS_TYPE']."<hr>";
if ($aDerivation['NEXT_TASK']['TAS_TYPE'] === 'SUBPROCESS') {
$oCriteria = new Criteria( 'workflow' );
$oCriteria->add( SubProcessPeer::PRO_PARENT, $aDerivation['PRO_UID'] );
$oCriteria->add( SubProcessPeer::TAS_PARENT, $aDerivation['NEXT_TASK']['TAS_UID'] );
$oDataset = SubProcessPeer::doSelectRS( $oCriteria );
$oDataset->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oDataset->next();
$aRow = $oDataset->getRow();
$sTaskParent = $aDerivation['NEXT_TASK']['TAS_UID'];
$aDerivation['ROU_NEXT_TASK'] = $aRow['TAS_UID']; //print "<hr>Life is just a lonely highway";
$aDerivation['NEXT_TASK'] = $oTask->load( $aDerivation['ROU_NEXT_TASK'] ); //print "<hr>Life is just a lonely highway";print"<hr>";
$oProcess = new Process();
$aRow = $oProcess->load( $aRow['PRO_UID'] );
$aDerivation['NEXT_TASK']['TAS_TITLE'] .= ' (' . $aRow['PRO_TITLE'] . ')';
$aDerivation['NEXT_TASK']['TAS_PARENT'] = $sTaskParent;
unset( $oTask, $oProcess, $aRow, $sTaskParent );
} else {
$aDerivation['NEXT_TASK']['TAS_PARENT'] = '';
}
$aDerivation['NEXT_TASK']['USER_ASSIGNED'] = $this->getNextAssignedUser( $aDerivation );
} }
$taskInfo[$i] = $aDerivation;
}
$rs->next(); $rs->next();
$aDerivation = $rs->getRow(); $aDerivation = $rs->getRow();
} }
if (count($taskInfo) == 0 && count($arrayDerivationDefault) > 0) {
$i++;
$taskInfo[$i] = $this->prepareInformationTaskDerivation($arrayDerivationDefault);
}
//Return
return $taskInfo; return $taskInfo;
} }

View File

@@ -63,6 +63,50 @@ class Route extends BaseRoute
} }
} }
/**
* Set default Route by Unique id of Route
*
* @param string $routeUid Unique id of Route
*
* return void
*/
public function setRouDefaultByUid($routeUid)
{
try {
$arrayRouteData = $this->load($routeUid);
if (in_array($arrayRouteData["ROU_TYPE"], array("EVALUATE", "PARALLEL-BY-EVALUATION"))) {
//Update
//Update - WHERE
$criteriaWhere = new Criteria("workflow");
$criteriaWhere->add(RoutePeer::PRO_UID, $arrayRouteData["PRO_UID"], Criteria::EQUAL);
$criteriaWhere->add(RoutePeer::TAS_UID, $arrayRouteData["TAS_UID"], Criteria::EQUAL);
$criteriaWhere->add(RoutePeer::ROU_UID, $routeUid, Criteria::NOT_EQUAL);
//Update - SET
$criteriaSet = new Criteria("workflow");
$criteriaSet->add(RoutePeer::ROU_DEFAULT, 0);
BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));
if ((int)($arrayRouteData["ROU_DEFAULT"]) == 0) {
//Update
//Update - WHERE
$criteriaWhere = new Criteria("workflow");
$criteriaWhere->add(RoutePeer::ROU_UID, $routeUid, Criteria::EQUAL);
//Update - SET
$criteriaSet = new Criteria("workflow");
$criteriaSet->add(RoutePeer::ROU_DEFAULT, 1);
BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection("workflow"));
}
}
} catch (Exception $e) {
throw $e;
}
}
/** /**
* Create the application document registry * Create the application document registry
* *
@@ -92,6 +136,11 @@ class Route extends BaseRoute
$oConnection->begin(); $oConnection->begin();
$iResult = $oRoute->save(); $iResult = $oRoute->save();
$oConnection->commit(); $oConnection->commit();
if (isset($aData["ROU_DEFAULT"]) && (int)($aData["ROU_DEFAULT"]) == 1) {
$this->setRouDefaultByUid($sRouteUID);
}
return $sRouteUID; return $sRouteUID;
} else { } else {
$sMessage = ''; $sMessage = '';
@@ -139,6 +188,11 @@ class Route extends BaseRoute
$oConnection->begin(); $oConnection->begin();
$iResult = $oRoute->save(); $iResult = $oRoute->save();
$oConnection->commit(); $oConnection->commit();
if (isset($aData["ROU_DEFAULT"]) && (int)($aData["ROU_DEFAULT"]) == 1) {
$this->setRouDefaultByUid($aData["ROU_UID"]);
}
return $iResult; return $iResult;
} else { } else {
$sMessage = ''; $sMessage = '';

View File

@@ -76,5 +76,5 @@ class AppAssignSelfServiceValueMapBuilder
$tMap->addColumn('GRP_UID', 'GrpUid', 'string', CreoleTypes::VARCHAR, true, 32); $tMap->addColumn('GRP_UID', 'GrpUid', 'string', CreoleTypes::VARCHAR, true, 32);
} // doBuild() } // doBuild()
}// AppAssignSelfServiceValueMapBuilder
} // AppAssignSelfServiceValueMapBuilder

View File

@@ -85,7 +85,7 @@ class AppHistoryMapBuilder
$tMap->addColumn('HISTORY_DATA', 'HistoryData', 'string', CreoleTypes::LONGVARCHAR, true, null); $tMap->addColumn('HISTORY_DATA', 'HistoryData', 'string', CreoleTypes::LONGVARCHAR, true, null);
$tMap->addValidator('OBJ_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK', 'Please select a valid value for OBJ_TYPE.'); $tMap->addValidator('OBJ_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK', 'Please enter a valid value for OBJ_TYPE');
} // doBuild() } // doBuild()

View File

@@ -79,6 +79,8 @@ class RouteMapBuilder
$tMap->addColumn('ROU_TYPE', 'RouType', 'string', CreoleTypes::VARCHAR, true, 25); $tMap->addColumn('ROU_TYPE', 'RouType', 'string', CreoleTypes::VARCHAR, true, 25);
$tMap->addColumn('ROU_DEFAULT', 'RouDefault', 'int', CreoleTypes::INTEGER, true, null);
$tMap->addColumn('ROU_CONDITION', 'RouCondition', 'string', CreoleTypes::VARCHAR, true, 512); $tMap->addColumn('ROU_CONDITION', 'RouCondition', 'string', CreoleTypes::VARCHAR, true, 512);
$tMap->addColumn('ROU_TO_LAST_USER', 'RouToLastUser', 'string', CreoleTypes::VARCHAR, true, 20); $tMap->addColumn('ROU_TO_LAST_USER', 'RouToLastUser', 'string', CreoleTypes::VARCHAR, true, 20);
@@ -117,6 +119,8 @@ class RouteMapBuilder
$tMap->addValidator('ROU_TYPE', 'required', 'propel.validator.RequiredValidator', '', 'Route type is required.'); $tMap->addValidator('ROU_TYPE', 'required', 'propel.validator.RequiredValidator', '', 'Route type is required.');
$tMap->addValidator('ROU_DEFAULT', 'validValues', 'propel.validator.ValidValuesValidator', '0|1', 'Please enter a valid value for ROU_DEFAULT');
$tMap->addValidator('ROU_TO_LAST_USER', 'validValues', 'propel.validator.ValidValuesValidator', 'FALSE|TRUE', 'Please select a valid value for ROU_TO_LAST_USER .'); $tMap->addValidator('ROU_TO_LAST_USER', 'validValues', 'propel.validator.ValidValuesValidator', 'FALSE|TRUE', 'Please select a valid value for ROU_TO_LAST_USER .');
$tMap->addValidator('ROU_OPTIONAL', 'validValues', 'propel.validator.ValidValuesValidator', 'FALSE|TRUE', 'Please select a valid value for ROU_OPTIONAL .'); $tMap->addValidator('ROU_OPTIONAL', 'validValues', 'propel.validator.ValidValuesValidator', 'FALSE|TRUE', 'Please select a valid value for ROU_OPTIONAL .');

View File

@@ -69,6 +69,12 @@ abstract class BaseRoute extends BaseObject implements Persistent
*/ */
protected $rou_type = 'SEQUENTIAL'; protected $rou_type = 'SEQUENTIAL';
/**
* The value for the rou_default field.
* @var int
*/
protected $rou_default = 0;
/** /**
* The value for the rou_condition field. * The value for the rou_condition field.
* @var string * @var string
@@ -220,6 +226,17 @@ abstract class BaseRoute extends BaseObject implements Persistent
return $this->rou_type; return $this->rou_type;
} }
/**
* Get the [rou_default] column value.
*
* @return int
*/
public function getRouDefault()
{
return $this->rou_default;
}
/** /**
* Get the [rou_condition] column value. * Get the [rou_condition] column value.
* *
@@ -484,6 +501,28 @@ abstract class BaseRoute extends BaseObject implements Persistent
} // setRouType() } // setRouType()
/**
* Set the value of [rou_default] column.
*
* @param int $v new value
* @return void
*/
public function setRouDefault($v)
{
// Since the native PHP type for this column is integer,
// we will cast the input value to an int (if it is not).
if ($v !== null && !is_int($v) && is_numeric($v)) {
$v = (int) $v;
}
if ($this->rou_default !== $v || $v === 0) {
$this->rou_default = $v;
$this->modifiedColumns[] = RoutePeer::ROU_DEFAULT;
}
} // setRouDefault()
/** /**
* Set the value of [rou_condition] column. * Set the value of [rou_condition] column.
* *
@@ -735,32 +774,34 @@ abstract class BaseRoute extends BaseObject implements Persistent
$this->rou_type = $rs->getString($startcol + 6); $this->rou_type = $rs->getString($startcol + 6);
$this->rou_condition = $rs->getString($startcol + 7); $this->rou_default = $rs->getInt($startcol + 7);
$this->rou_to_last_user = $rs->getString($startcol + 8); $this->rou_condition = $rs->getString($startcol + 8);
$this->rou_optional = $rs->getString($startcol + 9); $this->rou_to_last_user = $rs->getString($startcol + 9);
$this->rou_send_email = $rs->getString($startcol + 10); $this->rou_optional = $rs->getString($startcol + 10);
$this->rou_sourceanchor = $rs->getInt($startcol + 11); $this->rou_send_email = $rs->getString($startcol + 11);
$this->rou_targetanchor = $rs->getInt($startcol + 12); $this->rou_sourceanchor = $rs->getInt($startcol + 12);
$this->rou_to_port = $rs->getInt($startcol + 13); $this->rou_targetanchor = $rs->getInt($startcol + 13);
$this->rou_from_port = $rs->getInt($startcol + 14); $this->rou_to_port = $rs->getInt($startcol + 14);
$this->rou_evn_uid = $rs->getString($startcol + 15); $this->rou_from_port = $rs->getInt($startcol + 15);
$this->gat_uid = $rs->getString($startcol + 16); $this->rou_evn_uid = $rs->getString($startcol + 16);
$this->gat_uid = $rs->getString($startcol + 17);
$this->resetModified(); $this->resetModified();
$this->setNew(false); $this->setNew(false);
// FIXME - using NUM_COLUMNS may be clearer. // FIXME - using NUM_COLUMNS may be clearer.
return $startcol + 17; // 17 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS). return $startcol + 18; // 18 = RoutePeer::NUM_COLUMNS - RoutePeer::NUM_LAZY_LOAD_COLUMNS).
} catch (Exception $e) { } catch (Exception $e) {
throw new PropelException("Error populating Route object", $e); throw new PropelException("Error populating Route object", $e);
@@ -986,33 +1027,36 @@ abstract class BaseRoute extends BaseObject implements Persistent
return $this->getRouType(); return $this->getRouType();
break; break;
case 7: case 7:
return $this->getRouCondition(); return $this->getRouDefault();
break; break;
case 8: case 8:
return $this->getRouToLastUser(); return $this->getRouCondition();
break; break;
case 9: case 9:
return $this->getRouOptional(); return $this->getRouToLastUser();
break; break;
case 10: case 10:
return $this->getRouSendEmail(); return $this->getRouOptional();
break; break;
case 11: case 11:
return $this->getRouSourceanchor(); return $this->getRouSendEmail();
break; break;
case 12: case 12:
return $this->getRouTargetanchor(); return $this->getRouSourceanchor();
break; break;
case 13: case 13:
return $this->getRouToPort(); return $this->getRouTargetanchor();
break; break;
case 14: case 14:
return $this->getRouFromPort(); return $this->getRouToPort();
break; break;
case 15: case 15:
return $this->getRouEvnUid(); return $this->getRouFromPort();
break; break;
case 16: case 16:
return $this->getRouEvnUid();
break;
case 17:
return $this->getGatUid(); return $this->getGatUid();
break; break;
default: default:
@@ -1042,16 +1086,17 @@ abstract class BaseRoute extends BaseObject implements Persistent
$keys[4] => $this->getRouNextTask(), $keys[4] => $this->getRouNextTask(),
$keys[5] => $this->getRouCase(), $keys[5] => $this->getRouCase(),
$keys[6] => $this->getRouType(), $keys[6] => $this->getRouType(),
$keys[7] => $this->getRouCondition(), $keys[7] => $this->getRouDefault(),
$keys[8] => $this->getRouToLastUser(), $keys[8] => $this->getRouCondition(),
$keys[9] => $this->getRouOptional(), $keys[9] => $this->getRouToLastUser(),
$keys[10] => $this->getRouSendEmail(), $keys[10] => $this->getRouOptional(),
$keys[11] => $this->getRouSourceanchor(), $keys[11] => $this->getRouSendEmail(),
$keys[12] => $this->getRouTargetanchor(), $keys[12] => $this->getRouSourceanchor(),
$keys[13] => $this->getRouToPort(), $keys[13] => $this->getRouTargetanchor(),
$keys[14] => $this->getRouFromPort(), $keys[14] => $this->getRouToPort(),
$keys[15] => $this->getRouEvnUid(), $keys[15] => $this->getRouFromPort(),
$keys[16] => $this->getGatUid(), $keys[16] => $this->getRouEvnUid(),
$keys[17] => $this->getGatUid(),
); );
return $result; return $result;
} }
@@ -1105,33 +1150,36 @@ abstract class BaseRoute extends BaseObject implements Persistent
$this->setRouType($value); $this->setRouType($value);
break; break;
case 7: case 7:
$this->setRouCondition($value); $this->setRouDefault($value);
break; break;
case 8: case 8:
$this->setRouToLastUser($value); $this->setRouCondition($value);
break; break;
case 9: case 9:
$this->setRouOptional($value); $this->setRouToLastUser($value);
break; break;
case 10: case 10:
$this->setRouSendEmail($value); $this->setRouOptional($value);
break; break;
case 11: case 11:
$this->setRouSourceanchor($value); $this->setRouSendEmail($value);
break; break;
case 12: case 12:
$this->setRouTargetanchor($value); $this->setRouSourceanchor($value);
break; break;
case 13: case 13:
$this->setRouToPort($value); $this->setRouTargetanchor($value);
break; break;
case 14: case 14:
$this->setRouFromPort($value); $this->setRouToPort($value);
break; break;
case 15: case 15:
$this->setRouEvnUid($value); $this->setRouFromPort($value);
break; break;
case 16: case 16:
$this->setRouEvnUid($value);
break;
case 17:
$this->setGatUid($value); $this->setGatUid($value);
break; break;
} // switch() } // switch()
@@ -1186,43 +1234,47 @@ abstract class BaseRoute extends BaseObject implements Persistent
} }
if (array_key_exists($keys[7], $arr)) { if (array_key_exists($keys[7], $arr)) {
$this->setRouCondition($arr[$keys[7]]); $this->setRouDefault($arr[$keys[7]]);
} }
if (array_key_exists($keys[8], $arr)) { if (array_key_exists($keys[8], $arr)) {
$this->setRouToLastUser($arr[$keys[8]]); $this->setRouCondition($arr[$keys[8]]);
} }
if (array_key_exists($keys[9], $arr)) { if (array_key_exists($keys[9], $arr)) {
$this->setRouOptional($arr[$keys[9]]); $this->setRouToLastUser($arr[$keys[9]]);
} }
if (array_key_exists($keys[10], $arr)) { if (array_key_exists($keys[10], $arr)) {
$this->setRouSendEmail($arr[$keys[10]]); $this->setRouOptional($arr[$keys[10]]);
} }
if (array_key_exists($keys[11], $arr)) { if (array_key_exists($keys[11], $arr)) {
$this->setRouSourceanchor($arr[$keys[11]]); $this->setRouSendEmail($arr[$keys[11]]);
} }
if (array_key_exists($keys[12], $arr)) { if (array_key_exists($keys[12], $arr)) {
$this->setRouTargetanchor($arr[$keys[12]]); $this->setRouSourceanchor($arr[$keys[12]]);
} }
if (array_key_exists($keys[13], $arr)) { if (array_key_exists($keys[13], $arr)) {
$this->setRouToPort($arr[$keys[13]]); $this->setRouTargetanchor($arr[$keys[13]]);
} }
if (array_key_exists($keys[14], $arr)) { if (array_key_exists($keys[14], $arr)) {
$this->setRouFromPort($arr[$keys[14]]); $this->setRouToPort($arr[$keys[14]]);
} }
if (array_key_exists($keys[15], $arr)) { if (array_key_exists($keys[15], $arr)) {
$this->setRouEvnUid($arr[$keys[15]]); $this->setRouFromPort($arr[$keys[15]]);
} }
if (array_key_exists($keys[16], $arr)) { if (array_key_exists($keys[16], $arr)) {
$this->setGatUid($arr[$keys[16]]); $this->setRouEvnUid($arr[$keys[16]]);
}
if (array_key_exists($keys[17], $arr)) {
$this->setGatUid($arr[$keys[17]]);
} }
} }
@@ -1264,6 +1316,10 @@ abstract class BaseRoute extends BaseObject implements Persistent
$criteria->add(RoutePeer::ROU_TYPE, $this->rou_type); $criteria->add(RoutePeer::ROU_TYPE, $this->rou_type);
} }
if ($this->isColumnModified(RoutePeer::ROU_DEFAULT)) {
$criteria->add(RoutePeer::ROU_DEFAULT, $this->rou_default);
}
if ($this->isColumnModified(RoutePeer::ROU_CONDITION)) { if ($this->isColumnModified(RoutePeer::ROU_CONDITION)) {
$criteria->add(RoutePeer::ROU_CONDITION, $this->rou_condition); $criteria->add(RoutePeer::ROU_CONDITION, $this->rou_condition);
} }
@@ -1370,6 +1426,8 @@ abstract class BaseRoute extends BaseObject implements Persistent
$copyObj->setRouType($this->rou_type); $copyObj->setRouType($this->rou_type);
$copyObj->setRouDefault($this->rou_default);
$copyObj->setRouCondition($this->rou_condition); $copyObj->setRouCondition($this->rou_condition);
$copyObj->setRouToLastUser($this->rou_to_last_user); $copyObj->setRouToLastUser($this->rou_to_last_user);

View File

@@ -25,7 +25,7 @@ abstract class BaseRoutePeer
const CLASS_DEFAULT = 'classes.model.Route'; const CLASS_DEFAULT = 'classes.model.Route';
/** The total number of columns. */ /** The total number of columns. */
const NUM_COLUMNS = 17; const NUM_COLUMNS = 18;
/** The number of lazy-loaded columns. */ /** The number of lazy-loaded columns. */
const NUM_LAZY_LOAD_COLUMNS = 0; const NUM_LAZY_LOAD_COLUMNS = 0;
@@ -52,6 +52,9 @@ abstract class BaseRoutePeer
/** the column name for the ROU_TYPE field */ /** the column name for the ROU_TYPE field */
const ROU_TYPE = 'ROUTE.ROU_TYPE'; const ROU_TYPE = 'ROUTE.ROU_TYPE';
/** the column name for the ROU_DEFAULT field */
const ROU_DEFAULT = 'ROUTE.ROU_DEFAULT';
/** the column name for the ROU_CONDITION field */ /** the column name for the ROU_CONDITION field */
const ROU_CONDITION = 'ROUTE.ROU_CONDITION'; const ROU_CONDITION = 'ROUTE.ROU_CONDITION';
@@ -93,10 +96,10 @@ abstract class BaseRoutePeer
* e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id'
*/ */
private static $fieldNames = array ( private static $fieldNames = array (
BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', ), BasePeer::TYPE_PHPNAME => array ('RouUid', 'RouParent', 'ProUid', 'TasUid', 'RouNextTask', 'RouCase', 'RouType', 'RouDefault', 'RouCondition', 'RouToLastUser', 'RouOptional', 'RouSendEmail', 'RouSourceanchor', 'RouTargetanchor', 'RouToPort', 'RouFromPort', 'RouEvnUid', 'GatUid', ),
BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, ), BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID, RoutePeer::ROU_PARENT, RoutePeer::PRO_UID, RoutePeer::TAS_UID, RoutePeer::ROU_NEXT_TASK, RoutePeer::ROU_CASE, RoutePeer::ROU_TYPE, RoutePeer::ROU_DEFAULT, RoutePeer::ROU_CONDITION, RoutePeer::ROU_TO_LAST_USER, RoutePeer::ROU_OPTIONAL, RoutePeer::ROU_SEND_EMAIL, RoutePeer::ROU_SOURCEANCHOR, RoutePeer::ROU_TARGETANCHOR, RoutePeer::ROU_TO_PORT, RoutePeer::ROU_FROM_PORT, RoutePeer::ROU_EVN_UID, RoutePeer::GAT_UID, ),
BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', ), BasePeer::TYPE_FIELDNAME => array ('ROU_UID', 'ROU_PARENT', 'PRO_UID', 'TAS_UID', 'ROU_NEXT_TASK', 'ROU_CASE', 'ROU_TYPE', 'ROU_DEFAULT', 'ROU_CONDITION', 'ROU_TO_LAST_USER', 'ROU_OPTIONAL', 'ROU_SEND_EMAIL', 'ROU_SOURCEANCHOR', 'ROU_TARGETANCHOR', 'ROU_TO_PORT', 'ROU_FROM_PORT', 'ROU_EVN_UID', 'GAT_UID', ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, )
); );
/** /**
@@ -106,10 +109,10 @@ abstract class BaseRoutePeer
* e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0
*/ */
private static $fieldKeys = array ( private static $fieldKeys = array (
BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouCondition' => 7, 'RouToLastUser' => 8, 'RouOptional' => 9, 'RouSendEmail' => 10, 'RouSourceanchor' => 11, 'RouTargetanchor' => 12, 'RouToPort' => 13, 'RouFromPort' => 14, 'RouEvnUid' => 15, 'GatUid' => 16, ), BasePeer::TYPE_PHPNAME => array ('RouUid' => 0, 'RouParent' => 1, 'ProUid' => 2, 'TasUid' => 3, 'RouNextTask' => 4, 'RouCase' => 5, 'RouType' => 6, 'RouDefault' => 7, 'RouCondition' => 8, 'RouToLastUser' => 9, 'RouOptional' => 10, 'RouSendEmail' => 11, 'RouSourceanchor' => 12, 'RouTargetanchor' => 13, 'RouToPort' => 14, 'RouFromPort' => 15, 'RouEvnUid' => 16, 'GatUid' => 17, ),
BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_CONDITION => 7, RoutePeer::ROU_TO_LAST_USER => 8, RoutePeer::ROU_OPTIONAL => 9, RoutePeer::ROU_SEND_EMAIL => 10, RoutePeer::ROU_SOURCEANCHOR => 11, RoutePeer::ROU_TARGETANCHOR => 12, RoutePeer::ROU_TO_PORT => 13, RoutePeer::ROU_FROM_PORT => 14, RoutePeer::ROU_EVN_UID => 15, RoutePeer::GAT_UID => 16, ), BasePeer::TYPE_COLNAME => array (RoutePeer::ROU_UID => 0, RoutePeer::ROU_PARENT => 1, RoutePeer::PRO_UID => 2, RoutePeer::TAS_UID => 3, RoutePeer::ROU_NEXT_TASK => 4, RoutePeer::ROU_CASE => 5, RoutePeer::ROU_TYPE => 6, RoutePeer::ROU_DEFAULT => 7, RoutePeer::ROU_CONDITION => 8, RoutePeer::ROU_TO_LAST_USER => 9, RoutePeer::ROU_OPTIONAL => 10, RoutePeer::ROU_SEND_EMAIL => 11, RoutePeer::ROU_SOURCEANCHOR => 12, RoutePeer::ROU_TARGETANCHOR => 13, RoutePeer::ROU_TO_PORT => 14, RoutePeer::ROU_FROM_PORT => 15, RoutePeer::ROU_EVN_UID => 16, RoutePeer::GAT_UID => 17, ),
BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_CONDITION' => 7, 'ROU_TO_LAST_USER' => 8, 'ROU_OPTIONAL' => 9, 'ROU_SEND_EMAIL' => 10, 'ROU_SOURCEANCHOR' => 11, 'ROU_TARGETANCHOR' => 12, 'ROU_TO_PORT' => 13, 'ROU_FROM_PORT' => 14, 'ROU_EVN_UID' => 15, 'GAT_UID' => 16, ), BasePeer::TYPE_FIELDNAME => array ('ROU_UID' => 0, 'ROU_PARENT' => 1, 'PRO_UID' => 2, 'TAS_UID' => 3, 'ROU_NEXT_TASK' => 4, 'ROU_CASE' => 5, 'ROU_TYPE' => 6, 'ROU_DEFAULT' => 7, 'ROU_CONDITION' => 8, 'ROU_TO_LAST_USER' => 9, 'ROU_OPTIONAL' => 10, 'ROU_SEND_EMAIL' => 11, 'ROU_SOURCEANCHOR' => 12, 'ROU_TARGETANCHOR' => 13, 'ROU_TO_PORT' => 14, 'ROU_FROM_PORT' => 15, 'ROU_EVN_UID' => 16, 'GAT_UID' => 17, ),
BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, ) BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, )
); );
/** /**
@@ -224,6 +227,8 @@ abstract class BaseRoutePeer
$criteria->addSelectColumn(RoutePeer::ROU_TYPE); $criteria->addSelectColumn(RoutePeer::ROU_TYPE);
$criteria->addSelectColumn(RoutePeer::ROU_DEFAULT);
$criteria->addSelectColumn(RoutePeer::ROU_CONDITION); $criteria->addSelectColumn(RoutePeer::ROU_CONDITION);
$criteria->addSelectColumn(RoutePeer::ROU_TO_LAST_USER); $criteria->addSelectColumn(RoutePeer::ROU_TO_LAST_USER);
@@ -589,6 +594,9 @@ abstract class BaseRoutePeer
if ($obj->isNew() || $obj->isColumnModified(RoutePeer::ROU_TYPE)) if ($obj->isNew() || $obj->isColumnModified(RoutePeer::ROU_TYPE))
$columns[RoutePeer::ROU_TYPE] = $obj->getRouType(); $columns[RoutePeer::ROU_TYPE] = $obj->getRouType();
if ($obj->isNew() || $obj->isColumnModified(RoutePeer::ROU_DEFAULT))
$columns[RoutePeer::ROU_DEFAULT] = $obj->getRouDefault();
if ($obj->isNew() || $obj->isColumnModified(RoutePeer::ROU_TO_LAST_USER)) if ($obj->isNew() || $obj->isColumnModified(RoutePeer::ROU_TO_LAST_USER))
$columns[RoutePeer::ROU_TO_LAST_USER] = $obj->getRouToLastUser(); $columns[RoutePeer::ROU_TO_LAST_USER] = $obj->getRouToLastUser();

View File

@@ -1020,6 +1020,7 @@
<column name="ROU_NEXT_TASK" type="VARCHAR" size="32" required="true" default="0"/> <column name="ROU_NEXT_TASK" type="VARCHAR" size="32" required="true" default="0"/>
<column name="ROU_CASE" type="INTEGER" required="true" default="0"/> <column name="ROU_CASE" type="INTEGER" required="true" default="0"/>
<column name="ROU_TYPE" type="VARCHAR" size="25" required="true" default="SEQUENTIAL"/> <column name="ROU_TYPE" type="VARCHAR" size="25" required="true" default="SEQUENTIAL"/>
<column name="ROU_DEFAULT" type="INTEGER" default="0" required="true" />
<column name="ROU_CONDITION" type="VARCHAR" size="512" required="true" default=""/> <column name="ROU_CONDITION" type="VARCHAR" size="512" required="true" default=""/>
<column name="ROU_TO_LAST_USER" type="VARCHAR" size="20" required="true" default="FALSE"/> <column name="ROU_TO_LAST_USER" type="VARCHAR" size="20" required="true" default="FALSE"/>
<column name="ROU_OPTIONAL" type="VARCHAR" size="20" required="true" default="FALSE"/> <column name="ROU_OPTIONAL" type="VARCHAR" size="20" required="true" default="FALSE"/>
@@ -1049,6 +1050,9 @@
<rule name="validValues" value="SEQUENTIAL|EVALUATE|SELECT|PARALLEL|PARALLEL-BY-EVALUATION|SEC-JOIN|DISCRIMINATOR" message="Please select a valid Route Type."/> <rule name="validValues" value="SEQUENTIAL|EVALUATE|SELECT|PARALLEL|PARALLEL-BY-EVALUATION|SEC-JOIN|DISCRIMINATOR" message="Please select a valid Route Type."/>
<rule name="required" message="Route type is required."/> <rule name="required" message="Route type is required."/>
</validator> </validator>
<validator column="ROU_DEFAULT">
<rule name="validValues" value="0|1" message="Please enter a valid value for ROU_DEFAULT" />
</validator>
<validator column="ROU_TO_LAST_USER"> <validator column="ROU_TO_LAST_USER">
<rule name="validValues" value="FALSE|TRUE" message="Please select a valid value for ROU_TO_LAST_USER ."/> <rule name="validValues" value="FALSE|TRUE" message="Please select a valid value for ROU_TO_LAST_USER ."/>
</validator> </validator>
@@ -2555,7 +2559,7 @@
<column name="HISTORY_DATE" type="TIMESTAMP" required="false"/> <column name="HISTORY_DATE" type="TIMESTAMP" required="false"/>
<column name="HISTORY_DATA" type="LONGVARCHAR" required="true"/> <column name="HISTORY_DATA" type="LONGVARCHAR" required="true"/>
<validator column="OBJ_TYPE"> <validator column="OBJ_TYPE">
<rule name="validValues" value="DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK" message="Please select a valid value for OBJ_TYPE." /> <rule name="validValues" value="DYNAFORM|INPUT_DOCUMENT|OUTPUT_DOCUMENT|EXTERNAL|ASSIGN_TASK" message="Please enter a valid value for OBJ_TYPE" />
</validator> </validator>
<index name="indexAppHistory"> <index name="indexAppHistory">
<index-column name="APP_UID"/> <index-column name="APP_UID"/>

View File

@@ -1089,6 +1089,7 @@ CREATE TABLE [ROUTE]
[ROU_NEXT_TASK] VARCHAR(32) default '0' NOT NULL, [ROU_NEXT_TASK] VARCHAR(32) default '0' NOT NULL,
[ROU_CASE] INT default 0 NOT NULL, [ROU_CASE] INT default 0 NOT NULL,
[ROU_TYPE] VARCHAR(25) default 'SEQUENTIAL' NOT NULL, [ROU_TYPE] VARCHAR(25) default 'SEQUENTIAL' NOT NULL,
[ROU_DEFAULT] INT default 0 NOT NULL,
[ROU_CONDITION] VARCHAR(512) default '' NOT NULL, [ROU_CONDITION] VARCHAR(512) default '' NOT NULL,
[ROU_TO_LAST_USER] VARCHAR(20) default 'FALSE' NOT NULL, [ROU_TO_LAST_USER] VARCHAR(20) default 'FALSE' NOT NULL,
[ROU_OPTIONAL] VARCHAR(20) default 'FALSE' NOT NULL, [ROU_OPTIONAL] VARCHAR(20) default 'FALSE' NOT NULL,

View File

@@ -489,6 +489,7 @@ CREATE TABLE `ROUTE`
`ROU_NEXT_TASK` VARCHAR(32) default '0' NOT NULL, `ROU_NEXT_TASK` VARCHAR(32) default '0' NOT NULL,
`ROU_CASE` INTEGER default 0 NOT NULL, `ROU_CASE` INTEGER default 0 NOT NULL,
`ROU_TYPE` VARCHAR(25) default 'SEQUENTIAL' NOT NULL, `ROU_TYPE` VARCHAR(25) default 'SEQUENTIAL' NOT NULL,
`ROU_DEFAULT` INTEGER default 0 NOT NULL,
`ROU_CONDITION` VARCHAR(512) default '' NOT NULL, `ROU_CONDITION` VARCHAR(512) default '' NOT NULL,
`ROU_TO_LAST_USER` VARCHAR(20) default 'FALSE' NOT NULL, `ROU_TO_LAST_USER` VARCHAR(20) default 'FALSE' NOT NULL,
`ROU_OPTIONAL` VARCHAR(20) default 'FALSE' NOT NULL, `ROU_OPTIONAL` VARCHAR(20) default 'FALSE' NOT NULL,

View File

@@ -608,6 +608,7 @@ CREATE TABLE "ROUTE"
"ROU_NEXT_TASK" VARCHAR2(32) default '0' NOT NULL, "ROU_NEXT_TASK" VARCHAR2(32) default '0' NOT NULL,
"ROU_CASE" NUMBER default 0 NOT NULL, "ROU_CASE" NUMBER default 0 NOT NULL,
"ROU_TYPE" VARCHAR2(25) default 'SEQUENTIAL' NOT NULL, "ROU_TYPE" VARCHAR2(25) default 'SEQUENTIAL' NOT NULL,
"ROU_DEFAULT" NUMBER default 0 NOT NULL,
"ROU_CONDITION" VARCHAR2(512) default '' NOT NULL, "ROU_CONDITION" VARCHAR2(512) default '' NOT NULL,
"ROU_TO_LAST_USER" VARCHAR2(20) default 'FALSE' NOT NULL, "ROU_TO_LAST_USER" VARCHAR2(20) default 'FALSE' NOT NULL,
"ROU_OPTIONAL" VARCHAR2(20) default 'FALSE' NOT NULL, "ROU_OPTIONAL" VARCHAR2(20) default 'FALSE' NOT NULL,

View File

@@ -522,7 +522,7 @@ class BpmnWorkflow extends Project\Bpmn
$this->wp->addRoute($activity["ACT_UID"], -1, $routeType, $condition); $this->wp->addRoute($activity["ACT_UID"], -1, $routeType, $condition);
} }
} else { } else {
$this->wp->addRoute($activity["ACT_UID"], $gatewayFlow['FLO_ELEMENT_DEST'], $routeType, $condition); $this->wp->addRoute($activity["ACT_UID"], $gatewayFlow["FLO_ELEMENT_DEST"], $routeType, $condition, ($gatewayFlow["FLO_TYPE"] == "DEFAULT")? 1 : 0);
} }
break; break;
default: default:

View File

@@ -364,7 +364,7 @@ class Workflow extends Handler
* @return string * @return string
* @throws \Exception * @throws \Exception
*/ */
public function addRoute($fromTasUid, $toTasUid, $type, $condition = "") public function addRoute($fromTasUid, $toTasUid, $type, $condition = "", $default = 0)
{ {
try { try {
$validTypes = array("SEQUENTIAL", "SELECT", "EVALUATE", "PARALLEL", "PARALLEL-BY-EVALUATION", "SEC-JOIN", "DISCRIMINATOR"); $validTypes = array("SEQUENTIAL", "SELECT", "EVALUATE", "PARALLEL", "PARALLEL-BY-EVALUATION", "SEC-JOIN", "DISCRIMINATOR");
@@ -390,12 +390,13 @@ class Workflow extends Handler
)); ));
if (is_null($route)) { if (is_null($route)) {
$result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition); $result = $this->saveNewPattern($this->proUid, $fromTasUid, $toTasUid, $type, $condition, $default);
} else { } else {
$result = $this->updateRoute($route->getRouUid(), array( $result = $this->updateRoute($route->getRouUid(), array(
"TAS_UID" => $fromTasUid, "TAS_UID" => $fromTasUid,
"ROU_NEXT_TASK" => $toTasUid, "ROU_NEXT_TASK" => $toTasUid,
"ROU_TYPE" => $type, "ROU_TYPE" => $type,
"ROU_DEFAULT" => $default,
"ROU_CONDITION" => $condition "ROU_CONDITION" => $condition
)); ));
} }
@@ -503,7 +504,7 @@ class Workflow extends Handler
} }
} }
private function saveNewPattern($sProcessUID = '', $sTaskUID = '', $sNextTask = '', $sType = '', $condition = '') private function saveNewPattern($sProcessUID = "", $sTaskUID = "", $sNextTask = "", $sType = "", $condition = "", $default = 0)
{ {
try { try {
self::log("Add Route from task: $sTaskUID -> to task: $sNextTask ($sType)"); self::log("Add Route from task: $sTaskUID -> to task: $sNextTask ($sType)");
@@ -523,8 +524,9 @@ class Workflow extends Handler
$aFields['PRO_UID'] = $sProcessUID; $aFields['PRO_UID'] = $sProcessUID;
$aFields['TAS_UID'] = $sTaskUID; $aFields['TAS_UID'] = $sTaskUID;
$aFields['ROU_NEXT_TASK'] = $sNextTask; $aFields['ROU_NEXT_TASK'] = $sNextTask;
$aFields['ROU_TYPE'] = $sType; $aFields["ROU_CASE"] = (int)($aRow["ROUTE_NUMBER"]) + 1;
$aFields['ROU_CASE'] = (int) $aRow['ROUTE_NUMBER'] + 1; $aFields["ROU_TYPE"] = $sType;
$aFields["ROU_DEFAULT"] = $default;
if(! empty($condition)) { if(! empty($condition)) {
$aFields['ROU_CONDITION'] = $condition; $aFields['ROU_CONDITION'] = $condition;