diff --git a/workflow/engine/classes/class.processes.php b/workflow/engine/classes/class.processes.php index 1841217c0..3da948bc5 100755 --- a/workflow/engine/classes/class.processes.php +++ b/workflow/engine/classes/class.processes.php @@ -3674,6 +3674,25 @@ class Processes return; } + /** + * Get Task User Rows from an array of data + * + * @param array $aTaskUser + * @return array $aStepTrigger + */ + public function addNewTaskUserRows($aTaskUser) + { + if (is_array($aTaskUser)) { + foreach ($aTaskUser as $key => $row) { + $oTaskUser = new TaskUser(); + if (!$oTaskUser->TaskUserExists($row['TAS_UID'], $row['USR_UID'], $row['TU_TYPE'], $row['TU_RELATION'])) { + $res = $oTaskUser->create($row); + } + } + } + return; + } + /** * Get Task User Rows from an array of data * @@ -3691,6 +3710,22 @@ class Processes } } + /** + * Create User Rows from an array of data if does not exist + * + * @param array $aGroupwf + * @return array $res + */ + public function addNewGroupRow($aGroupwf) + { + foreach ($aGroupwf as $key => $row) { + $oGroupwf = new Groupwf(); + if (!$oGroupwf->GroupwfExists($row['GRP_UID'])) { + $res = $oGroupwf->create($row); + } + } + } + /** * Create DB Connections rows from an array of data * diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php index 18f83960a..4242a5d63 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Migrator/AssignmentRulesMigrator.php @@ -36,9 +36,13 @@ class AssignmentRulesMigrator implements Importable, Exportable { try { if ($replace) { - $this->processes->createTaskRows($data); + $this->processes->createTaskRows($data['tasks']); + $this->processes->addNewGroupRow($data['groupwfs']); + $this->processes->createTaskUserRows($data['taskusers']); } else { - $this->processes->addNewTaskRows($data); + $this->processes->addNewTaskRows($data['tasks']); + $this->processes->addNewGroupRow($data['groupwfs']); + $this->processes->addNewTaskUserRows($data['taskusers']); } } catch (\Exception $e) {