From 622f1654a47dc20c5e9555e38e68a9b70cc2a997 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Mon, 19 Nov 2012 10:42:39 -0400 Subject: [PATCH 1/3] BUG 7000 I added code to save the variables SOLVED I added code to save the variables in trigger's error --- workflow/engine/classes/class.pmScript.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php index c0695a214..864b6e8db 100755 --- a/workflow/engine/classes/class.pmScript.php +++ b/workflow/engine/classes/class.pmScript.php @@ -167,6 +167,9 @@ 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; From 741dedc111b784ff01394fd30b72325c73751738 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Mon, 19 Nov 2012 11:29:17 -0400 Subject: [PATCH 2/3] BUG 7000 I added code to save the variables SOLVED I added code to save the variables in trigger's error --- workflow/engine/classes/class.pmScript.php | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php index 864b6e8db..c4b8e6fd7 100755 --- a/workflow/engine/classes/class.pmScript.php +++ b/workflow/engine/classes/class.pmScript.php @@ -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>:)(.+)(/', '', $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(); } From 3e12a7700e2e38375e8b566b6283754f9c8bf609 Mon Sep 17 00:00:00 2001 From: Brayan Osmar Pereyra Suxo Date: Mon, 19 Nov 2012 12:13:26 -0400 Subject: [PATCH 3/3] BUG 7000 I added code to save the variables SOLVED I added code to save the variables in trigger's error --- workflow/engine/classes/class.pmScript.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/workflow/engine/classes/class.pmScript.php b/workflow/engine/classes/class.pmScript.php index c4b8e6fd7..49237f580 100755 --- a/workflow/engine/classes/class.pmScript.php +++ b/workflow/engine/classes/class.pmScript.php @@ -541,10 +541,10 @@ 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'])) { + G::LoadClass( 'case' ); + $oCase = new Cases(); $oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields)); } registerError( 1, $errstr, $errline - 1, $sCode ); @@ -585,7 +585,9 @@ function handleFatalErrors ($buffer) } $_SESSION['_NO_EXECUTE_TRIGGERS_'] = 1; global $oPMScript; - $oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields)); + if (isset($oPMScript) && isset($_SESSION['APPLICATION'])) { + $oCase->updateCase($_SESSION['APPLICATION'], array('APP_DATA' => $oPMScript->aFields)); + } G::header( 'Location: ' . $_SERVER['REQUEST_URI'] ); die(); } else {