From 995be39eb9db8454f8e9e103a3be642b7d52ece5 Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Mon, 22 Oct 2012 13:55:35 -0400 Subject: [PATCH] BUG 4940 "Add option to set a time limit on 'self serve'..." SOLVED - New feature - Add option to set a time limit on "Self service" routing - Added new feature in properties task - This new feature is activated by the execution of cron.php: cron.php [+wWORKSPACE] unassigned-case * Available from version 2.0.45 --- workflow/engine/bin/cron.php | 2 +- workflow/engine/bin/cron_single.php | 134 +++++++++- workflow/engine/classes/class.processMap.php | 15 +- workflow/engine/classes/model/Triggers.php | 32 +++ .../classes/model/map/TaskMapBuilder.php | 8 + workflow/engine/classes/model/om/BaseTask.php | 234 +++++++++++++++++- .../engine/classes/model/om/BaseTaskPeer.php | 38 ++- workflow/engine/config/schema.xml | 4 + .../js/processmap/core/processes_Map.js | 47 +++- .../xmlform/tasks/tasks_AssignmentRules.xml | 142 ++++++++--- 10 files changed, 600 insertions(+), 56 deletions(-) diff --git a/workflow/engine/bin/cron.php b/workflow/engine/bin/cron.php index cec3f1a28..8c3d93e1b 100755 --- a/workflow/engine/bin/cron.php +++ b/workflow/engine/bin/cron.php @@ -63,7 +63,7 @@ if (file_exists(PATH_DATA . "cron")) { $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron"))); $bCronIsRunning = (boolean)($arrayCron["bCronIsRunning"]); $sLastExecution = $arrayCron["sLastExecution"]; - $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? intval($arrayCron["processcTimeProcess"]) : 10; + $processcTimeProcess = (isset($arrayCron["processcTimeProcess"]))? intval($arrayCron["processcTimeProcess"]) : 10; //Minutes $processcTimeStart = (isset($arrayCron["processcTimeStart"]))? $arrayCron["processcTimeStart"] : 0; } diff --git a/workflow/engine/bin/cron_single.php b/workflow/engine/bin/cron_single.php index d303e1128..9a2b984b3 100755 --- a/workflow/engine/bin/cron_single.php +++ b/workflow/engine/bin/cron_single.php @@ -95,7 +95,10 @@ require_once ("classes/model/AppDelegation.php"); require_once ("classes/model/Event.php"); require_once ("classes/model/AppEvent.php"); require_once ("classes/model/CaseScheduler.php"); -//G::loadClass("pmScript"); + +G::LoadClass("case"); +G::LoadClass("dates"); +G::LoadClass("pmScript"); if (!defined('SYS_SYS')) { $sObject = $argv[1]; @@ -222,6 +225,7 @@ function processWorkspace() executeEvents($sLastExecution); executeScheduledCases(); executeUpdateAppTitle(); + executeCaseSelfService(); executePlugins(); } catch (Exception $oError) { saveLog("main", "error", "Error processing workspace : " . $oError->getMessage() . "\n"); @@ -335,7 +339,7 @@ function executePlugins() if (method_exists($oPlugin, 'executeCron')) { $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron"))); - $arrayCron["processcTimeProcess"] = 60; + $arrayCron["processcTimeProcess"] = 60; //Minutes $arrayCron["processcTimeStart"] = time(); @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); @@ -494,6 +498,132 @@ function executeUpdateAppTitle() } } +function executeCaseSelfService() +{ + try { + global $sFilter; + + if ($sFilter != "" && strpos($sFilter, "unassigned-case") === false) { + return false; + } + + $criteria = new Criteria("workflow"); + + //SELECT + $criteria->addSelectColumn(AppCacheViewPeer::APP_UID); + $criteria->addSelectColumn(AppCacheViewPeer::DEL_INDEX); + $criteria->addSelectColumn(AppCacheViewPeer::DEL_DELEGATE_DATE); + $criteria->addSelectColumn(AppCacheViewPeer::APP_NUMBER); + $criteria->addSelectColumn(AppCacheViewPeer::PRO_UID); + $criteria->addSelectColumn(TaskPeer::TAS_UID); + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME); + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME_UNIT); + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID); + + //FROM + $condition = array(); + $condition[] = array(AppCacheViewPeer::TAS_UID, TaskPeer::TAS_UID); + $condition[] = array(TaskPeer::TAS_SELFSERVICE_TIMEOUT, 1); + $criteria->addJoinMC($condition, Criteria::LEFT_JOIN); + + //WHERE + $criteria->add(AppCacheViewPeer::USR_UID, ""); + $criteria->add(AppCacheViewPeer::DEL_THREAD_STATUS, "OPEN"); + + //QUERY + $rsCriteria = AppCacheViewPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + setExecutionMessage("Unassigned case"); + saveLog("unassignedCase", "action", "Unassigned case", "c"); + + $date = new dates(); + + while ($rsCriteria->next()) { + $row = $rsCriteria->getRow(); + + $appcacheAppUid = $row["APP_UID"]; + $appcacheDelIndex = $row["DEL_INDEX"]; + $appcacheDelDelegateDate = $row["DEL_DELEGATE_DATE"]; + $appcacheAppNumber = $row["APP_NUMBER"]; + $appcacheProUid = $row["PRO_UID"]; + $taskUid = $row["TAS_UID"]; + $taskSelfServiceTime = intval($row["TAS_SELFSERVICE_TIME"]); + $taskSelfServiceTimeUnit = $row["TAS_SELFSERVICE_TIME_UNIT"]; + $taskSelfServiceTriggerUid = $row["TAS_SELFSERVICE_TRIGGER_UID"]; + + $dueDate = $date->calculateDate( + $appcacheDelDelegateDate, + $taskSelfServiceTime, + $taskSelfServiceTimeUnit, //HOURS|DAYS + 1 + ); + + if (time() > $dueDate["DUE_DATE_SECONDS"]) { + $sessProcess = null; + $sessProcessSw = 0; + + //Load data + $case = new Cases(); + $appFields = $case->loadCase($appcacheAppUid); + + $appFields["APP_DATA"]["APPLICATION"] = $appcacheAppUid; + + if (isset($_SESSION["PROCESS"])) { + $sessProcess = $_SESSION["PROCESS"]; + $sessProcessSw = 1; + } + + $_SESSION["PROCESS"] = $appFields["PRO_UID"]; + + //Execute trigger + $criteriaTgr = new Criteria(); + $criteriaTgr->add(TriggersPeer::TRI_UID, $taskSelfServiceTriggerUid); + + $rsCriteriaTgr = TriggersPeer::doSelectRS($criteriaTgr); + $rsCriteriaTgr->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + if ($rsCriteriaTgr->next()) { + $row = $rsCriteriaTgr->getRow(); + + if (is_array($row) && $row["TRI_TYPE"] == "SCRIPT") { + $arrayCron = unserialize(trim(@file_get_contents(PATH_DATA . "cron"))); + $arrayCron["processcTimeProcess"] = 60; //Minutes + $arrayCron["processcTimeStart"] = time(); + @file_put_contents(PATH_DATA . "cron", serialize($arrayCron)); + + //Trigger + global $oPMScript; + + $oPMScript = new PMScript(); + $oPMScript->setFields($appFields["APP_DATA"]); + $oPMScript->setScript($row["TRI_WEBBOT"]); + $oPMScript->execute(); + + $appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], $oPMScript->aFields); + + $case->updateCase($appFields["APP_UID"], $appFields); + + saveLog("unassignedCase", "action", "OK Executed tigger to the case $appcacheAppNumber"); + } + } + + unset($_SESSION["PROCESS"]); + + if ($sessProcessSw == 1) { + $_SESSION["PROCESS"] = $sessProcess; + } + } + } + + setExecutionResultMessage("DONE"); + } catch (Exception $e) { + setExecutionResultMessage("WITH ERRORS", "error"); + eprintln(" '-" . $e->getMessage(), "red"); + saveLog("unassignedCase", "error", "Error in unassigned case: " . $e->getMessage()); + } +} + function saveLog($sSource, $sType, $sDescription) { try { diff --git a/workflow/engine/classes/class.processMap.php b/workflow/engine/classes/class.processMap.php index 2c5947bb9..8929d2092 100755 --- a/workflow/engine/classes/class.processMap.php +++ b/workflow/engine/classes/class.processMap.php @@ -1534,6 +1534,15 @@ class processMap //If the function returns a DEFAULT calendar it means that this object doesn't have assigned any calendar $aFields['TAS_CALENDAR'] = $calendarInfo['CALENDAR_APPLIED'] != 'DEFAULT' ? $calendarInfo['CALENDAR_UID'] : ""; } + + if ($iForm == 2) { + switch ($aFields["TAS_ASSIGN_TYPE"]) { + case "SELF_SERVICE": + $aFields["TAS_ASSIGN_TYPE"] = (!empty($aFields["TAS_GROUP_VARIABLE"]))? "SELF_SERVICE_EVALUATE" : $aFields["TAS_ASSIGN_TYPE"]; + break; + } + } + global $G_PUBLISH; G::LoadClass( 'xmlfield_InputPM' ); $G_PUBLISH = new Publisher(); @@ -3363,7 +3372,7 @@ class processMap $oCriteria->addSelectColumn(ProcessUserPeer::USR_UID); $oCriteria->addSelectColumn(ProcessUserPeer::PRO_UID); $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE); - + $aConditions [] = array(ProcessUserPeer::USR_UID, ContentPeer::CON_ID); $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ()); $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ()); @@ -3463,10 +3472,10 @@ class processMap $oCriteria->addSelectColumn(GroupwfPeer::GRP_UID); $oCriteria->addAsColumn('GRP_TITLE', ContentPeer::CON_VALUE); - $aConditions [] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID); + $aConditions [] = array(GroupwfPeer::GRP_UID, ContentPeer::CON_ID); $aConditions [] = array(ContentPeer::CON_CATEGORY, DBAdapter::getStringDelimiter () . 'GRP_TITLE' . DBAdapter::getStringDelimiter ()); $aConditions [] = array(ContentPeer::CON_LANG, DBAdapter::getStringDelimiter () . SYS_LANG . DBAdapter::getStringDelimiter ()); - + $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(GroupwfPeer::GRP_UID, $aGRUS, Criteria::NOT_IN); diff --git a/workflow/engine/classes/model/Triggers.php b/workflow/engine/classes/model/Triggers.php index dbc0e7a32..7e666f453 100755 --- a/workflow/engine/classes/model/Triggers.php +++ b/workflow/engine/classes/model/Triggers.php @@ -322,6 +322,38 @@ class Triggers extends BaseTriggers array_push($oResult->dependencies['Tasks'], Array('UID'=>($oTask->getTasUid()), 'DESCRIPTION'=>($oTask->getTasTitle()))); } } + + //Tasks, assignment rules dependencies + $criteria = new Criteria(); + + $criteria->addSelectColumn(TaskPeer::TAS_UID); + $criteria->add(TaskPeer::TAS_SELFSERVICE_TIMEOUT, 1); + $criteria->add(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID, $TRI_UID); + + $rsCriteria = TaskPeer::doSelectRS($criteria); + $rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC); + + $arrayRow = array(); + + while ($rsCriteria->next()) { + array_push($arrayRow, $rsCriteria->getRow()); + } + + $oResult->dependencies["Assignment rules"] = array(); + + if ($oResult->code == 0 && count($arrayRow) == 0) { + $oResult->code = 0; + } else { + if (count($arrayRow) > 0) { + foreach ($arrayRow as $row) { + $task = TaskPeer::retrieveByPK($row["TAS_UID"]); + array_push($oResult->dependencies["Assignment rules"], array("UID" => $task->getTasUid(), "DESCRIPTION" => $task->getTasTitle())); + } + + $oResult->code = 1; + } + } + return $oResult; } } diff --git a/workflow/engine/classes/model/map/TaskMapBuilder.php b/workflow/engine/classes/model/map/TaskMapBuilder.php index 6ae043282..50d031267 100755 --- a/workflow/engine/classes/model/map/TaskMapBuilder.php +++ b/workflow/engine/classes/model/map/TaskMapBuilder.php @@ -149,6 +149,14 @@ class TaskMapBuilder $tMap->addColumn('TAS_DERIVATION_SCREEN_TPL', 'TasDerivationScreenTpl', 'string', CreoleTypes::VARCHAR, false, 128); + $tMap->addColumn('TAS_SELFSERVICE_TIMEOUT', 'TasSelfserviceTimeout', 'int', CreoleTypes::INTEGER, false, null); + + $tMap->addColumn('TAS_SELFSERVICE_TIME', 'TasSelfserviceTime', 'string', CreoleTypes::VARCHAR, false, 15); + + $tMap->addColumn('TAS_SELFSERVICE_TIME_UNIT', 'TasSelfserviceTimeUnit', 'string', CreoleTypes::VARCHAR, false, 15); + + $tMap->addColumn('TAS_SELFSERVICE_TRIGGER_UID', 'TasSelfserviceTriggerUid', 'string', CreoleTypes::VARCHAR, false, 32); + $tMap->addValidator('TAS_TYPE', 'validValues', 'propel.validator.ValidValuesValidator', 'NORMAL|ADHOC|SUBPROCESS|HIDDEN', 'Please select a valid value for TAS_TYPE.'); $tMap->addValidator('TAS_TIMEUNIT', 'validValues', 'propel.validator.ValidValuesValidator', 'MINUTES|HOURS|DAYS|WEEKS|MONTHS', 'Please select a valid value for TAS_TIMEUNIT.'); diff --git a/workflow/engine/classes/model/om/BaseTask.php b/workflow/engine/classes/model/om/BaseTask.php index e2b1c5b43..f15c778a2 100755 --- a/workflow/engine/classes/model/om/BaseTask.php +++ b/workflow/engine/classes/model/om/BaseTask.php @@ -279,6 +279,30 @@ abstract class BaseTask extends BaseObject implements Persistent */ protected $tas_derivation_screen_tpl = ''; + /** + * The value for the tas_selfservice_timeout field. + * @var int + */ + protected $tas_selfservice_timeout = 0; + + /** + * The value for the tas_selfservice_time field. + * @var string + */ + protected $tas_selfservice_time = ''; + + /** + * The value for the tas_selfservice_time_unit field. + * @var string + */ + protected $tas_selfservice_time_unit = ''; + + /** + * The value for the tas_selfservice_trigger_uid field. + * @var string + */ + protected $tas_selfservice_trigger_uid = ''; + /** * Flag to prevent endless save loop, if this object is referenced * by another object which falls in this transaction. @@ -755,6 +779,50 @@ abstract class BaseTask extends BaseObject implements Persistent return $this->tas_derivation_screen_tpl; } + /** + * Get the [tas_selfservice_timeout] column value. + * + * @return int + */ + public function getTasSelfserviceTimeout() + { + + return $this->tas_selfservice_timeout; + } + + /** + * Get the [tas_selfservice_time] column value. + * + * @return string + */ + public function getTasSelfserviceTime() + { + + return $this->tas_selfservice_time; + } + + /** + * Get the [tas_selfservice_time_unit] column value. + * + * @return string + */ + public function getTasSelfserviceTimeUnit() + { + + return $this->tas_selfservice_time_unit; + } + + /** + * Get the [tas_selfservice_trigger_uid] column value. + * + * @return string + */ + public function getTasSelfserviceTriggerUid() + { + + return $this->tas_selfservice_trigger_uid; + } + /** * Set the value of [pro_uid] column. * @@ -1667,6 +1735,94 @@ abstract class BaseTask extends BaseObject implements Persistent } // setTasDerivationScreenTpl() + /** + * Set the value of [tas_selfservice_timeout] column. + * + * @param int $v new value + * @return void + */ + public function setTasSelfserviceTimeout($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->tas_selfservice_timeout !== $v || $v === 0) { + $this->tas_selfservice_timeout = $v; + $this->modifiedColumns[] = TaskPeer::TAS_SELFSERVICE_TIMEOUT; + } + + } // setTasSelfserviceTimeout() + + /** + * Set the value of [tas_selfservice_time] column. + * + * @param string $v new value + * @return void + */ + public function setTasSelfserviceTime($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->tas_selfservice_time !== $v || $v === '') { + $this->tas_selfservice_time = $v; + $this->modifiedColumns[] = TaskPeer::TAS_SELFSERVICE_TIME; + } + + } // setTasSelfserviceTime() + + /** + * Set the value of [tas_selfservice_time_unit] column. + * + * @param string $v new value + * @return void + */ + public function setTasSelfserviceTimeUnit($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->tas_selfservice_time_unit !== $v || $v === '') { + $this->tas_selfservice_time_unit = $v; + $this->modifiedColumns[] = TaskPeer::TAS_SELFSERVICE_TIME_UNIT; + } + + } // setTasSelfserviceTimeUnit() + + /** + * Set the value of [tas_selfservice_trigger_uid] column. + * + * @param string $v new value + * @return void + */ + public function setTasSelfserviceTriggerUid($v) + { + + // Since the native PHP type for this column is string, + // we will cast the input to a string (if it is not). + if ($v !== null && !is_string($v)) { + $v = (string) $v; + } + + if ($this->tas_selfservice_trigger_uid !== $v || $v === '') { + $this->tas_selfservice_trigger_uid = $v; + $this->modifiedColumns[] = TaskPeer::TAS_SELFSERVICE_TRIGGER_UID; + } + + } // setTasSelfserviceTriggerUid() + /** * Hydrates (populates) the object variables with values from the database resultset. * @@ -1768,12 +1924,20 @@ abstract class BaseTask extends BaseObject implements Persistent $this->tas_derivation_screen_tpl = $rs->getString($startcol + 41); + $this->tas_selfservice_timeout = $rs->getInt($startcol + 42); + + $this->tas_selfservice_time = $rs->getString($startcol + 43); + + $this->tas_selfservice_time_unit = $rs->getString($startcol + 44); + + $this->tas_selfservice_trigger_uid = $rs->getString($startcol + 45); + $this->resetModified(); $this->setNew(false); // FIXME - using NUM_COLUMNS may be clearer. - return $startcol + 42; // 42 = TaskPeer::NUM_COLUMNS - TaskPeer::NUM_LAZY_LOAD_COLUMNS). + return $startcol + 46; // 46 = TaskPeer::NUM_COLUMNS - TaskPeer::NUM_LAZY_LOAD_COLUMNS). } catch (Exception $e) { throw new PropelException("Error populating Task object", $e); @@ -2103,6 +2267,18 @@ abstract class BaseTask extends BaseObject implements Persistent case 41: return $this->getTasDerivationScreenTpl(); break; + case 42: + return $this->getTasSelfserviceTimeout(); + break; + case 43: + return $this->getTasSelfserviceTime(); + break; + case 44: + return $this->getTasSelfserviceTimeUnit(); + break; + case 45: + return $this->getTasSelfserviceTriggerUid(); + break; default: return null; break; @@ -2165,6 +2341,10 @@ abstract class BaseTask extends BaseObject implements Persistent $keys[39] => $this->getTasEvnUid(), $keys[40] => $this->getTasBoundary(), $keys[41] => $this->getTasDerivationScreenTpl(), + $keys[42] => $this->getTasSelfserviceTimeout(), + $keys[43] => $this->getTasSelfserviceTime(), + $keys[44] => $this->getTasSelfserviceTimeUnit(), + $keys[45] => $this->getTasSelfserviceTriggerUid(), ); return $result; } @@ -2322,6 +2502,18 @@ abstract class BaseTask extends BaseObject implements Persistent case 41: $this->setTasDerivationScreenTpl($value); break; + case 42: + $this->setTasSelfserviceTimeout($value); + break; + case 43: + $this->setTasSelfserviceTime($value); + break; + case 44: + $this->setTasSelfserviceTimeUnit($value); + break; + case 45: + $this->setTasSelfserviceTriggerUid($value); + break; } // switch() } @@ -2513,6 +2705,22 @@ abstract class BaseTask extends BaseObject implements Persistent $this->setTasDerivationScreenTpl($arr[$keys[41]]); } + if (array_key_exists($keys[42], $arr)) { + $this->setTasSelfserviceTimeout($arr[$keys[42]]); + } + + if (array_key_exists($keys[43], $arr)) { + $this->setTasSelfserviceTime($arr[$keys[43]]); + } + + if (array_key_exists($keys[44], $arr)) { + $this->setTasSelfserviceTimeUnit($arr[$keys[44]]); + } + + if (array_key_exists($keys[45], $arr)) { + $this->setTasSelfserviceTriggerUid($arr[$keys[45]]); + } + } /** @@ -2692,6 +2900,22 @@ abstract class BaseTask extends BaseObject implements Persistent $criteria->add(TaskPeer::TAS_DERIVATION_SCREEN_TPL, $this->tas_derivation_screen_tpl); } + if ($this->isColumnModified(TaskPeer::TAS_SELFSERVICE_TIMEOUT)) { + $criteria->add(TaskPeer::TAS_SELFSERVICE_TIMEOUT, $this->tas_selfservice_timeout); + } + + if ($this->isColumnModified(TaskPeer::TAS_SELFSERVICE_TIME)) { + $criteria->add(TaskPeer::TAS_SELFSERVICE_TIME, $this->tas_selfservice_time); + } + + if ($this->isColumnModified(TaskPeer::TAS_SELFSERVICE_TIME_UNIT)) { + $criteria->add(TaskPeer::TAS_SELFSERVICE_TIME_UNIT, $this->tas_selfservice_time_unit); + } + + if ($this->isColumnModified(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID)) { + $criteria->add(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID, $this->tas_selfservice_trigger_uid); + } + return $criteria; } @@ -2828,6 +3052,14 @@ abstract class BaseTask extends BaseObject implements Persistent $copyObj->setTasDerivationScreenTpl($this->tas_derivation_screen_tpl); + $copyObj->setTasSelfserviceTimeout($this->tas_selfservice_timeout); + + $copyObj->setTasSelfserviceTime($this->tas_selfservice_time); + + $copyObj->setTasSelfserviceTimeUnit($this->tas_selfservice_time_unit); + + $copyObj->setTasSelfserviceTriggerUid($this->tas_selfservice_trigger_uid); + $copyObj->setNew(true); diff --git a/workflow/engine/classes/model/om/BaseTaskPeer.php b/workflow/engine/classes/model/om/BaseTaskPeer.php index 39385d448..9552a52b2 100755 --- a/workflow/engine/classes/model/om/BaseTaskPeer.php +++ b/workflow/engine/classes/model/om/BaseTaskPeer.php @@ -25,7 +25,7 @@ abstract class BaseTaskPeer const CLASS_DEFAULT = 'classes.model.Task'; /** The total number of columns. */ - const NUM_COLUMNS = 42; + const NUM_COLUMNS = 46; /** The number of lazy-loaded columns. */ const NUM_LAZY_LOAD_COLUMNS = 0; @@ -157,6 +157,18 @@ abstract class BaseTaskPeer /** the column name for the TAS_DERIVATION_SCREEN_TPL field */ const TAS_DERIVATION_SCREEN_TPL = 'TASK.TAS_DERIVATION_SCREEN_TPL'; + /** the column name for the TAS_SELFSERVICE_TIMEOUT field */ + const TAS_SELFSERVICE_TIMEOUT = 'TASK.TAS_SELFSERVICE_TIMEOUT'; + + /** the column name for the TAS_SELFSERVICE_TIME field */ + const TAS_SELFSERVICE_TIME = 'TASK.TAS_SELFSERVICE_TIME'; + + /** the column name for the TAS_SELFSERVICE_TIME_UNIT field */ + const TAS_SELFSERVICE_TIME_UNIT = 'TASK.TAS_SELFSERVICE_TIME_UNIT'; + + /** the column name for the TAS_SELFSERVICE_TRIGGER_UID field */ + const TAS_SELFSERVICE_TRIGGER_UID = 'TASK.TAS_SELFSERVICE_TRIGGER_UID'; + /** The PHP to DB Name Mapping */ private static $phpNameMap = null; @@ -168,10 +180,10 @@ abstract class BaseTaskPeer * e.g. self::$fieldNames[self::TYPE_PHPNAME][0] = 'Id' */ private static $fieldNames = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid', 'TasUid', 'TasType', 'TasDuration', 'TasDelayType', 'TasTemporizer', 'TasTypeDay', 'TasTimeunit', 'TasAlert', 'TasPriorityVariable', 'TasAssignType', 'TasAssignVariable', 'TasGroupVariable', 'TasMiInstanceVariable', 'TasMiCompleteVariable', 'TasAssignLocation', 'TasAssignLocationAdhoc', 'TasTransferFly', 'TasLastAssigned', 'TasUser', 'TasCanUpload', 'TasViewUpload', 'TasViewAdditionalDocumentation', 'TasCanCancel', 'TasOwnerApp', 'StgUid', 'TasCanPause', 'TasCanSendMessage', 'TasCanDeleteDocs', 'TasSelfService', 'TasStart', 'TasToLastUser', 'TasSendLastEmail', 'TasDerivation', 'TasPosx', 'TasPosy', 'TasWidth', 'TasHeight', 'TasColor', 'TasEvnUid', 'TasBoundary', 'TasDerivationScreenTpl', ), - BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID, TaskPeer::TAS_UID, TaskPeer::TAS_TYPE, TaskPeer::TAS_DURATION, TaskPeer::TAS_DELAY_TYPE, TaskPeer::TAS_TEMPORIZER, TaskPeer::TAS_TYPE_DAY, TaskPeer::TAS_TIMEUNIT, TaskPeer::TAS_ALERT, TaskPeer::TAS_PRIORITY_VARIABLE, TaskPeer::TAS_ASSIGN_TYPE, TaskPeer::TAS_ASSIGN_VARIABLE, TaskPeer::TAS_GROUP_VARIABLE, TaskPeer::TAS_MI_INSTANCE_VARIABLE, TaskPeer::TAS_MI_COMPLETE_VARIABLE, TaskPeer::TAS_ASSIGN_LOCATION, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC, TaskPeer::TAS_TRANSFER_FLY, TaskPeer::TAS_LAST_ASSIGNED, TaskPeer::TAS_USER, TaskPeer::TAS_CAN_UPLOAD, TaskPeer::TAS_VIEW_UPLOAD, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION, TaskPeer::TAS_CAN_CANCEL, TaskPeer::TAS_OWNER_APP, TaskPeer::STG_UID, TaskPeer::TAS_CAN_PAUSE, TaskPeer::TAS_CAN_SEND_MESSAGE, TaskPeer::TAS_CAN_DELETE_DOCS, TaskPeer::TAS_SELF_SERVICE, TaskPeer::TAS_START, TaskPeer::TAS_TO_LAST_USER, TaskPeer::TAS_SEND_LAST_EMAIL, TaskPeer::TAS_DERIVATION, TaskPeer::TAS_POSX, TaskPeer::TAS_POSY, TaskPeer::TAS_WIDTH, TaskPeer::TAS_HEIGHT, TaskPeer::TAS_COLOR, TaskPeer::TAS_EVN_UID, TaskPeer::TAS_BOUNDARY, TaskPeer::TAS_DERIVATION_SCREEN_TPL, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'TAS_UID', 'TAS_TYPE', 'TAS_DURATION', 'TAS_DELAY_TYPE', 'TAS_TEMPORIZER', 'TAS_TYPE_DAY', 'TAS_TIMEUNIT', 'TAS_ALERT', 'TAS_PRIORITY_VARIABLE', 'TAS_ASSIGN_TYPE', 'TAS_ASSIGN_VARIABLE', 'TAS_GROUP_VARIABLE', 'TAS_MI_INSTANCE_VARIABLE', 'TAS_MI_COMPLETE_VARIABLE', 'TAS_ASSIGN_LOCATION', 'TAS_ASSIGN_LOCATION_ADHOC', 'TAS_TRANSFER_FLY', 'TAS_LAST_ASSIGNED', 'TAS_USER', 'TAS_CAN_UPLOAD', 'TAS_VIEW_UPLOAD', 'TAS_VIEW_ADDITIONAL_DOCUMENTATION', 'TAS_CAN_CANCEL', 'TAS_OWNER_APP', 'STG_UID', 'TAS_CAN_PAUSE', 'TAS_CAN_SEND_MESSAGE', 'TAS_CAN_DELETE_DOCS', 'TAS_SELF_SERVICE', 'TAS_START', 'TAS_TO_LAST_USER', 'TAS_SEND_LAST_EMAIL', 'TAS_DERIVATION', 'TAS_POSX', 'TAS_POSY', 'TAS_WIDTH', 'TAS_HEIGHT', 'TAS_COLOR', 'TAS_EVN_UID', 'TAS_BOUNDARY', 'TAS_DERIVATION_SCREEN_TPL', ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, ) + BasePeer::TYPE_PHPNAME => array ('ProUid', 'TasUid', 'TasType', 'TasDuration', 'TasDelayType', 'TasTemporizer', 'TasTypeDay', 'TasTimeunit', 'TasAlert', 'TasPriorityVariable', 'TasAssignType', 'TasAssignVariable', 'TasGroupVariable', 'TasMiInstanceVariable', 'TasMiCompleteVariable', 'TasAssignLocation', 'TasAssignLocationAdhoc', 'TasTransferFly', 'TasLastAssigned', 'TasUser', 'TasCanUpload', 'TasViewUpload', 'TasViewAdditionalDocumentation', 'TasCanCancel', 'TasOwnerApp', 'StgUid', 'TasCanPause', 'TasCanSendMessage', 'TasCanDeleteDocs', 'TasSelfService', 'TasStart', 'TasToLastUser', 'TasSendLastEmail', 'TasDerivation', 'TasPosx', 'TasPosy', 'TasWidth', 'TasHeight', 'TasColor', 'TasEvnUid', 'TasBoundary', 'TasDerivationScreenTpl', 'TasSelfserviceTimeout', 'TasSelfserviceTime', 'TasSelfserviceTimeUnit', 'TasSelfserviceTriggerUid', ), + BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID, TaskPeer::TAS_UID, TaskPeer::TAS_TYPE, TaskPeer::TAS_DURATION, TaskPeer::TAS_DELAY_TYPE, TaskPeer::TAS_TEMPORIZER, TaskPeer::TAS_TYPE_DAY, TaskPeer::TAS_TIMEUNIT, TaskPeer::TAS_ALERT, TaskPeer::TAS_PRIORITY_VARIABLE, TaskPeer::TAS_ASSIGN_TYPE, TaskPeer::TAS_ASSIGN_VARIABLE, TaskPeer::TAS_GROUP_VARIABLE, TaskPeer::TAS_MI_INSTANCE_VARIABLE, TaskPeer::TAS_MI_COMPLETE_VARIABLE, TaskPeer::TAS_ASSIGN_LOCATION, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC, TaskPeer::TAS_TRANSFER_FLY, TaskPeer::TAS_LAST_ASSIGNED, TaskPeer::TAS_USER, TaskPeer::TAS_CAN_UPLOAD, TaskPeer::TAS_VIEW_UPLOAD, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION, TaskPeer::TAS_CAN_CANCEL, TaskPeer::TAS_OWNER_APP, TaskPeer::STG_UID, TaskPeer::TAS_CAN_PAUSE, TaskPeer::TAS_CAN_SEND_MESSAGE, TaskPeer::TAS_CAN_DELETE_DOCS, TaskPeer::TAS_SELF_SERVICE, TaskPeer::TAS_START, TaskPeer::TAS_TO_LAST_USER, TaskPeer::TAS_SEND_LAST_EMAIL, TaskPeer::TAS_DERIVATION, TaskPeer::TAS_POSX, TaskPeer::TAS_POSY, TaskPeer::TAS_WIDTH, TaskPeer::TAS_HEIGHT, TaskPeer::TAS_COLOR, TaskPeer::TAS_EVN_UID, TaskPeer::TAS_BOUNDARY, TaskPeer::TAS_DERIVATION_SCREEN_TPL, TaskPeer::TAS_SELFSERVICE_TIMEOUT, TaskPeer::TAS_SELFSERVICE_TIME, TaskPeer::TAS_SELFSERVICE_TIME_UNIT, TaskPeer::TAS_SELFSERVICE_TRIGGER_UID, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID', 'TAS_UID', 'TAS_TYPE', 'TAS_DURATION', 'TAS_DELAY_TYPE', 'TAS_TEMPORIZER', 'TAS_TYPE_DAY', 'TAS_TIMEUNIT', 'TAS_ALERT', 'TAS_PRIORITY_VARIABLE', 'TAS_ASSIGN_TYPE', 'TAS_ASSIGN_VARIABLE', 'TAS_GROUP_VARIABLE', 'TAS_MI_INSTANCE_VARIABLE', 'TAS_MI_COMPLETE_VARIABLE', 'TAS_ASSIGN_LOCATION', 'TAS_ASSIGN_LOCATION_ADHOC', 'TAS_TRANSFER_FLY', 'TAS_LAST_ASSIGNED', 'TAS_USER', 'TAS_CAN_UPLOAD', 'TAS_VIEW_UPLOAD', 'TAS_VIEW_ADDITIONAL_DOCUMENTATION', 'TAS_CAN_CANCEL', 'TAS_OWNER_APP', 'STG_UID', 'TAS_CAN_PAUSE', 'TAS_CAN_SEND_MESSAGE', 'TAS_CAN_DELETE_DOCS', 'TAS_SELF_SERVICE', 'TAS_START', 'TAS_TO_LAST_USER', 'TAS_SEND_LAST_EMAIL', 'TAS_DERIVATION', 'TAS_POSX', 'TAS_POSY', 'TAS_WIDTH', 'TAS_HEIGHT', 'TAS_COLOR', 'TAS_EVN_UID', 'TAS_BOUNDARY', 'TAS_DERIVATION_SCREEN_TPL', 'TAS_SELFSERVICE_TIMEOUT', 'TAS_SELFSERVICE_TIME', 'TAS_SELFSERVICE_TIME_UNIT', 'TAS_SELFSERVICE_TRIGGER_UID', ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ) ); /** @@ -181,10 +193,10 @@ abstract class BaseTaskPeer * e.g. self::$fieldNames[BasePeer::TYPE_PHPNAME]['Id'] = 0 */ private static $fieldKeys = array ( - BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'TasUid' => 1, 'TasType' => 2, 'TasDuration' => 3, 'TasDelayType' => 4, 'TasTemporizer' => 5, 'TasTypeDay' => 6, 'TasTimeunit' => 7, 'TasAlert' => 8, 'TasPriorityVariable' => 9, 'TasAssignType' => 10, 'TasAssignVariable' => 11, 'TasGroupVariable' => 12, 'TasMiInstanceVariable' => 13, 'TasMiCompleteVariable' => 14, 'TasAssignLocation' => 15, 'TasAssignLocationAdhoc' => 16, 'TasTransferFly' => 17, 'TasLastAssigned' => 18, 'TasUser' => 19, 'TasCanUpload' => 20, 'TasViewUpload' => 21, 'TasViewAdditionalDocumentation' => 22, 'TasCanCancel' => 23, 'TasOwnerApp' => 24, 'StgUid' => 25, 'TasCanPause' => 26, 'TasCanSendMessage' => 27, 'TasCanDeleteDocs' => 28, 'TasSelfService' => 29, 'TasStart' => 30, 'TasToLastUser' => 31, 'TasSendLastEmail' => 32, 'TasDerivation' => 33, 'TasPosx' => 34, 'TasPosy' => 35, 'TasWidth' => 36, 'TasHeight' => 37, 'TasColor' => 38, 'TasEvnUid' => 39, 'TasBoundary' => 40, 'TasDerivationScreenTpl' => 41, ), - BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID => 0, TaskPeer::TAS_UID => 1, TaskPeer::TAS_TYPE => 2, TaskPeer::TAS_DURATION => 3, TaskPeer::TAS_DELAY_TYPE => 4, TaskPeer::TAS_TEMPORIZER => 5, TaskPeer::TAS_TYPE_DAY => 6, TaskPeer::TAS_TIMEUNIT => 7, TaskPeer::TAS_ALERT => 8, TaskPeer::TAS_PRIORITY_VARIABLE => 9, TaskPeer::TAS_ASSIGN_TYPE => 10, TaskPeer::TAS_ASSIGN_VARIABLE => 11, TaskPeer::TAS_GROUP_VARIABLE => 12, TaskPeer::TAS_MI_INSTANCE_VARIABLE => 13, TaskPeer::TAS_MI_COMPLETE_VARIABLE => 14, TaskPeer::TAS_ASSIGN_LOCATION => 15, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC => 16, TaskPeer::TAS_TRANSFER_FLY => 17, TaskPeer::TAS_LAST_ASSIGNED => 18, TaskPeer::TAS_USER => 19, TaskPeer::TAS_CAN_UPLOAD => 20, TaskPeer::TAS_VIEW_UPLOAD => 21, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION => 22, TaskPeer::TAS_CAN_CANCEL => 23, TaskPeer::TAS_OWNER_APP => 24, TaskPeer::STG_UID => 25, TaskPeer::TAS_CAN_PAUSE => 26, TaskPeer::TAS_CAN_SEND_MESSAGE => 27, TaskPeer::TAS_CAN_DELETE_DOCS => 28, TaskPeer::TAS_SELF_SERVICE => 29, TaskPeer::TAS_START => 30, TaskPeer::TAS_TO_LAST_USER => 31, TaskPeer::TAS_SEND_LAST_EMAIL => 32, TaskPeer::TAS_DERIVATION => 33, TaskPeer::TAS_POSX => 34, TaskPeer::TAS_POSY => 35, TaskPeer::TAS_WIDTH => 36, TaskPeer::TAS_HEIGHT => 37, TaskPeer::TAS_COLOR => 38, TaskPeer::TAS_EVN_UID => 39, TaskPeer::TAS_BOUNDARY => 40, TaskPeer::TAS_DERIVATION_SCREEN_TPL => 41, ), - BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'TAS_UID' => 1, 'TAS_TYPE' => 2, 'TAS_DURATION' => 3, 'TAS_DELAY_TYPE' => 4, 'TAS_TEMPORIZER' => 5, 'TAS_TYPE_DAY' => 6, 'TAS_TIMEUNIT' => 7, 'TAS_ALERT' => 8, 'TAS_PRIORITY_VARIABLE' => 9, 'TAS_ASSIGN_TYPE' => 10, 'TAS_ASSIGN_VARIABLE' => 11, 'TAS_GROUP_VARIABLE' => 12, 'TAS_MI_INSTANCE_VARIABLE' => 13, 'TAS_MI_COMPLETE_VARIABLE' => 14, 'TAS_ASSIGN_LOCATION' => 15, 'TAS_ASSIGN_LOCATION_ADHOC' => 16, 'TAS_TRANSFER_FLY' => 17, 'TAS_LAST_ASSIGNED' => 18, 'TAS_USER' => 19, 'TAS_CAN_UPLOAD' => 20, 'TAS_VIEW_UPLOAD' => 21, 'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 22, 'TAS_CAN_CANCEL' => 23, 'TAS_OWNER_APP' => 24, 'STG_UID' => 25, 'TAS_CAN_PAUSE' => 26, 'TAS_CAN_SEND_MESSAGE' => 27, 'TAS_CAN_DELETE_DOCS' => 28, 'TAS_SELF_SERVICE' => 29, 'TAS_START' => 30, 'TAS_TO_LAST_USER' => 31, 'TAS_SEND_LAST_EMAIL' => 32, 'TAS_DERIVATION' => 33, 'TAS_POSX' => 34, 'TAS_POSY' => 35, 'TAS_WIDTH' => 36, 'TAS_HEIGHT' => 37, 'TAS_COLOR' => 38, 'TAS_EVN_UID' => 39, 'TAS_BOUNDARY' => 40, 'TAS_DERIVATION_SCREEN_TPL' => 41, ), - BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, ) + BasePeer::TYPE_PHPNAME => array ('ProUid' => 0, 'TasUid' => 1, 'TasType' => 2, 'TasDuration' => 3, 'TasDelayType' => 4, 'TasTemporizer' => 5, 'TasTypeDay' => 6, 'TasTimeunit' => 7, 'TasAlert' => 8, 'TasPriorityVariable' => 9, 'TasAssignType' => 10, 'TasAssignVariable' => 11, 'TasGroupVariable' => 12, 'TasMiInstanceVariable' => 13, 'TasMiCompleteVariable' => 14, 'TasAssignLocation' => 15, 'TasAssignLocationAdhoc' => 16, 'TasTransferFly' => 17, 'TasLastAssigned' => 18, 'TasUser' => 19, 'TasCanUpload' => 20, 'TasViewUpload' => 21, 'TasViewAdditionalDocumentation' => 22, 'TasCanCancel' => 23, 'TasOwnerApp' => 24, 'StgUid' => 25, 'TasCanPause' => 26, 'TasCanSendMessage' => 27, 'TasCanDeleteDocs' => 28, 'TasSelfService' => 29, 'TasStart' => 30, 'TasToLastUser' => 31, 'TasSendLastEmail' => 32, 'TasDerivation' => 33, 'TasPosx' => 34, 'TasPosy' => 35, 'TasWidth' => 36, 'TasHeight' => 37, 'TasColor' => 38, 'TasEvnUid' => 39, 'TasBoundary' => 40, 'TasDerivationScreenTpl' => 41, 'TasSelfserviceTimeout' => 42, 'TasSelfserviceTime' => 43, 'TasSelfserviceTimeUnit' => 44, 'TasSelfserviceTriggerUid' => 45, ), + BasePeer::TYPE_COLNAME => array (TaskPeer::PRO_UID => 0, TaskPeer::TAS_UID => 1, TaskPeer::TAS_TYPE => 2, TaskPeer::TAS_DURATION => 3, TaskPeer::TAS_DELAY_TYPE => 4, TaskPeer::TAS_TEMPORIZER => 5, TaskPeer::TAS_TYPE_DAY => 6, TaskPeer::TAS_TIMEUNIT => 7, TaskPeer::TAS_ALERT => 8, TaskPeer::TAS_PRIORITY_VARIABLE => 9, TaskPeer::TAS_ASSIGN_TYPE => 10, TaskPeer::TAS_ASSIGN_VARIABLE => 11, TaskPeer::TAS_GROUP_VARIABLE => 12, TaskPeer::TAS_MI_INSTANCE_VARIABLE => 13, TaskPeer::TAS_MI_COMPLETE_VARIABLE => 14, TaskPeer::TAS_ASSIGN_LOCATION => 15, TaskPeer::TAS_ASSIGN_LOCATION_ADHOC => 16, TaskPeer::TAS_TRANSFER_FLY => 17, TaskPeer::TAS_LAST_ASSIGNED => 18, TaskPeer::TAS_USER => 19, TaskPeer::TAS_CAN_UPLOAD => 20, TaskPeer::TAS_VIEW_UPLOAD => 21, TaskPeer::TAS_VIEW_ADDITIONAL_DOCUMENTATION => 22, TaskPeer::TAS_CAN_CANCEL => 23, TaskPeer::TAS_OWNER_APP => 24, TaskPeer::STG_UID => 25, TaskPeer::TAS_CAN_PAUSE => 26, TaskPeer::TAS_CAN_SEND_MESSAGE => 27, TaskPeer::TAS_CAN_DELETE_DOCS => 28, TaskPeer::TAS_SELF_SERVICE => 29, TaskPeer::TAS_START => 30, TaskPeer::TAS_TO_LAST_USER => 31, TaskPeer::TAS_SEND_LAST_EMAIL => 32, TaskPeer::TAS_DERIVATION => 33, TaskPeer::TAS_POSX => 34, TaskPeer::TAS_POSY => 35, TaskPeer::TAS_WIDTH => 36, TaskPeer::TAS_HEIGHT => 37, TaskPeer::TAS_COLOR => 38, TaskPeer::TAS_EVN_UID => 39, TaskPeer::TAS_BOUNDARY => 40, TaskPeer::TAS_DERIVATION_SCREEN_TPL => 41, TaskPeer::TAS_SELFSERVICE_TIMEOUT => 42, TaskPeer::TAS_SELFSERVICE_TIME => 43, TaskPeer::TAS_SELFSERVICE_TIME_UNIT => 44, TaskPeer::TAS_SELFSERVICE_TRIGGER_UID => 45, ), + BasePeer::TYPE_FIELDNAME => array ('PRO_UID' => 0, 'TAS_UID' => 1, 'TAS_TYPE' => 2, 'TAS_DURATION' => 3, 'TAS_DELAY_TYPE' => 4, 'TAS_TEMPORIZER' => 5, 'TAS_TYPE_DAY' => 6, 'TAS_TIMEUNIT' => 7, 'TAS_ALERT' => 8, 'TAS_PRIORITY_VARIABLE' => 9, 'TAS_ASSIGN_TYPE' => 10, 'TAS_ASSIGN_VARIABLE' => 11, 'TAS_GROUP_VARIABLE' => 12, 'TAS_MI_INSTANCE_VARIABLE' => 13, 'TAS_MI_COMPLETE_VARIABLE' => 14, 'TAS_ASSIGN_LOCATION' => 15, 'TAS_ASSIGN_LOCATION_ADHOC' => 16, 'TAS_TRANSFER_FLY' => 17, 'TAS_LAST_ASSIGNED' => 18, 'TAS_USER' => 19, 'TAS_CAN_UPLOAD' => 20, 'TAS_VIEW_UPLOAD' => 21, 'TAS_VIEW_ADDITIONAL_DOCUMENTATION' => 22, 'TAS_CAN_CANCEL' => 23, 'TAS_OWNER_APP' => 24, 'STG_UID' => 25, 'TAS_CAN_PAUSE' => 26, 'TAS_CAN_SEND_MESSAGE' => 27, 'TAS_CAN_DELETE_DOCS' => 28, 'TAS_SELF_SERVICE' => 29, 'TAS_START' => 30, 'TAS_TO_LAST_USER' => 31, 'TAS_SEND_LAST_EMAIL' => 32, 'TAS_DERIVATION' => 33, 'TAS_POSX' => 34, 'TAS_POSY' => 35, 'TAS_WIDTH' => 36, 'TAS_HEIGHT' => 37, 'TAS_COLOR' => 38, 'TAS_EVN_UID' => 39, 'TAS_BOUNDARY' => 40, 'TAS_DERIVATION_SCREEN_TPL' => 41, 'TAS_SELFSERVICE_TIMEOUT' => 42, 'TAS_SELFSERVICE_TIME' => 43, 'TAS_SELFSERVICE_TIME_UNIT' => 44, 'TAS_SELFSERVICE_TRIGGER_UID' => 45, ), + BasePeer::TYPE_NUM => array (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, ) ); /** @@ -369,6 +381,14 @@ abstract class BaseTaskPeer $criteria->addSelectColumn(TaskPeer::TAS_DERIVATION_SCREEN_TPL); + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIMEOUT); + + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME); + + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TIME_UNIT); + + $criteria->addSelectColumn(TaskPeer::TAS_SELFSERVICE_TRIGGER_UID); + } const COUNT = 'COUNT(TASK.TAS_UID)'; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index f6e7222c5..cfea25c34 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -1197,6 +1197,10 @@ + + + + diff --git a/workflow/engine/js/processmap/core/processes_Map.js b/workflow/engine/js/processmap/core/processes_Map.js index 16c8eb8ca..57abe50bb 100755 --- a/workflow/engine/js/processmap/core/processes_Map.js +++ b/workflow/engine/js/processmap/core/processes_Map.js @@ -35,6 +35,44 @@ var saveDataTaskTemporal = function(iForm) break; case 2: case '2': + var sw = 0; + var msg = ""; + var fieldEval; + + if (getField("TAS_SELFSERVICE_TIMEOUT").checked) { + sw = 1; + + fieldEval = new input(getField("TAS_SELFSERVICE_TIME")); + + if (getField("TAS_SELFSERVICE_TIME").value.trim() == "") { + sw = 0; + msg = msg + ((msg != "")? "
" : "") + _("ID_TIME_REQUIRED"); + + fieldEval.failed(); + } else { + fieldEval.passed(); + } + + fieldEval = new input(getField("TAS_SELFSERVICE_TRIGGER_UID")); + + if (getField("TAS_SELFSERVICE_TRIGGER_UID").value.trim() == "") { + sw = 0; + msg = msg + ((msg != "")? "
" : "") + _("ID_TRIGGER_REQUIRED"); + + fieldEval.failed(); + } else { + fieldEval.passed(); + } + + if (sw == 0) { + new leimnud.module.app.alert().make({ + label: msg + }); + + return false; + } + } + if (getField('TAS_ASSIGN_TYPE][SELF_SERVICE').checked) { oTaskData.TAS_ASSIGN_TYPE = 'SELF_SERVICE'; @@ -73,7 +111,14 @@ var saveDataTaskTemporal = function(iForm) /* this feature is temporarily disabled oTaskData.TAS_MI_INSTANCE_VARIABLE = getField('TAS_MI_INSTANCE_VARIABLE').value; oTaskData.TAS_MI_COMPLETE_VARIABLE = getField('TAS_MI_COMPLETE_VARIABLE').value;*/ - break; + + sw = ((oTaskData.TAS_ASSIGN_TYPE == "SELF_SERVICE" || oTaskData.TAS_ASSIGN_TYPE == "SELF_SERVICE_EVALUATE") && getField("TAS_SELFSERVICE_TIMEOUT").checked)? 1 : 0; + + oTaskData.TAS_SELFSERVICE_TIMEOUT = sw; + oTaskData.TAS_SELFSERVICE_TIME = (sw == 1)? getField("TAS_SELFSERVICE_TIME").value : ""; + oTaskData.TAS_SELFSERVICE_TIME_UNIT = (sw == 1)? getField("TAS_SELFSERVICE_TIME_UNIT").value : ""; + oTaskData.TAS_SELFSERVICE_TRIGGER_UID = (sw == 1)? getField("TAS_SELFSERVICE_TRIGGER_UID").value : ""; + break; case 3: case '3': oTaskData.TAS_DURATION = getField('TAS_DURATION').value; diff --git a/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml b/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml index f6db54ecc..b1420c8f6 100755 --- a/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml +++ b/workflow/engine/xmlform/tasks/tasks_AssignmentRules.xml @@ -40,42 +40,91 @@ Variable for No of Instances to complete + + Set a timeout + + + + Time + + + + + Time unit + + + + + + + SELECT TGR.TRI_UID, CON.CON_VALUE + FROM TRIGGERS AS TGR, CONTENT AS CON + WHERE TGR.PRO_UID = '@#PROCESS' AND + TGR.TRI_UID = CON.CON_ID AND CON.CON_CATEGORY = 'TRI_TITLE' AND CON.CON_LANG = '@#LANG' + ORDER BY CON.CON_VALUE ASC + + + Trigger to execute + + +