PM 934 "16557: PMFDerivate is not working" SOLVED

Code Issue:
16557: PMFDerivate is not working.
Solution:
- En el metodo derivateCase(), existia codigo repetido en dos partes del metodo. Se suprime el codigo repetido.
- En PMFDerivateCase contiene lo siguiente:
      PMFDerivateCase ($caseId, $delIndex, $bExecuteTriggersBeforeAssignment = false, $sUserLogged = null)
  Al ejecutar el trigger cuando esta como Before Assigment, se debe pasar el tercer parametro como true.
This commit is contained in:
Luis Fernando Saisa Lopez
2015-01-17 17:02:10 -04:00
parent f0113ae314
commit eac594e0d9

View File

@@ -927,7 +927,7 @@ class wsBase
} else {
/*----------------------------------********---------------------------------*/
$aSetup = System::getEmailConfiguration();
/*----------------------------------********---------------------------------*/
/*----------------------------------********---------------------------------*/
}
/*----------------------------------********---------------------------------*/
@@ -2093,6 +2093,7 @@ class wsBase
* @param string $userId
* @param string $caseId
* @param string $delIndex
* @param bool $bExecuteTriggersBeforeAssignment
* @return $result will return an object
*/
public function derivateCase ($userId, $caseId, $delIndex, $bExecuteTriggersBeforeAssignment = false)
@@ -2187,6 +2188,8 @@ class wsBase
$aTriggers = $oCase->loadTriggers( $appdel['TAS_UID'], 'ASSIGN_TASK', - 1, 'BEFORE' );
if (count( $aTriggers ) > 0) {
$varTriggers = $varTriggers . "<br /><b>-= Before Assignment =-</b><br />";
$oPMScript = new PMScript();
foreach ($aTriggers as $aTrigger) {
@@ -2218,7 +2221,8 @@ class wsBase
$oPMScript->setScript( $aTrigger['TRI_WEBBOT'] );
$oPMScript->execute();
$varTriggers .= "<br/><b>-= Before Assignment =-</b><br/>" . nl2br( htmlentities( $aTrigger['TRI_WEBBOT'], ENT_QUOTES ) ) . "<br/>";
$trigger = TriggersPeer::retrieveByPk($aTrigger["TRI_UID"]);
$varTriggers = $varTriggers . "&nbsp;- " . nl2br(htmlentities($trigger->getTriTitle(), ENT_QUOTES)) . "<br />";
//$appFields = $oCase->loadCase( $caseId );
$appFields['APP_DATA'] = $oPMScript->aFields;
@@ -2283,51 +2287,6 @@ class wsBase
}
}
//Execute triggers before derivation BEFORE_ASSIGNMENT
$aTriggers = $oCase->loadTriggers( $appdel['TAS_UID'], 'ASSIGN_TASK', - 1, 'BEFORE' );
if (count( $aTriggers ) > 0) {
$varTriggers .= "<b>-= Before Derivation =-</b><br/>";
$oPMScript = new PMScript();
foreach ($aTriggers as $aTrigger) {
//Set variables
$params = new stdClass();
$params->appData = $appFields["APP_DATA"];
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'] );
$bExecute = true;
if ($aTrigger['ST_CONDITION'] !== '') {
$oPMScript->setScript( $aTrigger['ST_CONDITION'] );
$bExecute = $oPMScript->evaluate();
}
if ($bExecute) {
$oPMScript->setScript( $aTrigger['TRI_WEBBOT'] );
$oPMScript->execute();
$oTrigger = TriggersPeer::retrieveByPk( $aTrigger['TRI_UID'] );
$varTriggers .= "&nbsp;- " . nl2br( htmlentities( $oTrigger->getTriTitle(), ENT_QUOTES ) ) . "<br/>";
$appFields['APP_DATA'] = $oPMScript->aFields;
unset($appFields['APP_STATUS']);
unset($appFields['APP_PROC_STATUS']);
unset($appFields['APP_PROC_CODE']);
unset($appFields['APP_PIN']);
$oCase->updateCase( $caseId, $appFields );
}
}
}
$oDerivation = new Derivation();
$derive = $oDerivation->prepareInformation( $aData );