diff --git a/workflow/engine/methods/cases/cases_Open.php b/workflow/engine/methods/cases/cases_Open.php index 27e43ba7b..c4a3bd4f4 100755 --- a/workflow/engine/methods/cases/cases_Open.php +++ b/workflow/engine/methods/cases/cases_Open.php @@ -175,6 +175,7 @@ try { $oStep = $oStep->loadByProcessTaskPosition($_SESSION['PROCESS'], $_SESSION['TASK'], 1); $triggerFields["APP_DATA"] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $oStep->getStepTypeObj(), $oStep->getStepUidObj(), 'BEFORE', $aFields['APP_DATA'] ); $oCase->updateCase( $_SESSION['APPLICATION'], $triggerFields ); + $_SESSION['beforeTriggersExecuted'] = true; /*end Execute Before Triggers for first Task*/ $aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 1e42bf69e..1c6cb6da0 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -159,7 +159,11 @@ if ($flagExecuteBeforeTriggers) { if (! isset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] )) { //Execute before triggers - Start - $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] ); + if (!isset($_SESSION['beforeTriggersExecuted'])) { + $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] ); + } else { + unset($_SESSION['beforeTriggersExecuted']); + } //Execute before triggers - End } else { unset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] );