From 804a03502ad5646400b8cd45d07c3de7d5bf2109 Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Tue, 30 Jun 2015 11:28:53 -0400 Subject: [PATCH 1/2] PM-2903 0017516: Unable to add condition on basis of checkbox Causa: Al no tener un valor previo asignado a la variable de caso para la condicion del dynaform, no se cumple y por ende no se muestra el mismo. Solucion: se debe asignar un valor a la variable de caso en un trigger antes del dynaform. --- workflow/engine/methods/cases/cases_Open.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/workflow/engine/methods/cases/cases_Open.php b/workflow/engine/methods/cases/cases_Open.php index f279a9bf6..27e43ba7b 100755 --- a/workflow/engine/methods/cases/cases_Open.php +++ b/workflow/engine/methods/cases/cases_Open.php @@ -169,6 +169,14 @@ try { /* Redirect to next step */ unset( $_SESSION['bNoShowSteps'] ); + + /* Execute Before Triggers for first Task*/ + $oStep = new Step; + $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 ); + /*end Execute Before Triggers for first Task*/ + $aNextStep = $oCase->getNextStep( $_SESSION['PROCESS'], $_SESSION['APPLICATION'], $_SESSION['INDEX'], $_SESSION['STEP_POSITION'] ); $sPage = $aNextStep['PAGE']; G::header( 'location: ' . $sPage ); From a28308550b750d1631a4fa5c15e81c6be603804b Mon Sep 17 00:00:00 2001 From: "marcelo.cuiza" Date: Fri, 3 Jul 2015 10:52:52 -0400 Subject: [PATCH 2/2] PM-2903 0017516: Unable to add condition on basis of checkbox Causa: Al no tener un valor previo asignado a la variable de caso para la condicion del dynaform, no se cumple y por ende no se muestra el mismo. Solucion: se debe asignar un valor a la variable de caso en un trigger antes del dynaform. --- workflow/engine/methods/cases/cases_Open.php | 1 + workflow/engine/methods/cases/cases_Step.php | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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_'] );