diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php index 695643082..183cfe1c5 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php @@ -2,6 +2,7 @@ namespace ProcessMaker\BusinessModel\Migrator; +use ProcessMaker\BusinessModel; /** * The assignment rules migrator class. * The container class that stores the import and export rules for assignment rules. @@ -37,13 +38,22 @@ class AssignmentRulesMigrator implements Importable, Exportable public function import($data, $replace) { try { + $workflowTaks = array(); + $dummyTaskTypes = BusinessModel\Task::getDummyTypes(); + foreach ($data['tasks'] as $key => $value) { + $arrayTaskData = $value; + if (!in_array($arrayTaskData["TAS_TYPE"], $dummyTaskTypes)) { + $workflowTaks[] = $arrayTaskData; + } + } + if ($replace) { - $this->processes->createTaskRows($data['tasks']); + $this->processes->createTaskRows($workflowTaks); $this->processes->addNewGroupRow($data['groupwfs']); $this->processes->removeTaskUserRows($data['tasks']); $this->processes->createTaskUserRows($data['taskusers']); } else { - $this->processes->addNewTaskRows($data['tasks']); + $this->processes->addNewTaskRows($workflowTaks); $this->processes->addNewGroupRow($data['groupwfs']); $this->processes->addNewTaskUserRows($data['taskusers']); } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php index 0cb980703..1036c09a0 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/ProcessDefinitionMigrator.php @@ -3,6 +3,7 @@ namespace ProcessMaker\BusinessModel\Migrator; use ProcessMaker\Project\Adapter; +use ProcessMaker\BusinessModel; use Symfony\Component\Config\Definition\Exception\Exception; class ProcessDefinitionMigrator implements Importable, Exportable @@ -53,7 +54,15 @@ class ProcessDefinitionMigrator implements Importable, Exportable try { //Workflow elements $this->processes->updateProcessRow($data['workflow']['process']); - $this->processes->createTaskRows($data['workflow']['tasks']); + $workflowTaks = array(); + $dummyTaskTypes = BusinessModel\Task::getDummyTypes(); + foreach ($data['workflow']['tasks'] as $key => $value) { + $arrayTaskData = $value; + if (!in_array($arrayTaskData["TAS_TYPE"], $dummyTaskTypes)) { + $workflowTaks[] = $arrayTaskData; + } + } + $this->processes->createTaskRows($workflowTaks); $this->processes->createLaneRows($data['workflow']['lanes']); $this->processes->createGatewayRows($data['workflow']['gateways']); $this->processes->createStepRows($data['workflow']['steps']); diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index bcf2cb74a..fc2480704 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -1913,32 +1913,32 @@ class Task throw $e; } } - + public function getValidateSelfService($data) - { - $paused = false; + { + $paused = false; $data = array_change_key_case($data, CASE_LOWER); - $sTaskUID = $data['act_uid']; + $sTaskUID = $data['act_uid']; $caseType = isset($data['case_type']) ? ($data['case_type'] == 'assigned' ? $data['case_type'] : 'unassigned') : 'unassigned'; - $response = new \stdclass(); + $response = new \stdclass(); $oCriteria = new \Criteria(); - $arrayCondition = array(); + $arrayCondition = array(); $arrayCondition[] = array(\AppDelegationPeer::APP_UID, \AppDelayPeer::APP_UID); - $arrayCondition[] = array(\AppDelegationPeer::DEL_INDEX, \AppDelayPeer::APP_DEL_INDEX); - $oCriteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); - $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID); - $oCriteria->add(\AppDelayPeer::APP_DISABLE_ACTION_USER, "0"); - $oResult = \AppDelegationPeer::doSelectOne($oCriteria); - if(!empty($oResult)) { - $paused = true; + $arrayCondition[] = array(\AppDelegationPeer::DEL_INDEX, \AppDelayPeer::APP_DEL_INDEX); + $oCriteria->addJoinMC($arrayCondition, \Criteria::LEFT_JOIN); + $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID); + $oCriteria->add(\AppDelayPeer::APP_DISABLE_ACTION_USER, "0"); + $oResult = \AppDelegationPeer::doSelectOne($oCriteria); + if(!empty($oResult)) { + $paused = true; } - + $response->paused = $paused; $oCriteria = new \Criteria(); $oCriteria->add(\AppDelegationPeer::DEL_THREAD_STATUS, "OPEN"); $oCriteria->add(\AppDelegationPeer::TAS_UID, $sTaskUID); - if($caseType == 'unassigned') { + if($caseType == 'unassigned') { $oCriteria->add(\AppDelegationPeer::USR_UID, "", \Criteria::EQUAL); } $oApplication = \AppDelegationPeer::doSelectOne($oCriteria); @@ -1949,4 +1949,27 @@ class Task } return $response; } + + /** + * Return a list of Dummy Types + * + * return array + * + * @access public + */ + public static function getDummyTypes(){ + $aTypes = array( + "GATEWAYTOGATEWAY", + "WEBENTRYEVENT", + "END-MESSAGE-EVENT", + "START-MESSAGE-EVENT", + "INTERMEDIATE-THROW-MESSAGE-EVENT", + "INTERMEDIATE-CATCH-MESSAGE-EVENT", + "START-TIMER-EVENT", + "INTERMEDIATE-CATCH-TIMER-EVENT", + "END-EMAIL-EVENT", + "INTERMEDIATE-THROW-EMAIL-EVENT" + ); + return $aTypes; + } } diff --git a/workflow/engine/src/ProcessMaker/Importer/Importer.php b/workflow/engine/src/ProcessMaker/Importer/Importer.php index 45059f6b7..ef7aecbd0 100755 --- a/workflow/engine/src/ProcessMaker/Importer/Importer.php +++ b/workflow/engine/src/ProcessMaker/Importer/Importer.php @@ -531,23 +531,11 @@ abstract class Importer //Update $workflow = \ProcessMaker\Project\Workflow::load($projectUid); + $dummyTaskTypes = \ProcessMaker\BusinessModel\Task::getDummyTypes(); foreach ($arrayWorkflowTables["tasks"] as $key => $value) { $arrayTaskData = $value; - - if (!in_array($arrayTaskData["TAS_TYPE"], array( - "GATEWAYTOGATEWAY", - "WEBENTRYEVENT", - "END-MESSAGE-EVENT", - "START-MESSAGE-EVENT", - "INTERMEDIATE-THROW-MESSAGE-EVENT", - "INTERMEDIATE-CATCH-MESSAGE-EVENT", - "START-TIMER-EVENT", - "INTERMEDIATE-CATCH-TIMER-EVENT", - "END-EMAIL-EVENT", - "INTERMEDIATE-THROW-EMAIL-EVENT" - )) - ) { + if ( !in_array($arrayTaskData["TAS_TYPE"], $dummyTaskTypes) ) { $result = $workflow->updateTask($arrayTaskData["TAS_UID"], $arrayTaskData); } }