diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 9341cd27b..065897856 100755 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -789,7 +789,7 @@ class Derivation $continue = true; $row = $rsCriFlow->getRow(); }else{ - $rsCriFlow = $bpmnFlow->getElementOriginToElementDest($row["FLO_ELEMENT_DEST"],$routeCondition); + $rsCriFlow = $bpmnFlow->getElementOriginToElementDest($row["FLO_ELEMENT_DEST"],$routeCondition,"bpmnEvent"); $routeCondition = ''; $continue = false; if($rsCriFlow->next()){ diff --git a/workflow/engine/classes/model/BpmnFlow.php b/workflow/engine/classes/model/BpmnFlow.php index e7212372f..a94f91eb5 100755 --- a/workflow/engine/classes/model/BpmnFlow.php +++ b/workflow/engine/classes/model/BpmnFlow.php @@ -117,7 +117,7 @@ class BpmnFlow extends BaseBpmnFlow return $flow; } - public static function getElementOriginToElementDest($floOrigin, $floCondition = ''){ + public static function getElementOriginToElementDest($floOrigin, $floCondition = '', $floDestType = ''){ $criFlow = new Criteria("workflow"); $criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN); $criFlow->addSelectColumn(BpmnFlowPeer::FLO_ELEMENT_ORIGIN_TYPE); @@ -128,6 +128,9 @@ class BpmnFlow extends BaseBpmnFlow if($floCondition != ''){ $criFlow->add(BpmnFlowPeer::FLO_CONDITION, $floCondition, Criteria::EQUAL); } + if($floDestType != ''){ + $criFlow->add(BpmnFlowPeer::FLO_ELEMENT_DEST_TYPE, $floDestType, Criteria::EQUAL); + } $rsCriFlow = RoutePeer::doSelectRS($criFlow); $rsCriFlow->setFetchmode(ResultSet::FETCHMODE_ASSOC); return $rsCriFlow;