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_'] );