BUG 9200 "La variable @@APPLICATION vacia" SOLVED

- PMFDerivateCase not set variables of the case to derivate
- In the "derivateCase" method of the class "class.wsBase.php", no set
  variables of the case to derivate
- Problem solved, now set appropriate variables to derivate
This commit is contained in:
Victor Saisa Lopez
2012-07-23 17:09:07 -04:00
parent d2e823f028
commit 731b017965
2 changed files with 274 additions and 261 deletions

View File

@@ -2845,67 +2845,82 @@ $output = $outputHeader.$output;
} }
/** /**
* Return date in Y-m-d format * Return date in Y-m-d format
* *
* @author Fernando Ontiveros Lira <fernando@colosa.com> * @author Fernando Ontiveros Lira <fernando@colosa.com>
* @access public * @access public
* @return void * @return void
*/ */
function CurDate($sFormat = '') function CurDate($sFormat='')
{ {
$sFormat = ( $sFormat != '' )? $sFormat: 'Y-m-d H:i:s'; $sFormat = ($sFormat != '')? $sFormat : 'Y-m-d H:i:s';
return date($sFormat);
}
/* return date($sFormat);
* Return the System defined constants and Application variables
* Constants: SYS_*
* Sessions : USER_* , URS_*
*/
function getSystemConstants($params = null)
{
$t1 = G::microtime_float();
$sysCon = array();
if (defined("SYS_LANG")) $sysCon["SYS_LANG"] = SYS_LANG;
if (defined("SYS_SKIN")) $sysCon["SYS_SKIN"] = SYS_SKIN;
if (defined("SYS_SYS")) $sysCon["SYS_SYS"] = SYS_SYS;
$sysCon["APPLICATION"] = (isset($_SESSION["APPLICATION"]))? $_SESSION["APPLICATION"] : "";
$sysCon["PROCESS"] = (isset($_SESSION["PROCESS"]))? $_SESSION["PROCESS"] : "";
$sysCon["TASK"] = (isset($_SESSION["TASK"]))? $_SESSION["TASK"] : "";
$sysCon["INDEX"] = (isset($_SESSION["INDEX"]))? $_SESSION["INDEX"] : "";
$sysCon["USER_LOGGED"] = (isset($_SESSION["USER_LOGGED"]))? $_SESSION["USER_LOGGED"] : "";
$sysCon["USR_USERNAME"] = (isset($_SESSION["USR_USERNAME"]))? $_SESSION["USR_USERNAME"] : "";
//###############################################################################################
// Added for compatibility betweek aplication called from web Entry that uses just WS functions
//###############################################################################################
if ($params != null) {
switch ($params->option) {
case "STORED SESSION":
if (isset($params->SID)) {
G::LoadClass("sessions");
$oSessions = new Sessions($params->SID);
$sysCon = array_merge($sysCon, $oSessions->getGlobals());
}
break;
}
if (isset($params->appData) && is_array($params->appData)) {
$sysCon["APPLICATION"] = $params->appData["APPLICATION"];
$sysCon["PROCESS"] = $params->appData["PROCESS"];
$sysCon["TASK"] = $params->appData["TASK"];
$sysCon["INDEX"] = $params->appData["INDEX"];
$sysCon["USER_LOGGED"] = $params->appData["USER_LOGGED"];
$sysCon["USR_USERNAME"] = $params->appData["USR_USERNAME"];
}
} }
return $sysCon; /**
} * Return the System defined constants and Application variables
* Constants: SYS_*
* Sessions : USER_* , URS_*
*/
function getSystemConstants($params=null)
{
$t1 = G::microtime_float();
$sysCon = array();
if (defined("SYS_LANG")) {
$sysCon["SYS_LANG"] = SYS_LANG;
}
if (defined("SYS_SKIN")) {
$sysCon["SYS_SKIN"] = SYS_SKIN;
}
if (defined("SYS_SYS")) {
$sysCon["SYS_SYS"] = SYS_SYS;
}
$sysCon["APPLICATION"] = (isset($_SESSION["APPLICATION"]))? $_SESSION["APPLICATION"] : "";
$sysCon["PROCESS"] = (isset($_SESSION["PROCESS"]))? $_SESSION["PROCESS"] : "";
$sysCon["TASK"] = (isset($_SESSION["TASK"]))? $_SESSION["TASK"] : "";
$sysCon["INDEX"] = (isset($_SESSION["INDEX"]))? $_SESSION["INDEX"] : "";
$sysCon["USER_LOGGED"] = (isset($_SESSION["USER_LOGGED"]))? $_SESSION["USER_LOGGED"] : "";
$sysCon["USR_USERNAME"] = (isset($_SESSION["USR_USERNAME"]))? $_SESSION["USR_USERNAME"] : "";
//###############################################################################################
// Added for compatibility betweek aplication called from web Entry that uses just WS functions
//###############################################################################################
if ($params != null) {
if (isset($params->option)) {
switch ($params->option) {
case "STORED SESSION":
if (isset($params->SID)) {
G::LoadClass("sessions");
$oSessions = new Sessions($params->SID);
$sysCon = array_merge($sysCon, $oSessions->getGlobals());
}
break;
}
}
if (isset($params->appData) && is_array($params->appData)) {
$sysCon["APPLICATION"] = $params->appData["APPLICATION"];
$sysCon["PROCESS"] = $params->appData["PROCESS"];
$sysCon["TASK"] = $params->appData["TASK"];
$sysCon["INDEX"] = $params->appData["INDEX"];
if (empty($sysCon["USER_LOGGED"])) {
$sysCon["USER_LOGGED"] = $params->appData["USER_LOGGED"];
$sysCon["USR_USERNAME"] = $params->appData["USR_USERNAME"];
}
}
}
return $sysCon;
}
/* /*
* Return the Friendly Title for a string, capitalize every word and remove spaces * Return the Friendly Title for a string, capitalize every word and remove spaces
@@ -5212,3 +5227,4 @@ function __($msgID , $lang = SYS_LANG, $data = null)
{ {
return G::LoadTranslation($msgID, $lang, $data); return G::LoadTranslation($msgID, $lang, $data);
} }

View File

@@ -1724,7 +1724,7 @@ class wsBase
$oAppDel = new AppDelegation(); $oAppDel = new AppDelegation();
$appdel = $oAppDel->Load($caseId, $delIndex); $appdel = $oAppDel->Load($caseId, $delIndex);
if ($userId!=$appdel['USR_UID']) { if ($userId != $appdel['USR_UID']) {
$result = new wsResponse(17, G::loadTranslation('ID_CASE_ASSIGNED_ANOTHER_USER')); $result = new wsResponse(17, G::loadTranslation('ID_CASE_ASSIGNED_ANOTHER_USER'));
return $result; return $result;
@@ -1782,7 +1782,7 @@ class wsBase
if ($bExecuteTriggersBeforeAssignment) { if ($bExecuteTriggersBeforeAssignment) {
//Execute triggers before assignment //Execute triggers before assignment
$aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -1, 'BEFORE' ); $aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -1, 'BEFORE');
if (count($aTriggers) > 0) { if (count($aTriggers) > 0) {
$oPMScript = new PMScript(); $oPMScript = new PMScript();
@@ -1791,22 +1791,18 @@ class wsBase
//$appFields = $oCase->loadCase( $caseId ); //$appFields = $oCase->loadCase( $caseId );
//$appFields['APP_DATA']['APPLICATION'] = $caseId; //$appFields['APP_DATA']['APPLICATION'] = $caseId;
//@Neyek ####################################################################################### //Set variables
if (!$this->stored_system_variables) { $params = new stdClass();
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants()); $params->appData = $appFields["APP_DATA"];
} else {
$oParams = new stdClass();
$oParams->option = "STORED SESSION";
$oParams->SID = $this->wsSessionId;
$oParams->appData = $appFields["APP_DATA"];
$appFields["APP_DATA"] = array_merge( if ($this->stored_system_variables) {
$appFields["APP_DATA"], $params->option = "STORED SESSION";
G::getSystemConstants($oParams) $params->SID = $this->wsSessionId;
);
} }
//##############################################################################################
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants($params));
//PMScript
$oPMScript->setFields($appFields['APP_DATA']); $oPMScript->setFields($appFields['APP_DATA']);
$bExecute = true; $bExecute = true;
@@ -1825,36 +1821,36 @@ class wsBase
//$appFields = $oCase->loadCase( $caseId ); //$appFields = $oCase->loadCase( $caseId );
$appFields['APP_DATA'] = $oPMScript->aFields; $appFields['APP_DATA'] = $oPMScript->aFields;
$oCase->updateCase ( $caseId, $appFields ); $oCase->updateCase($caseId, $appFields);
} }
} }
} }
} }
//Execute triggers before derivation //Execute triggers before derivation
$aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -2, 'BEFORE' ); $aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -2, 'BEFORE');
if (count($aTriggers) > 0) { if (count($aTriggers) > 0) {
$oPMScript = new PMScript();
$varTriggers .= "<b>-= Before Derivation =-</b><br/>"; $varTriggers .= "<b>-= Before Derivation =-</b><br/>";
$oPMScript = new PMScript();
foreach ($aTriggers as $aTrigger) { foreach ($aTriggers as $aTrigger) {
//$appFields = $oCase->loadCase( $caseId ); //$appFields = $oCase->loadCase( $caseId );
//$appFields['APP_DATA']['APPLICATION'] = $caseId; //$appFields['APP_DATA']['APPLICATION'] = $caseId;
//@Neyek ########################################################################################### //Set variables
if (!$this->stored_system_variables) { $params = new stdClass();
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants()); $params->appData = $appFields["APP_DATA"];
} else {
$oParams = new stdClass();
$oParams->option = "STORED SESSION";
$oParams->SID = $this->wsSessionId;
$oParams->appData = $appFields["APP_DATA"];
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants($oParams)); if ($this->stored_system_variables) {
$params->option = "STORED SESSION";
$params->SID = $this->wsSessionId;
} }
//##################################################################################################
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants($params));
//PMScript
$oPMScript->setFields($appFields['APP_DATA']); $oPMScript->setFields($appFields['APP_DATA']);
$bExecute = true; $bExecute = true;
@@ -1878,7 +1874,7 @@ class wsBase
} }
$oDerivation = new Derivation(); $oDerivation = new Derivation();
$derive = $oDerivation->prepareInformation($aData); $derive = $oDerivation->prepareInformation($aData);
if (isset($derive[1])) { if (isset($derive[1])) {
if ($derive[1]['ROU_TYPE'] == 'SELECT') { if ($derive[1]['ROU_TYPE'] == 'SELECT') {
@@ -1933,7 +1929,7 @@ class wsBase
//$oCase->updateCase ( $caseId, $appFields ); //$oCase->updateCase ( $caseId, $appFields );
//Save data - End //Save data - End
$row = array(); $row = array();
$oCriteria = new Criteria('workflow'); $oCriteria = new Criteria('workflow');
$del = DBAdapter::getStringDelimiter(); $del = DBAdapter::getStringDelimiter();
$oCriteria->addSelectColumn(RoutePeer::ROU_TYPE); $oCriteria->addSelectColumn(RoutePeer::ROU_TYPE);
@@ -1957,29 +1953,30 @@ class wsBase
'ROU_TYPE' => $row[0]['ROU_TYPE'] 'ROU_TYPE' => $row[0]['ROU_TYPE']
); );
$oDerivation->derivate( $aCurrentDerivation, $nextDelegations ); $oDerivation->derivate($aCurrentDerivation, $nextDelegations);
$appFields = $oCase->loadCase($caseId); $appFields = $oCase->loadCase($caseId);
//Execute triggers after derivation
$aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -2, 'AFTER'); $aTriggers = $oCase->loadTriggers($appdel['TAS_UID'], 'ASSIGN_TASK', -2, 'AFTER');
if (count($aTriggers) > 0) { if (count($aTriggers) > 0) {
$oPMScript = new PMScript();
//$appFields['APP_DATA']['APPLICATION'] = $caseId; //$appFields['APP_DATA']['APPLICATION'] = $caseId;
//@Neyek ############################################################################################# //Set variables
if (!$this->stored_system_variables) { $params = new stdClass();
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants()); $params->appData = $appFields["APP_DATA"];
} else {
$oParams = new stdClass();
$oParams->option = "STORED SESSION";
$oParams->SID = $this->wsSessionId;
$oParams->appData = $appFields["APP_DATA"];
$appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants($oParams)); if ($this->stored_system_variables) {
$params->option = "STORED SESSION";
$params->SID = $this->wsSessionId;
} }
//####################################################################################################
$oPMScript->setFields( $appFields['APP_DATA'] ); $appFields["APP_DATA"] = array_merge($appFields["APP_DATA"], G::getSystemConstants($params));
//PMScript
$oPMScript = new PMScript();
$oPMScript->setFields($appFields['APP_DATA']);
$varTriggers .= "<b>-= After Derivation =-</b><br/>"; $varTriggers .= "<b>-= After Derivation =-</b><br/>";
foreach ($aTriggers as $aTrigger) { foreach ($aTriggers as $aTrigger) {