Updating BpmnWorkflow Adapter
Now Handling events, is updating only when the event was changed
This commit is contained in:
@@ -233,6 +233,19 @@ class BpmnWorkflow extends Project\Bpmn
|
||||
parent::addEvent($data);
|
||||
}
|
||||
|
||||
public function updateEvent($evnUid, $data)
|
||||
{
|
||||
$data["EVN_CANCEL_ACTIVITY"] = $data["EVN_CANCEL_ACTIVITY"] ? 1 : 0;
|
||||
$data["EVN_WAIT_FOR_COMPLETION"] = $data["EVN_WAIT_FOR_COMPLETION"] ? 1 : 0;
|
||||
|
||||
if (! self::isModified("event", $evnUid, $data)) {
|
||||
self::log("Update Event: $evnUid (No Changes)");
|
||||
return false;
|
||||
}
|
||||
|
||||
parent::updateEvent($evnUid, $data);
|
||||
}
|
||||
|
||||
public function removeEvent($evnUid)
|
||||
{
|
||||
// $event = \BpmnEventPeer::retrieveByPK($evnUid);
|
||||
|
||||
@@ -60,6 +60,10 @@ class Bpmn extends Handler
|
||||
"PRJ_UID", "PRO_UID", "BOU_ELEMENT", "BOU_ELEMENT_TYPE", "BOU_REL_POSITION",
|
||||
"BOU_SIZE_IDENTICAL", "DIA_UID", "BOU_UID", "ELEMENT_UID"
|
||||
),
|
||||
"event" => array(
|
||||
"PRJ_UID", "PRO_UID", "BOU_ELEMENT", "BOU_ELEMENT_TYPE", "BOU_REL_POSITION",
|
||||
"BOU_SIZE_IDENTICAL", "DIA_UID", "BOU_UID", "ELEMENT_UID", "EVN_ATTACHED_TO", "EVN_CONDITION"
|
||||
),
|
||||
"flow" => array("PRJ_UID", "DIA_UID", "FLO_ELEMENT_DEST_PORT", "FLO_ELEMENT_ORIGIN_PORT")
|
||||
);
|
||||
|
||||
@@ -356,8 +360,9 @@ class Bpmn extends Handler
|
||||
{
|
||||
$event = EventPeer::retrieveByPK($evnUid);
|
||||
|
||||
if ($retType != "object" && ! empty($activity)) {
|
||||
if ($retType != "object" && ! empty($event)) {
|
||||
$event = $event->toArray();
|
||||
$event = self::filterArrayKeys($event, self::$excludeFields["event"]);
|
||||
}
|
||||
|
||||
return $event;
|
||||
@@ -369,11 +374,21 @@ class Bpmn extends Handler
|
||||
extract($start);
|
||||
}
|
||||
|
||||
return Event::getAll($this->project->getPrjUid(), null, null, '', $changeCaseTo);
|
||||
//return Event::getAll($this->project->getPrjUid(), null, null, '', $changeCaseTo);
|
||||
|
||||
$filter = $changeCaseTo != CASE_UPPER ? array_map("strtolower", self::$excludeFields["event"]) : self::$excludeFields["event"];
|
||||
|
||||
return self::filterCollectionArrayKeys(
|
||||
Event::getAll($this->getUid(), $start, $limit, $filter, $changeCaseTo),
|
||||
$filter
|
||||
);
|
||||
}
|
||||
|
||||
public function updateEvent($evnUid, $data)
|
||||
{
|
||||
$data["EVN_CANCEL_ACTIVITY"] = $data["EVN_CANCEL_ACTIVITY"] ? 1 : 0;
|
||||
$data["EVN_WAIT_FOR_COMPLETION"] = $data["EVN_WAIT_FOR_COMPLETION"] ? 1 : 0;
|
||||
|
||||
try {
|
||||
self::log("Update Event: $evnUid", "With data: ", $data);
|
||||
|
||||
@@ -626,7 +641,8 @@ class Bpmn extends Handler
|
||||
case "event": $data = $this->getEvent($uid); break;
|
||||
case "flow": $data = $this->getFlow($uid); break;
|
||||
}
|
||||
|
||||
//self::log("saved data: ", $data, "new data: ", $newData);
|
||||
//self::log("checksum saved data: ", self::getChecksum($data), "checksum new data: ", self::getChecksum($newData));
|
||||
return (self::getChecksum($data) !== self::getChecksum($newData));
|
||||
}
|
||||
}
|
||||
@@ -191,6 +191,7 @@ class Project extends Api
|
||||
$whiteList = array();
|
||||
foreach ($diagram["events"] as $i => $eventData) {
|
||||
$eventData = array_change_key_case($eventData, CASE_UPPER);
|
||||
unset($eventData["_EXTENDED"]);
|
||||
|
||||
// gateway exists ?
|
||||
if ($event = $bwp->getEvent($eventData["EVN_UID"])) {
|
||||
|
||||
Reference in New Issue
Block a user