ProcessMaker-BE "No se borran las condiciones cuando un Gateway se actualiza su tipo a PARALLEL (Bug)"
- No se borran las condiciones cuando un Gateway se actualiza su tipo a PARALLEL - Solucion, Al actualizar el tipo de un Gateway a PARALLEL se borran las condiciones
This commit is contained in:
@@ -826,11 +826,17 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
/*
|
||||
* Diagram's Gateways Handling
|
||||
*/
|
||||
$arrayUidGatewayParallel = array();
|
||||
$flagGatewayParallel = false;
|
||||
|
||||
$whiteList = array();
|
||||
|
||||
foreach ($diagram["gateways"] as $i => $gatewayData) {
|
||||
$gatewayData = array_change_key_case($gatewayData, CASE_UPPER);
|
||||
unset($gatewayData["_EXTENDED"]);
|
||||
|
||||
$flagAddOrUpdate = false;
|
||||
|
||||
$gateway = $bwp->getGateway($gatewayData["GAT_UID"]);
|
||||
|
||||
if ($forceInsert || is_null($gateway)) {
|
||||
@@ -849,12 +855,25 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
|
||||
$bwp->addGateway($gatewayData);
|
||||
|
||||
$flagAddOrUpdate = true;
|
||||
} elseif (! $bwp->isEquals($gateway, $gatewayData)) {
|
||||
$bwp->updateGateway($gatewayData["GAT_UID"], $gatewayData);
|
||||
|
||||
$flagAddOrUpdate = true;
|
||||
} else {
|
||||
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;
|
||||
$whiteList[] = $gatewayData["GAT_UID"];
|
||||
}
|
||||
@@ -1013,7 +1032,6 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* 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;
|
||||
$whiteList[] = $flowData["FLO_UID"];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user