PM 1459 "ProcessMaker-MA: Script Task Definition (endpoints)" SOLVED

> ProcessMaker-MA "Script Task Definition (endpoints)"

  - Se han implementado los siguientes Endpoints:
      GET    /api/1.0/{workspace}/project/{prj_uid}/script-tasks
      GET    /api/1.0/{workspace}/project/{prj_uid}/script-task/{scrtas_uid}
      GET    /api/1.0/{workspace}/project/{prj_uid}/script-task/activity/{act_uid}
      POST   /api/1.0/{workspace}/project/{prj_uid}/script-task
      PUT    /api/1.0/{workspace}/project/{prj_uid}/script-task/{scrtas_uid}
      DELETE /api/1.0/{workspace}/project/{prj_uid}/script-task/{scrtas_uid}

  - Se agrego la funcionalidad necesaria en el DESIGNER
  - Exportar/Importar, se incluyen los registros de la tabla SCRIPT_TASK
  - Eliminar Projecto, se eliminan los registros de la tabla SCRIPT_TASK
  - Runing case
This commit is contained in:
Luis Fernando Saisa Lopez
2015-06-24 18:28:20 -04:00
parent 5ad4469e12
commit 287365537b
18 changed files with 2452 additions and 49 deletions

View File

@@ -198,8 +198,14 @@ class BpmnWorkflow extends Project\Bpmn
public function updateActivity($actUid, $data)
{
//Update Activity
$activityBefore = \BpmnActivityPeer::retrieveByPK($actUid);
parent::updateActivity($actUid, $data);
$activityCurrent = \BpmnActivityPeer::retrieveByPK($actUid);
//Update Task
$taskData = array();
if (array_key_exists("ACT_NAME", $data)) {
@@ -212,14 +218,38 @@ class BpmnWorkflow extends Project\Bpmn
$taskData["TAS_POSY"] = $data["BOU_Y"];
}
if ($activityBefore->getActTaskType() != "SCRIPTTASK" && $activityCurrent->getActTaskType() == "SCRIPTTASK") {
$taskData["TAS_TYPE"] = "SCRIPT-TASK";
}
if ($activityBefore->getActTaskType() == "SCRIPTTASK" && $activityCurrent->getActTaskType() != "SCRIPTTASK") {
$taskData["TAS_TYPE"] = "NORMAL";
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask();
$scriptTask->deleteWhere(array(
\ScriptTaskPeer::PRJ_UID => $activityCurrent->getPrjUid(),
\ScriptTaskPeer::ACT_UID => $activityCurrent->getActUid()
));
}
$this->wp->updateTask($actUid, $taskData);
}
public function removeActivity($actUid)
{
$activity = \BpmnActivityPeer::retrieveByPK($actUid);
parent::removeActivity($actUid);
$this->wp->removeTask($actUid);
//Delete Script-Task
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask();
$scriptTask->deleteWhere(array(
\ScriptTaskPeer::PRJ_UID => $activity->getPrjUid(),
\ScriptTaskPeer::ACT_UID => $activity->getActUid()
));
}
public function removeElementTaskRelation($elementUid, $elementType)
@@ -1245,6 +1275,7 @@ class BpmnWorkflow extends Project\Bpmn
* @param $projectData
* @return array
*/
public static function updateFromStruct($prjUid, $projectData, $generateUid = true, $forceInsert = false)
{
$diagram = isset($projectData["diagrams"]) && isset($projectData["diagrams"][0]) ? $projectData["diagrams"][0] : array();
@@ -1869,4 +1900,3 @@ class BpmnWorkflow extends Project\Bpmn
}
}
}

View File

@@ -856,6 +856,23 @@ class Workflow extends Handler
$messageEventDefinition->delete($row["MSGED_UID"]);
}
//Delete Script-Task
$scriptTask = new \ProcessMaker\BusinessModel\ScriptTask();
$criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ScriptTaskPeer::SCRTAS_UID);
$criteria->add(\ScriptTaskPeer::PRJ_UID, $sProcessUID, \Criteria::EQUAL);
$rsCriteria = \ScriptTaskPeer::doSelectRS($criteria);
$rsCriteria->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($rsCriteria->next()) {
$row = $rsCriteria->getRow();
$scriptTask->delete($row["SCRTAS_UID"]);
}
//Delete the process
try {
$oProcess->remove($sProcessUID);
@@ -1242,6 +1259,22 @@ class Workflow extends Handler
}
}
//Update SCRIPT_TASK.ACT_UID
if (isset($arrayWorkflowData["scriptTask"])) {
foreach ($arrayWorkflowData["scriptTask"] as $key => $value) {
$scriptTaskActivityUid = $arrayWorkflowData["scriptTask"][$key]["ACT_UID"];
foreach ($arrayUid as $value2) {
$arrayItem = $value2;
if ($arrayItem["old_uid"] == $scriptTaskActivityUid) {
$arrayWorkflowData["scriptTask"][$key]["ACT_UID"] = $arrayItem["new_uid"];
break;
}
}
}
}
//Workflow tables
$workflowData = (object)($arrayWorkflowData);
@@ -1294,4 +1327,3 @@ class Workflow extends Handler
}
}
}