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:
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user