diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index 79de01e3e..a47a68306 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -923,6 +923,9 @@ class Process extends BaseProcess $webBotTrigger = ''; switch ($action) { + case 'OPEN': + $var = ProcessPeer::PRO_TRI_OPEN; + break; case 'DELETED': $var = ProcessPeer::PRO_TRI_DELETED; break; diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 24b53ef2c..8408509b1 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -840,6 +840,7 @@ + diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 1ddb40f2a..4aea764b5 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -409,6 +409,7 @@ CREATE TABLE `PROCESS` `PRO_SHOW_MAP` TINYINT default 1 NOT NULL, `PRO_SHOW_MESSAGE` TINYINT default 1 NOT NULL, `PRO_SUBPROCESS` TINYINT default 0 NOT NULL, + `PRO_TRI_OPEN` VARCHAR(32) default '' NOT NULL, `PRO_TRI_DELETED` VARCHAR(32) default '' NOT NULL, `PRO_TRI_CANCELED` VARCHAR(32) default '' NOT NULL, `PRO_TRI_PAUSED` VARCHAR(32) default '' NOT NULL, diff --git a/workflow/engine/methods/cases/cases_Open.php b/workflow/engine/methods/cases/cases_Open.php index acdea01ce..967cb4932 100755 --- a/workflow/engine/methods/cases/cases_Open.php +++ b/workflow/engine/methods/cases/cases_Open.php @@ -171,14 +171,7 @@ try { unset( $_SESSION['bNoShowSteps'] ); /* Execute Before Triggers for first Task*/ - $oStep = new Step; - $oStep = $oStep->loadByProcessTaskPosition($_SESSION['PROCESS'], $_SESSION['TASK'], 1); - if($oStep) { - $aFields['APP_DATA'] = array_merge( $aFields['APP_DATA'], G::getSystemConstants() ); - $triggerFields["APP_DATA"] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $oStep->getStepTypeObj(), $oStep->getStepUidObj(), 'BEFORE', $aFields['APP_DATA'] ); - $oCase->updateCase( $_SESSION['APPLICATION'], $triggerFields ); - $_SESSION['beforeTriggersExecuted'] = true; - } + $oCase->getExecuteTriggerProcess($sAppUid, 'OPEN'); /*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 ad0326529..0bfade78b 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -160,11 +160,7 @@ if ($flagExecuteBeforeTriggers) { if (! isset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] )) { //Execute before triggers - Start - if (!isset($_SESSION['beforeTriggersExecuted']) || $triggers) { - $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] ); - } else { - unset($_SESSION['beforeTriggersExecuted']); - } + $Fields['APP_DATA'] = $oCase->ExecuteTriggers( $_SESSION['TASK'], $_GET['TYPE'], $_GET['UID'], 'BEFORE', $Fields['APP_DATA'] ); //Execute before triggers - End } else { unset( $_SESSION['_NO_EXECUTE_TRIGGERS_'] );