PM-939 "Support for Message-Event(Export, Import y Delete)"

> Se han implementado los metodos para: Export, Import y Delete (delete Process) de este nuevo "Objeto", asi tambien
  se ha  agregado validaciones en el listados en el casesList.
This commit is contained in:
Luis Fernando Saisa Lopez
2015-02-20 17:12:49 -04:00
parent f3d90ae3db
commit f0bebb5fe5
6 changed files with 165 additions and 14 deletions

View File

@@ -8,7 +8,7 @@ class MessageEventDefinition
"PRJ_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "projectUid"),
"EVN_UID" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "eventUid"),
"MSGT_UID" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "messageTypeUid"),
"MSGT_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "messageTypeUid"),
"MSGED_USR_UID" => array("type" => "string", "required" => false, "empty" => false, "defaultValues" => array(), "fieldNameAux" => "messageEventDefinitionUserUid"),
"MSGED_VARIABLES" => array("type" => "array", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "messageEventDefinitionVariables"),
"MSGED_CORRELATION" => array("type" => "string", "required" => false, "empty" => true, "defaultValues" => array(), "fieldNameAux" => "messageEventDefinitionCorrelation")
@@ -259,7 +259,7 @@ class MessageEventDefinition
*
* return array Return data of the new Message-Event-Definition created
*/
public function create($projectUid, array $arrayData)
public function create($projectUid, array $arrayData, $flagValidateArrayData = true)
{
try {
//Verify data
@@ -278,7 +278,9 @@ class MessageEventDefinition
//Verify data
$process->throwExceptionIfNotExistsProcess($projectUid, $this->arrayFieldNameForException["projectUid"]);
$this->throwExceptionIfDataIsInvalid("", $projectUid, $arrayData);
if ($flagValidateArrayData) {
$this->throwExceptionIfDataIsInvalid("", $projectUid, $arrayData);
}
//Create
$cnn = \Propel::getConnection("workflow");
@@ -295,6 +297,21 @@ class MessageEventDefinition
$arrayData["MSGED_VARIABLES"] = array();
}
if (isset($arrayData["MSGED_USR_UID"]) && $arrayData["MSGED_USR_UID"] != "") {
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\UsersPeer::USR_UID);
$criteria->add(\UsersPeer::USR_UID, $arrayData["MSGED_USR_UID"], \Criteria::EQUAL);
//QUERY
$rsCriteria = \UsersPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
if (!$rsCriteria->next()) {
$arrayData["MSGED_USR_UID"] = "";
}
}
$messageEventDefinitionUid = \ProcessMaker\Util\Common::generateUID();
$messageEventDefinition->fromArray($arrayData, \BasePeer::TYPE_FIELDNAME);
@@ -314,7 +331,7 @@ class MessageEventDefinition
$cnn->commit();
//Task - User
if (isset($arrayData["MSGED_USR_UID"])) {
if (isset($arrayData["MSGED_USR_UID"]) && $arrayData["MSGED_USR_UID"] != "") {
$bpmnEvent = \BpmnEventPeer::retrieveByPK($arrayData["EVN_UID"]);
//Event - START-MESSAGE-EVENT

View File

@@ -374,7 +374,7 @@ abstract class Importer
foreach ($arrayWorkflowTables["tasks"] as $key => $value) {
$arrayTaskData = $value;
if (!in_array($arrayTaskData["TAS_TYPE"], array("GATEWAYTOGATEWAY", "WEBENTRYEVENT"))) {
if (!in_array($arrayTaskData["TAS_TYPE"], array("GATEWAYTOGATEWAY", "WEBENTRYEVENT", "END-MESSAGE-EVENT", "START-MESSAGE-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "INTERMEDIATE-CATCH-MESSAGE-EVENT"))) {
$result = $workflow->updateTask($arrayTaskData["TAS_UID"], $arrayTaskData);
}
}

View File

@@ -815,6 +815,33 @@ class Workflow extends Handler
$messageType->delete($row["MSGT_UID"]);
}
//Delete Message-Event-Relation
$messageEventRelation = new \ProcessMaker\BusinessModel\MessageEventRelation();
$messageEventRelation->deleteWhere(array(\MessageEventRelationPeer::PRJ_UID => $sProcessUID));
//Delete Message-Event-Task-Relation
$messageEventTaskRelation = new \ProcessMaker\BusinessModel\MessageEventTaskRelation();
$messageEventTaskRelation->deleteWhere(array(\MessageEventTaskRelationPeer::PRJ_UID => $sProcessUID));
//Delete Message-Event-Definition
$messageEventDefinition = new \ProcessMaker\BusinessModel\MessageEventDefinition();
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\MessageEventDefinitionPeer::MSGED_UID);
$criteria->add(\MessageEventDefinitionPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL);
$rsCriteria = \MessageEventDefinitionPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$messageEventDefinition->delete($row["MSGED_UID"]);
}
//Delete the process
try {
$oProcess->remove($sProcessUID);
@@ -1184,6 +1211,23 @@ class Workflow extends Handler
}
}
}
//Update MESSAGE_EVENT_DEFINITION.EVN_UID
if (isset($arrayWorkflowData["messageEventDefinition"])) {
foreach ($arrayWorkflowData["messageEventDefinition"] as $key => $value) {
$messageEventDefinitionEventUid = $arrayWorkflowData["messageEventDefinition"][$key]["EVN_UID"];
foreach ($arrayUid as $value2) {
$arrayItem = $value2;
if ($arrayItem["old_uid"] == $messageEventDefinitionEventUid) {
$arrayWorkflowData["messageEventDefinition"][$key]["EVN_UID"] = $arrayItem["new_uid"];
break;
}
}
}
}
//Workflow tables
$workflowData = (object)($arrayWorkflowData);