adding BpmnData handling support, to Project->diagram object
This commit is contained in:
@@ -672,6 +672,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$diagram["artifacts"] = $bwp->getArtifacts($configList);
|
||||
$diagram["laneset"] = $bwp->getLanesets($configList);
|
||||
$diagram["lanes"] = $bwp->getLanes($configList);
|
||||
$diagram["data"] = $bwp->getDataCollection($configList);
|
||||
$project["diagrams"][] = $diagram;
|
||||
}
|
||||
|
||||
@@ -862,6 +863,7 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
$bwp->removeGateway($gatewayData["GAT_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Diagram's Events Handling
|
||||
*/
|
||||
@@ -914,6 +916,52 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Diagram's Data Handling
|
||||
*/
|
||||
$whiteList = array();
|
||||
foreach ($diagram["data"] as $i => $dataObjectData) {
|
||||
$dataObjectData = array_change_key_case($dataObjectData, CASE_UPPER);
|
||||
unset($dataObjectData["_EXTENDED"]);
|
||||
|
||||
$dataObject = $bwp->getData($dataObjectData["DAT_UID"]);
|
||||
|
||||
if ($forceInsert || is_null($dataObject)) {
|
||||
if ($generateUid) {
|
||||
//Event
|
||||
unset($dataObjectData["BOU_UID"]);
|
||||
|
||||
$uidOld = $dataObjectData["DAT_UID"];
|
||||
$dataObjectData["DAT_UID"] = Util\Common::generateUID();
|
||||
|
||||
$result[] = array(
|
||||
"object" => "data",
|
||||
"old_uid" => $uidOld,
|
||||
"new_uid" => $dataObjectData["DAT_UID"]
|
||||
);
|
||||
}
|
||||
|
||||
$bwp->addData($dataObjectData);
|
||||
} elseif (! $bwp->isEquals($dataObject, $dataObjectData)) {
|
||||
$bwp->updateData($dataObjectData["DAT_UID"], $dataObjectData);
|
||||
} else {
|
||||
Util\Logger::log("Update Data ({$dataObjectData["DAT_UID"]}) Skipped - No changes required");
|
||||
}
|
||||
|
||||
$diagram["data"][$i] = $dataObjectData;
|
||||
$whiteList[] = $dataObjectData["DAT_UID"];
|
||||
}
|
||||
|
||||
$dataCollection = $bwp->getDataCollection();
|
||||
|
||||
// looking for removed elements
|
||||
foreach ($dataCollection as $dataObjectData) {
|
||||
if (! in_array($dataObjectData["DAT_UID"], $whiteList)) {
|
||||
// If it is not in the white list, then remove them
|
||||
$bwp->removeData($dataObjectData["DAT_UID"]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Diagram's Flows Handling
|
||||
|
||||
Reference in New Issue
Block a user