From 0087164f0d46cde68d0266ec5404bba1cd8fc941 Mon Sep 17 00:00:00 2001 From: "Paula V. Quispe" Date: Fri, 13 Feb 2015 16:30:11 -0400 Subject: [PATCH] I replace the code with a function isBpmnProcess --- workflow/engine/classes/class.derivation.php | 11 +++++------ workflow/engine/classes/model/Process.php | 13 +++++++++++++ workflow/engine/methods/cases/cases_Step.php | 11 ++++------- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 7b5fc2b65..4950006a9 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -240,13 +240,12 @@ class Derivation //1. There is no rule if (count($arrayNextTask) == 0) { - $c = new Criteria("workflow"); - $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); - $res = BpmnProcessPeer::doSelect($c); - if( sizeof($res) == 0 ){ - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); + $oProcess = new Process(); + $oProcessFieds = $oProcess->Load( $_SESSION['PROCESS'] ); + if(isset($oProcessFieds['PRO_BPMN']) && $oProcessFieds['PRO_BPMN'] == 1){ + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); }else{ - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); } } diff --git a/workflow/engine/classes/model/Process.php b/workflow/engine/classes/model/Process.php index 32d67cc4d..ad4dd65c0 100755 --- a/workflow/engine/classes/model/Process.php +++ b/workflow/engine/classes/model/Process.php @@ -326,6 +326,8 @@ class Process extends BaseProcess } $aFields['PRO_DYNAFORMS'] = @unserialize( $aFields['PRO_DYNAFORMS'] ); + //Check if is BPMN process + $aFields['PRO_BPMN'] = $this->isBpmnProcess($ProUid); return $aFields; } else { @@ -1009,5 +1011,16 @@ class Process extends BaseProcess return 0; } } + + public function isBpmnProcess($proUid){ + $c = new Criteria("workflow"); + $c->add(BpmnProcessPeer::PRJ_UID, $proUid); + $res = BpmnProcessPeer::doSelect($c); + if( sizeof($res) == 0 ){ + return 0; + }else{ + return 1; + } + } } diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index d1b8bc9b1..19d11f170 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -1019,14 +1019,11 @@ try { } //Add content content step - End } catch (Exception $e) { - //Check if the process is BPMN - $c = new Criteria("workflow"); - $c->add(BpmnProcessPeer::PRJ_UID, $_SESSION['PROCESS']); - $res = BpmnProcessPeer::doSelect($c); - if( sizeof($res) == 0 ){ - G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + //Check if the process is BPMN + if(isset($oProcessFieds['PRO_BPMN']) && $oProcessFieds['PRO_BPMN'] == 1){ + G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); }else{ - G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); } $aMessage = array ();