Correction for many target delegations

This commit is contained in:
Dante
2017-03-23 10:37:40 -04:00
parent c396f6bc75
commit 2a50094e88

View File

@@ -12,6 +12,7 @@ use G;
use ElementTaskRelationPeer;
use BpmnEventPeer;
use ResultSet;
use PMScript;
class RoutingScreen extends \Derivation
{
@@ -274,10 +275,15 @@ class RoutingScreen extends \Derivation
$arrayAux = $this->prepareInformationForRoutingScreen($arrayData, $arrayNextTaskData["NEXT_TASK"]["TAS_UID"]);
$this->node[$value['ROU_NEXT_TASK']]['in'][$value['TAS_UID']] = $value['ROU_TYPE'];
$notShowNextTaskWhenJoinOf = "INTERMEDIATE-THROW-MESSAGE-EVENT|INTERMEDIATE-CATCH-MESSAGE-EVENT|SCRIPT-TASK|INTERMEDIATE-CATCH-TIMER-EVENT|INTERMEDIATE-THROW-EMAIL-EVENT";
if (array_key_exists('INTERMEDIATE-THROW-EMAIL-EVENT', $arrayAux) && array_key_exists('ROU_TYPE', $arrayAux) &&
preg_match("/^(?:" . $notShowNextTaskWhenJoinOf . ")$/", $arrayAux["TAS_TYPE"]) &&
$arrayAux['ROU_TYPE'] === 'SEC-JOIN') {
foreach ($arrayAux as $value2) {
//@TODO move this logic to the prepareInformation of the Derivation class
$intermediateEventAndJoinPresent = (array_key_exists('TAS_TYPE', $value2)
&& array_key_exists('ROU_TYPE', $value2)
&& preg_match("/^(?:" . $notShowNextTaskWhenJoinOf . ")$/", $value2["TAS_TYPE"])
&& $value2['ROU_TYPE'] === 'SEC-JOIN');
if (!$intermediateEventAndJoinPresent) {
$key = ++$i;
$arrayNextTask[$key] = $value2;
$prefix = substr($value['ROU_NEXT_TASK'], 0, 4);