diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index d599c46bb..e2bb094a0 100755 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -238,7 +238,7 @@ class BpmnWorkflow extends Project\Bpmn $event = \BpmnEventPeer::retrieveByPK($data["FLO_ELEMENT_ORIGIN"]); // setting as start task - if ($event && $event->getEvnType() == "START") { + if (!is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "EMPTY") { $this->wp->setStartTask($data["FLO_ELEMENT_DEST"]); } @@ -284,7 +284,7 @@ class BpmnWorkflow extends Project\Bpmn ) { $event = \BpmnEventPeer::retrieveByPK($flowBefore->getFloElementOrigin()); - if (!is_null($event) && $event->getEvnType() == "START") { + if (!is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "EMPTY") { //Remove as start task $this->wp->setStartTask($flowBefore->getFloElementDest(), false); @@ -358,7 +358,7 @@ class BpmnWorkflow extends Project\Bpmn if (is_null($bpmnFlow)) { $event = \BpmnEventPeer::retrieveByPK($flow->getFloElementOrigin()); - if (!is_null($event) && $event->getEvnType() == "START") { + if (!is_null($event) && $event->getEvnType() == "START" && $event->getEvnMarker() == "EMPTY") { $activity = \BpmnActivityPeer::retrieveByPK($flow->getFloElementDest()); if (!is_null($activity)) { @@ -390,7 +390,7 @@ class BpmnWorkflow extends Project\Bpmn switch ($flow->getFloElementOriginType()) { case "bpmnActivity": switch ($flow->getFloElementDestType()) { - // activity->activity + //Activity1 -> Activity2 case "bpmnActivity": $this->wp->removeRouteFromTo($flow->getFloElementOrigin(), $flow->getFloElementDest()); break; @@ -411,12 +411,12 @@ class BpmnWorkflow extends Project\Bpmn $eventUid = parent::addEvent($data); $event = \BpmnEventPeer::retrieveByPK($eventUid); - // create case scheduler + //Delete case scheduler if ($event && $event->getEvnMarker() == "TIMER" && $event->getEvnType() == "START") { $this->wp->addCaseScheduler($eventUid); } - // create web entry + //Delete WebEntry-Event if ($event && $event->getEvnMarker() == "MESSAGE" && $event->getEvnType() == "START") { $this->wp->addWebEntry($eventUid); } @@ -782,11 +782,13 @@ class BpmnWorkflow extends Project\Bpmn $result = array(); $projectData['prj_uid'] = $prjUid; + $bwp = BpmnWorkflow::load($prjUid); + $projectRecord = array_change_key_case($projectData, CASE_UPPER); + $bwp->update($projectRecord); - //// /* * Diagram's Laneset Handling */ @@ -831,7 +833,6 @@ class BpmnWorkflow extends Project\Bpmn } } - //// /* * Diagram's Lane Handling */ @@ -1184,7 +1185,6 @@ class BpmnWorkflow extends Project\Bpmn } } - //// /* * Diagram's Participant Handling */ @@ -1241,7 +1241,6 @@ class BpmnWorkflow extends Project\Bpmn } } - /* * Diagram's Flows Handling */ @@ -1252,16 +1251,23 @@ class BpmnWorkflow extends Project\Bpmn // if it is a new flow record if ($forceInsert || ($generateUid && !\BpmnFlow::exists($flowData["FLO_UID"]))) { - $oldFloUid = $flowData["FLO_UID"]; + $uidOld = $flowData["FLO_UID"]; + $flowData["FLO_UID"] = Util\Common::generateUID(); - $result[] = array("object" => "flow", "new_uid" => $flowData["FLO_UID"], "old_uid" => $oldFloUid); + $result[] = array( + "object" => "flow", + "old_uid" => $uidOld, + "new_uid" => $flowData["FLO_UID"] + ); $mappedUid = self::mapUid($flowData["FLO_ELEMENT_ORIGIN"], $result); + if ($mappedUid !== false) { $flowData["FLO_ELEMENT_ORIGIN"] = $mappedUid; } $mappedUid = self::mapUid($flowData["FLO_ELEMENT_DEST"], $result); + if ($mappedUid !== false) { $flowData["FLO_ELEMENT_DEST"] = $mappedUid; }