From a362b33ffc6056b01ffbd444c95b77f953d94eec Mon Sep 17 00:00:00 2001 From: Victor Saisa Lopez Date: Sat, 26 Sep 2015 12:42:53 -0400 Subject: [PATCH] PM-3663 "0018557 No se puede reclamar casos de la bandeja 'Unassigned'" SOLVED Issue: 0018557 No se puede reclamar casos de la bandeja "Unassigned" Cause: El valor de la variable tambien puede ser un usuario Solution: La asignacion de tipo "Self Service Value Based Assignment" ahora funciona de la siguiente manera (ejemplo): - Si se desea definir a un grupo entonces se tendra el siguiente caso: @@SYS_GROUP_TO_BE_ASSIGNED = "00000000000000000000000groupuid1"; - Si se desea definir a un usuario entonces se tendra el siguiente caso: @@SYS_USER_TO_BE_ASSIGNED = "00000000000000000000000useruid1"; - Si se desea definir a usuarios entonces se tendra el siguiente caso: @@SYS_USER_TO_BE_ASSIGNED = array("000000000000000000000000useruid1", "000000000000000000000000useruid2"); - Por lo que el engine reconocera lo siguiente: * A un string, como un UID de un grupo * A un string, como un UID de un usuario * A un array, como un array de UIDs de solo usuarios --- workflow/engine/classes/class.case.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/workflow/engine/classes/class.case.php b/workflow/engine/classes/class.case.php index 1e1c1ee00..ec1db951f 100755 --- a/workflow/engine/classes/class.case.php +++ b/workflow/engine/classes/class.case.php @@ -493,14 +493,15 @@ class Cases } if ($APP_UID != '') { - $taskInstance = new Task(); + $task = new Task(); + $arrayTaskData = $task->load($TAS_UID); - $taskData = $taskInstance->Load($TAS_UID); - $tasGroupVariable = str_replace(array('@', '#'), '', $taskData['TAS_GROUP_VARIABLE']); - $caseData = $this->LoadCase($APP_UID); + $taskGroupVariable = trim($arrayTaskData["TAS_GROUP_VARIABLE"], " @#"); - if (isset($caseData['APP_DATA'][$tasGroupVariable])) { - $dataVariable = $caseData["APP_DATA"][$tasGroupVariable]; + $caseData = $this->loadCase($APP_UID); + + if (isset($caseData["APP_DATA"][$taskGroupVariable])) { + $dataVariable = $caseData["APP_DATA"][$taskGroupVariable]; if (is_array($dataVariable)) { //UIDs of Users @@ -515,6 +516,11 @@ class Cases if (!empty($dataVariable) && in_array($dataVariable, $group->getActiveGroupsForAnUser($USR_UID))) { return true; + } else { + //UID of User + if (!empty($dataVariable) && $dataVariable == $USR_UID) { + return true; + } } } }