BUG 7000 I added code to save the variables SOLVED

I added code to save the variables in trigger's error
This commit is contained in:
Brayan Osmar Pereyra Suxo
2012-11-19 11:29:17 -04:00
parent 622f1654a4
commit 741dedc111

View File

@@ -167,9 +167,6 @@ class PMScript
public function executeAndCatchErrors ($sScript, $sCode)
{
G::LoadClass( 'case' );
$oCase = new Cases();
$oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $this->aFields));
ob_start( 'handleFatalErrors' );
set_error_handler( 'handleErrors' );
$_SESSION['_CODE_'] = $sCode;
@@ -544,6 +541,12 @@ function handleErrors ($errno, $errstr, $errfile, $errline)
if (isset( $_SESSION['_CODE_'] )) {
$sCode = $_SESSION['_CODE_'];
unset( $_SESSION['_CODE_'] );
G::LoadClass( 'case' );
$oCase = new Cases();
global $oPMScript;
if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) {
$oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields));
}
registerError( 1, $errstr, $errline - 1, $sCode );
}
}
@@ -557,6 +560,8 @@ function handleErrors ($errno, $errstr, $errfile, $errline)
function handleFatalErrors ($buffer)
{
G::LoadClass( 'case' );
$oCase = new Cases();
if (preg_match( '/(error<\/b>:)(.+)(<br)/', $buffer, $regs )) {
$err = preg_replace( '/<.*?>/', '', $regs[2] );
$aAux = explode( ' in ', $err );
@@ -565,23 +570,25 @@ function handleFatalErrors ($buffer)
registerError( 2, $aAux[0], 0, $sCode );
if (strpos( $_SERVER['REQUEST_URI'], '/cases/cases_Step' ) !== false) {
if (strpos( $_SERVER['REQUEST_URI'], '&ACTION=GENERATE' ) !== false) {
G::LoadClass( 'case' );
$oCase = new Cases();
$aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
if ($_SESSION['TRIGGER_DEBUG']['ISSET']) {
$_SESSION['TRIGGER_DEBUG']['TIME'] = 'AFTER';
$_SESSION['TRIGGER_DEBUG']['BREAKPAGE'] = $aNextStep['PAGE'];
$aNextStep['PAGE'] = $aNextStep['PAGE'] . '&breakpoint=triggerdebug';
}
global $oPMScript;
if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) {
$oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields));
}
G::header( 'Location: ' . $aNextStep['PAGE'] );
die();
}
$_SESSION['_NO_EXECUTE_TRIGGERS_'] = 1;
global $oPMScript;
$oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields));
G::header( 'Location: ' . $_SERVER['REQUEST_URI'] );
die();
} else {
G::LoadClass( 'case' );
$oCase = new Cases();
$aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] );
if ($_SESSION['TRIGGER_DEBUG']['ISSET']) {
$_SESSION['TRIGGER_DEBUG']['TIME'] = 'AFTER';
@@ -591,6 +598,10 @@ function handleFatalErrors ($buffer)
if (strpos( $aNextStep['PAGE'], 'TYPE=ASSIGN_TASK&UID=-1' ) !== false) {
G::SendMessageText( 'Fatal error in trigger', 'error' );
}
global $oPMScript;
if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) {
$oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields));
}
G::header( 'Location: ' . $aNextStep['PAGE'] );
die();
}