PM-939 "Support for Message-Event (Endpoints and Backend)"
- Se han implementado los siguientes Endpoints:
GET /api/1.0/{workspace}/project/{prj_uid}/message-event-definitions
GET /api/1.0/{workspace}/project/{prj_uid}/message-event-definition/{msged_uid}
GET /api/1.0/{workspace}/project/{prj_uid}/message-event-definition/event/{evn_uid}
POST /api/1.0/{workspace}/project/{prj_uid}/message-event-definition
PUT /api/1.0/{workspace}/project/{prj_uid}/message-event-definition/{msged_uid}
DELETE /api/1.0/{workspace}/project/{prj_uid}/message-event-definition/{msged_uid}
- Se han implementado los metodos necesarios/requeridos para el backend
del DESIGNER para esta nueva funcionalidad
This commit is contained in:
@@ -625,12 +625,53 @@ class Bpmn extends Handler
|
||||
}
|
||||
}
|
||||
|
||||
public function throwExceptionFlowIfIsAnInvalidMessageFlow(array $bpmnFlow)
|
||||
{
|
||||
try {
|
||||
if ($bpmnFlow["FLO_TYPE"] == "MESSAGE" &&
|
||||
$bpmnFlow["FLO_ELEMENT_ORIGIN_TYPE"] == "bpmnEvent" && $bpmnFlow["FLO_ELEMENT_DEST_TYPE"] == "bpmnEvent"
|
||||
) {
|
||||
$flagValid = true;
|
||||
|
||||
$arrayEventType = array("START", "END", "INTERMEDIATE");
|
||||
|
||||
$arrayAux = array(
|
||||
array("eventUid" => $bpmnFlow["FLO_ELEMENT_ORIGIN"], "eventMarker" => "MESSAGETHROW"),
|
||||
array("eventUid" => $bpmnFlow["FLO_ELEMENT_DEST"], "eventMarker" => "MESSAGECATCH")
|
||||
);
|
||||
|
||||
foreach ($arrayAux as $value) {
|
||||
$criteria = new \Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(\BpmnEventPeer::EVN_UID);
|
||||
$criteria->add(\BpmnEventPeer::EVN_UID, $value["eventUid"], \Criteria::EQUAL);
|
||||
$criteria->add(\BpmnEventPeer::EVN_TYPE, $arrayEventType, \Criteria::IN);
|
||||
$criteria->add(\BpmnEventPeer::EVN_MARKER, $value["eventMarker"], \Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = \BpmnEventPeer::doSelectRS($criteria);
|
||||
|
||||
if (!$rsCriteria->next()) {
|
||||
$flagValid = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$flagValid) {
|
||||
throw new \RuntimeException("Invalid Message Flow.");
|
||||
}
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
|
||||
public function addFlow($data)
|
||||
{
|
||||
self::log("Add Flow with data: ", $data);
|
||||
|
||||
// setting defaults
|
||||
$data['FLO_UID'] = array_key_exists('FLO_UID', $data) ? $data['FLO_UID'] : Common::generateUID();
|
||||
|
||||
if (array_key_exists('FLO_STATE', $data)) {
|
||||
$data['FLO_STATE'] = is_array($data['FLO_STATE']) ? json_encode($data['FLO_STATE']) : $data['FLO_STATE'];
|
||||
}
|
||||
@@ -680,17 +721,23 @@ class Bpmn extends Handler
|
||||
));
|
||||
}
|
||||
|
||||
//Check and validate Message Flow
|
||||
$this->throwExceptionFlowIfIsAnInvalidMessageFlow($data);
|
||||
|
||||
//Create
|
||||
$flow = new Flow();
|
||||
$flow->fromArray($data, BasePeer::TYPE_FIELDNAME);
|
||||
$flow->setPrjUid($this->getUid());
|
||||
$flow->setDiaUid($this->getDiagram("object")->getDiaUid());
|
||||
$flow->setFloPosition($this->getFlowNextPosition($data["FLO_UID"], $data["FLO_TYPE"], $data["FLO_ELEMENT_ORIGIN"]));
|
||||
$flow->save();
|
||||
|
||||
self::log("Add Flow Success!");
|
||||
|
||||
return $flow->getFloUid();
|
||||
} catch (\Exception $e) {
|
||||
self::log("Exception: ", $e->getMessage(), "Trace: ", $e->getTraceAsString());
|
||||
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
@@ -703,7 +750,12 @@ class Bpmn extends Handler
|
||||
if (array_key_exists('FLO_STATE', $data)) {
|
||||
$data['FLO_STATE'] = is_array($data['FLO_STATE']) ? json_encode($data['FLO_STATE']) : $data['FLO_STATE'];
|
||||
}
|
||||
|
||||
try {
|
||||
//Check and validate Message Flow
|
||||
$this->throwExceptionFlowIfIsAnInvalidMessageFlow($data);
|
||||
|
||||
//Update
|
||||
$flow = FlowPeer::retrieveByPk($floUid);
|
||||
$flow->fromArray($data);
|
||||
$flow->save();
|
||||
|
||||
Reference in New Issue
Block a user