Merged in victorsl/processmaker (pull request #628)
ProcessMaker-BE "No se borran las condiciones cuando un Gateway se actualiza su tipo a PARALLEL (Bug)"
This commit is contained in:
@@ -826,11 +826,17 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
/*
|
/*
|
||||||
* Diagram's Gateways Handling
|
* Diagram's Gateways Handling
|
||||||
*/
|
*/
|
||||||
|
$arrayUidGatewayParallel = array();
|
||||||
|
$flagGatewayParallel = false;
|
||||||
|
|
||||||
$whiteList = array();
|
$whiteList = array();
|
||||||
|
|
||||||
foreach ($diagram["gateways"] as $i => $gatewayData) {
|
foreach ($diagram["gateways"] as $i => $gatewayData) {
|
||||||
$gatewayData = array_change_key_case($gatewayData, CASE_UPPER);
|
$gatewayData = array_change_key_case($gatewayData, CASE_UPPER);
|
||||||
unset($gatewayData["_EXTENDED"]);
|
unset($gatewayData["_EXTENDED"]);
|
||||||
|
|
||||||
|
$flagAddOrUpdate = false;
|
||||||
|
|
||||||
$gateway = $bwp->getGateway($gatewayData["GAT_UID"]);
|
$gateway = $bwp->getGateway($gatewayData["GAT_UID"]);
|
||||||
|
|
||||||
if ($forceInsert || is_null($gateway)) {
|
if ($forceInsert || is_null($gateway)) {
|
||||||
@@ -849,12 +855,25 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
}
|
}
|
||||||
|
|
||||||
$bwp->addGateway($gatewayData);
|
$bwp->addGateway($gatewayData);
|
||||||
|
|
||||||
|
$flagAddOrUpdate = true;
|
||||||
} elseif (! $bwp->isEquals($gateway, $gatewayData)) {
|
} elseif (! $bwp->isEquals($gateway, $gatewayData)) {
|
||||||
$bwp->updateGateway($gatewayData["GAT_UID"], $gatewayData);
|
$bwp->updateGateway($gatewayData["GAT_UID"], $gatewayData);
|
||||||
|
|
||||||
|
$flagAddOrUpdate = true;
|
||||||
} else {
|
} else {
|
||||||
Util\Logger::log("Update Gateway ({$gatewayData["GAT_UID"]}) Skipped - No changes required");
|
Util\Logger::log("Update Gateway ({$gatewayData["GAT_UID"]}) Skipped - No changes required");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($flagAddOrUpdate) {
|
||||||
|
$arrayGatewayData = $bwp->getGateway($gatewayData["GAT_UID"]);
|
||||||
|
|
||||||
|
if ($arrayGatewayData["GAT_TYPE"] == "PARALLEL") {
|
||||||
|
$arrayUidGatewayParallel[] = $gatewayData["GAT_UID"];
|
||||||
|
$flagGatewayParallel = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$diagram["gateways"][$i] = $gatewayData;
|
$diagram["gateways"][$i] = $gatewayData;
|
||||||
$whiteList[] = $gatewayData["GAT_UID"];
|
$whiteList[] = $gatewayData["GAT_UID"];
|
||||||
}
|
}
|
||||||
@@ -1013,7 +1032,6 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Diagram's Flows Handling
|
* Diagram's Flows Handling
|
||||||
*/
|
*/
|
||||||
@@ -1050,6 +1068,11 @@ class BpmnWorkflow extends Project\Bpmn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Update condition
|
||||||
|
if ($flagGatewayParallel && $flowData["FLO_ELEMENT_ORIGIN_TYPE"] == "bpmnGateway" && in_array($flowData["FLO_ELEMENT_ORIGIN"], $arrayUidGatewayParallel)) {
|
||||||
|
$flowData["FLO_CONDITION"] = "";
|
||||||
|
}
|
||||||
|
|
||||||
$diagram["flows"][$i] = $flowData;
|
$diagram["flows"][$i] = $flowData;
|
||||||
$whiteList[] = $flowData["FLO_UID"];
|
$whiteList[] = $flowData["FLO_UID"];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user