diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php index fbdf6d573..677f0ac31 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/Task.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/Task.php @@ -291,10 +291,20 @@ class Task $flagTaskIsMultipleInstance = $bpmnActivity->getActType() == "TASK" && preg_match("/^(?:EMPTY|USERTASK|MANUALTASK)$/", $bpmnActivity->getActTaskType()) && $bpmnActivity->getActLoopType() == "PARALLEL"; $flagTaskAssignTypeIsMultipleInstance = preg_match("/^(?:MULTIPLE_INSTANCE|MULTIPLE_INSTANCE_VALUE_BASED)$/", $arrayProperty["TAS_ASSIGN_TYPE"]); + + if ($flagTaskIsMultipleInstance && !$flagTaskAssignTypeIsMultipleInstance) { + $arrayProperty["TAS_ASSIGN_TYPE"] = "MULTIPLE_INSTANCE"; + $flagTaskAssignTypeIsMultipleInstance = true; + } if ($flagTaskIsMultipleInstance && !$flagTaskAssignTypeIsMultipleInstance) { throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_MULTIPLE_INSTANCE_ACTIVITY", array(strtolower("ACT_UID"), $act_uid))); } + + if (!$flagTaskIsMultipleInstance && $flagTaskAssignTypeIsMultipleInstance) { + $arrayProperty["TAS_ASSIGN_TYPE"] = "BALANCED"; + $flagTaskAssignTypeIsMultipleInstance = false; + } if (!$flagTaskIsMultipleInstance && $flagTaskAssignTypeIsMultipleInstance) { throw new \Exception(\G::LoadTranslation("ID_ACTIVITY_INVALID_ASSIGNMENT_METHOD_FOR_ACTIVITY", array(strtolower("ACT_UID"), $act_uid)));