From 18d8e8904afc53dc9e1c974487e8174c9c2b7969 Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Tue, 11 Jul 2017 13:50:56 -0400 Subject: [PATCH 1/3] HOR-3116 --- .../Project/Adapter/BpmnWorkflow.php | 38 +++++++++++++------ 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 1205fa62b..688e935dc 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -805,6 +805,9 @@ class BpmnWorkflow extends Project\Bpmn try { if (isset($this->arrayElementTaskRelation[$elementUid])) { $taskUid = $this->arrayElementTaskRelation[$elementUid]; + //Task - User + //Assign to admin + $this->assignUserAdminInMessageEvents($elementType, $key, $taskUid); } else { $taskPosX = 0; $taskPosY = 0; @@ -844,17 +847,9 @@ class BpmnWorkflow extends Project\Bpmn "TAS_POSY" => $taskPosY )); - if ($elementType == "bpmnEvent" && - in_array($key, array("end-message-event", "start-message-event", "intermediate-catch-message-event")) - ) { - if (in_array($key, array("start-message-event", "intermediate-catch-message-event"))) { - //Task - User - //Assign to admin - $task = new \Tasks(); - - $result = $task->assignUser($taskUid, "00000000000000000000000000000001", 1); - } - } + //Task - User + //Assign to admin + $this->assignUserAdminInMessageEvents($elementType, $key, $taskUid); //Element-Task-Relation - Create $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); @@ -879,6 +874,27 @@ class BpmnWorkflow extends Project\Bpmn } } + /** + * Task - User, Assign 'admin' user in 'start-message-event' and + * 'intermediate-catch-message-event' elements. + * @param string $elementType + * @param string $key + * @param string $taskUid + */ + public function assignUserAdminInMessageEvents($elementType, $key, $taskUid) + { + try { + if ($elementType == "bpmnEvent" && in_array($key, ["start-message-event", "intermediate-catch-message-event"])) { + $task = new \Tasks(); + $task->assignUser($taskUid, "00000000000000000000000000000001", 1); + } + } catch (Exception $e) { + $context = \Bootstrap::getDefaultContextLog(); + $context['action'] = $e->getMessage(); + \Bootstrap::registerMonolog('Import', 300, 'assign user', $context, $context["workspace"], 'processmaker.log'); + } + } + public function mapBpmnGatewayToWorkflowRoutes($activityUid, $gatewayUid) { try { From fda20185ca45a8e35021bc6e2f9319f0e0cb1dbd Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Thu, 13 Jul 2017 16:34:49 -0400 Subject: [PATCH 2/3] HOR-3489 Improvement: the observations are applied in 'Pull Request', the changes are reversed because they are not necessary in the process import... --- workflow/engine/classes/class.derivation.php | 3 +- workflow/engine/classes/class.wsBase.php | 2 +- .../Project/Adapter/BpmnWorkflow.php | 38 ++++++------------- 3 files changed, 14 insertions(+), 29 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 8a6563106..7bd77c546 100644 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -1236,7 +1236,8 @@ class Derivation } //Check if $taskNextDel is Script-Task - if (!is_null($taskNextDel) && ($taskNextDel->getTasType() === "SCRIPT-TASK" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-EMAIL-EVENT" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-MESSAGE-EVENT" || $taskNextDel->getTasType() === "SERVICE-TASK")) { + $arrayTaskTypeToExclude = ["SCRIPT-TASK", "INTERMEDIATE-THROW-EMAIL-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "SERVICE-TASK", "START-MESSAGE-EVENT"]; + if (!is_null($taskNextDel) && (in_array($taskNextDel->getTasType(), $arrayTaskTypeToExclude))) { //Get for $nextDel["TAS_UID"] your next Task $currentDelegationAux = array_merge($currentDelegation, array("DEL_INDEX" => $iNewDelIndex, "TAS_UID" => $nextDel["TAS_UID"])); $nextDelegationsAux = array(); diff --git a/workflow/engine/classes/class.wsBase.php b/workflow/engine/classes/class.wsBase.php index f3bbc9dec..03229f936 100644 --- a/workflow/engine/classes/class.wsBase.php +++ b/workflow/engine/classes/class.wsBase.php @@ -1986,7 +1986,7 @@ class wsBase $task = TaskPeer::retrieveByPK($taskId); - $arrayTaskTypeToExclude = array("START-TIMER-EVENT"); + $arrayTaskTypeToExclude = array("START-TIMER-EVENT", "START-MESSAGE-EVENT"); if (!is_null($task) && !in_array($task->getTasType(), $arrayTaskTypeToExclude) && $founded == "") { $result = new wsResponse( 14, G::LoadTranslation( 'ID_TASK_INVALID_USER_NOT_ASSIGNED_TASK' ) ); diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 688e935dc..1205fa62b 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -805,9 +805,6 @@ class BpmnWorkflow extends Project\Bpmn try { if (isset($this->arrayElementTaskRelation[$elementUid])) { $taskUid = $this->arrayElementTaskRelation[$elementUid]; - //Task - User - //Assign to admin - $this->assignUserAdminInMessageEvents($elementType, $key, $taskUid); } else { $taskPosX = 0; $taskPosY = 0; @@ -847,9 +844,17 @@ class BpmnWorkflow extends Project\Bpmn "TAS_POSY" => $taskPosY )); - //Task - User - //Assign to admin - $this->assignUserAdminInMessageEvents($elementType, $key, $taskUid); + if ($elementType == "bpmnEvent" && + in_array($key, array("end-message-event", "start-message-event", "intermediate-catch-message-event")) + ) { + if (in_array($key, array("start-message-event", "intermediate-catch-message-event"))) { + //Task - User + //Assign to admin + $task = new \Tasks(); + + $result = $task->assignUser($taskUid, "00000000000000000000000000000001", 1); + } + } //Element-Task-Relation - Create $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation(); @@ -874,27 +879,6 @@ class BpmnWorkflow extends Project\Bpmn } } - /** - * Task - User, Assign 'admin' user in 'start-message-event' and - * 'intermediate-catch-message-event' elements. - * @param string $elementType - * @param string $key - * @param string $taskUid - */ - public function assignUserAdminInMessageEvents($elementType, $key, $taskUid) - { - try { - if ($elementType == "bpmnEvent" && in_array($key, ["start-message-event", "intermediate-catch-message-event"])) { - $task = new \Tasks(); - $task->assignUser($taskUid, "00000000000000000000000000000001", 1); - } - } catch (Exception $e) { - $context = \Bootstrap::getDefaultContextLog(); - $context['action'] = $e->getMessage(); - \Bootstrap::registerMonolog('Import', 300, 'assign user', $context, $context["workspace"], 'processmaker.log'); - } - } - public function mapBpmnGatewayToWorkflowRoutes($activityUid, $gatewayUid) { try { From 698c3a5c753a684374863cb61ecfa94bc6c93b0c Mon Sep 17 00:00:00 2001 From: Roly Rudy Gutierrez Pinto Date: Fri, 14 Jul 2017 14:17:25 -0400 Subject: [PATCH 3/3] HOR-3116 improvement observations in pull request --- workflow/engine/classes/class.derivation.php | 3 +-- .../ProcessMaker/Project/Adapter/BpmnWorkflow.php | 12 ------------ 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/workflow/engine/classes/class.derivation.php b/workflow/engine/classes/class.derivation.php index 7bd77c546..8a6563106 100644 --- a/workflow/engine/classes/class.derivation.php +++ b/workflow/engine/classes/class.derivation.php @@ -1236,8 +1236,7 @@ class Derivation } //Check if $taskNextDel is Script-Task - $arrayTaskTypeToExclude = ["SCRIPT-TASK", "INTERMEDIATE-THROW-EMAIL-EVENT", "INTERMEDIATE-THROW-MESSAGE-EVENT", "SERVICE-TASK", "START-MESSAGE-EVENT"]; - if (!is_null($taskNextDel) && (in_array($taskNextDel->getTasType(), $arrayTaskTypeToExclude))) { + if (!is_null($taskNextDel) && ($taskNextDel->getTasType() === "SCRIPT-TASK" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-EMAIL-EVENT" || $taskNextDel->getTasType() === "INTERMEDIATE-THROW-MESSAGE-EVENT" || $taskNextDel->getTasType() === "SERVICE-TASK")) { //Get for $nextDel["TAS_UID"] your next Task $currentDelegationAux = array_merge($currentDelegation, array("DEL_INDEX" => $iNewDelIndex, "TAS_UID" => $nextDel["TAS_UID"])); $nextDelegationsAux = array(); diff --git a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php index 1205fa62b..8106dfd35 100644 --- a/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php +++ b/workflow/engine/src/ProcessMaker/Project/Adapter/BpmnWorkflow.php @@ -844,18 +844,6 @@ class BpmnWorkflow extends Project\Bpmn "TAS_POSY" => $taskPosY )); - if ($elementType == "bpmnEvent" && - in_array($key, array("end-message-event", "start-message-event", "intermediate-catch-message-event")) - ) { - if (in_array($key, array("start-message-event", "intermediate-catch-message-event"))) { - //Task - User - //Assign to admin - $task = new \Tasks(); - - $result = $task->assignUser($taskUid, "00000000000000000000000000000001", 1); - } - } - //Element-Task-Relation - Create $elementTaskRelation = new \ProcessMaker\BusinessModel\ElementTaskRelation();