diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 9c3328886..7b5fc2b65 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -240,7 +240,14 @@ class Derivation //1. There is no rule if (count($arrayNextTask) == 0) { - throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_RULE")); + $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")); + }else{ + throw new Exception(G::LoadTranslation("ID_NO_DERIVATION_BPMN_RULE")); + } } //Return diff --git a/workflow/engine/methods/cases/cases_Step.php b/workflow/engine/methods/cases/cases_Step.php index 0ff76c553..d1b8bc9b1 100755 --- a/workflow/engine/methods/cases/cases_Step.php +++ b/workflow/engine/methods/cases/cases_Step.php @@ -1019,7 +1019,16 @@ try { } //Add content content step - End } catch (Exception $e) { - G::SendTemporalMessage( G::LoadTranslation( 'ID_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + //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 ); + }else{ + G::SendTemporalMessage( G::LoadTranslation( 'ID_BPMN_PROCESS_DEF_PROBLEM' ), 'error', 'string', 3, 100 ); + } + $aMessage = array (); $aMessage['MESSAGE'] = $e->getMessage(); $G_PUBLISH = new Publisher();