diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php index c0695a214..49237f580 100755 --- a/workflow/engine/classes/class.pmScript.php +++ b/workflow/engine/classes/class.pmScript.php @@ -541,6 +541,12 @@ function handleErrors ($errno, $errstr, $errfile, $errline) if (isset( $_SESSION['_CODE_'] )) { $sCode = $_SESSION['_CODE_']; unset( $_SESSION['_CODE_'] ); + global $oPMScript; + if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) { + G::LoadClass( 'case' ); + $oCase = new Cases(); + $oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields)); + } registerError( 1, $errstr, $errline - 1, $sCode ); } } @@ -554,6 +560,8 @@ function handleErrors ($errno, $errstr, $errfile, $errline) function handleFatalErrors ($buffer) { + G::LoadClass( 'case' ); + $oCase = new Cases(); if (preg_match( '/(error<\/b>:)(.+)(/', '', $regs[2] ); $aAux = explode( ' in ', $err ); @@ -562,23 +570,27 @@ 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; + if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) { + $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'; @@ -588,6 +600,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(); }