Adding Flows handling to Project\Bpmn handler class
This commit is contained in:
@@ -14,6 +14,37 @@ require_once 'classes/model/om/BaseBpmnFlow.php';
|
||||
*
|
||||
* @package classes.model
|
||||
*/
|
||||
class BpmnFlow extends BaseBpmnFlow {
|
||||
class BpmnFlow extends BaseBpmnFlow
|
||||
{
|
||||
public static function getAll($prjUid = null, $start = null, $limit = null, $filter = '', $changeCaseTo = CASE_UPPER)
|
||||
{
|
||||
//TODO implement $start, $limit and $filter
|
||||
$c = new Criteria('workflow');
|
||||
|
||||
if (! is_null($prjUid)) {
|
||||
$c->add(BpmnFlowPeer::PRJ_UID, $prjUid, Criteria::EQUAL);
|
||||
}
|
||||
|
||||
$rs = BpmnFlowPeer::doSelectRS($c);
|
||||
$rs->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$flows = array();
|
||||
|
||||
while ($rs->next()) {
|
||||
$flow = $rs->getRow();
|
||||
$flow["FLO_STATE"] = @json_decode($flow["FLO_STATE"]);
|
||||
$flow["FLO_IS_INMEDIATE"] = $flow["FLO_IS_INMEDIATE"] == 1 ? true : false;
|
||||
$flow = $changeCaseTo !== CASE_UPPER ? array_change_key_case($flow, CASE_LOWER) : $flow;
|
||||
|
||||
$flows[] = $flow;
|
||||
}
|
||||
|
||||
return $flows;
|
||||
}
|
||||
|
||||
public function toArray($type = BasePeer::TYPE_FIELDNAME)
|
||||
{
|
||||
return parent::toArray($type);
|
||||
}
|
||||
|
||||
} // BpmnFlow
|
||||
|
||||
@@ -290,7 +290,7 @@ class Bpmn extends Handler
|
||||
public function addEvent($data)
|
||||
{
|
||||
// setting defaults
|
||||
$data['EVN_UID'] = array_key_exists('EVN_UID', $data) ? $data['EVN_UID'] : Hash::generateUID();;
|
||||
$data['EVN_UID'] = array_key_exists('EVN_UID', $data) ? $data['EVN_UID'] : Hash::generateUID();
|
||||
|
||||
$event = new Event();
|
||||
$event->fromArray($data);
|
||||
@@ -325,7 +325,7 @@ class Bpmn extends Handler
|
||||
public function addGateway($data)
|
||||
{
|
||||
// setting defaults
|
||||
$data['GAT_UID'] = array_key_exists('GAT_UID', $data) ? $data['GAT_UID'] : Hash::generateUID();;
|
||||
$data['GAT_UID'] = array_key_exists('GAT_UID', $data) ? $data['GAT_UID'] : Hash::generateUID();
|
||||
|
||||
$gateway = new Gateway();
|
||||
$gateway->fromArray($data);
|
||||
@@ -360,35 +360,39 @@ class Bpmn extends Handler
|
||||
public function addFlow($data)
|
||||
{
|
||||
// setting defaults
|
||||
$data['GAT_UID'] = array_key_exists('GAT_UID', $data) ? $data['GAT_UID'] : Hash::generateUID();;
|
||||
$data['FLO_STATE'] = json_encode($data['FLO_STATE']);
|
||||
$data['FLO_UID'] = array_key_exists('FLO_UID', $data) ? $data['FLO_UID'] : Hash::generateUID();
|
||||
$data['FLO_STATE'] = is_array($data['FLO_STATE']) ? json_encode($data['FLO_STATE']) : $data['FLO_STATE'];
|
||||
|
||||
try {
|
||||
self::log("Add Flow with data: ", $data);
|
||||
|
||||
$flow = new Flow();
|
||||
$flow->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||
$flow->setPrjUid($this->project->getPrjUid());
|
||||
$flow->setPrjUid($this->getUid());
|
||||
$flow->setDiaUid($this->getDiagram("object")->getDiaUid());
|
||||
$flow->save();
|
||||
|
||||
self::log("Add Flow Success!");
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function getFlow($floUid)
|
||||
public function getFlow($floUid, $retType = 'array')
|
||||
{
|
||||
if (empty($this->flows) || ! array_key_exists($floUid, $this->flows)) {
|
||||
$flow = GatewayPeer::retrieveByPK($floUid);
|
||||
$flow = FlowPeer::retrieveByPK($floUid);
|
||||
|
||||
if (! is_object($flow)) {
|
||||
return null;
|
||||
if ($retType != "object" && ! empty($activity)) {
|
||||
$flow = $flow->toArray();
|
||||
}
|
||||
|
||||
$this->flows[$floUid] = $flow;
|
||||
}
|
||||
|
||||
return $this->flows[$floUid];
|
||||
return $flow;
|
||||
}
|
||||
|
||||
public function getFlows($retType = 'array')
|
||||
{
|
||||
//return Activity::getAll($this->project->getPrjUid(), null, null, '', $retType);
|
||||
return array();
|
||||
return Flow::getAll($this->getUid(), null, null, '', $retType);
|
||||
}
|
||||
|
||||
public function addArtifact($data)
|
||||
|
||||
@@ -114,6 +114,9 @@ class Project extends Api
|
||||
'lanes' => 'lan_uid'
|
||||
);
|
||||
|
||||
/*
|
||||
* Diagram's Activities Handling
|
||||
*/
|
||||
$whiteList = array();
|
||||
foreach ($diagram["activities"] as $activityData) {
|
||||
$activityData = array_change_key_case($activityData, CASE_UPPER);
|
||||
@@ -146,6 +149,31 @@ class Project extends Api
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Diagram's Flows Handling
|
||||
*/
|
||||
$whiteList = array();
|
||||
foreach ($diagram["flows"] as $flowData) {
|
||||
$flowData = array_change_key_case($flowData, CASE_UPPER);
|
||||
|
||||
// activity exists ?
|
||||
if ($activity = $bwp->getFlow($flowData["FLO_UID"])) {
|
||||
// then update activity
|
||||
//$bwp->updateFlow($activityData["FLO_UID"], $flowData);
|
||||
|
||||
//$whiteList[] = $activityData["FLO_UID"];
|
||||
} else {
|
||||
// if not exists then create it
|
||||
$oldFloUid = $flowData["FLO_UID"];
|
||||
$flowData["FLO_UID"] = Hash::generateUID();
|
||||
$bwp->addFlow($flowData);
|
||||
|
||||
$result[] = array("object" => "flow", "new_uid" => $flowData["FLO_UID"], "old_uid" => $oldFloUid);
|
||||
$whiteList[] = $flowData["FLO_UID"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $result;
|
||||
} catch (\Exception $e) {
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
|
||||
Reference in New Issue
Block a user