Questions and discussion about using ProcessMaker: user interface, running cases & functionality
By leydyzapata03
#795707
Buenos días tengo la siguiente consulta:
Quisiera saber que usuarios estan asignados para trabajar en cierta tarea de proceso:
-Como las reglas de asignación las estoy manejando por grupos en la tarea inicial de un proceso, quisiera saber que grupo esta asignado a un esta tarea de este proceso desde la base de datos de ProcessMaker.
-Y la segunda tarea de este proceso tiene la regla de asignación basado en un valor, quisiera saber a este id de tarea que usuario ha trabajado.

Quedo atenta, mil gracias.
User avatar
By amosbatto
#795710
No es facil conseguir la lista de usuarios asignados a una tarea desde la base de datos en las tablas TASK_USER y GROUPWF, porque los usuarios pueden ser asignados directamente o pueden ser asignados por grupos. También algunos usuarios pueden ser reemplazados por su usuario de "Replaced By" cuando su estatus no es "ACTIVE".

Para conseguir un array de IDs de usuarios asignados a una tarea (incluyendo los reemplazos por "Replaced By"), puedes usar Derivation::getAllUsersFromAnyTask()

Para conseguir la lista de usuarios sin reemplazos de "Replaced by", puedes usar este código:
Code: Select all
require_once 'classes/model/TaskUser.php';
//set to ID of a task or use @@TASK for current task:
$taskId = 'XXXXXXXXXXXXXXXXXXXX'; 
$oTU = new TaskUser();
$aAssignedUsers = $oTU->getAllUsersTask($taskId);
            
foreach ($aAssignedUsers as $aUser) {
    $userId = $aUser['USR_UID'];
    //do something here
}
User avatar
By amosbatto
#795711
leydyzapata03 wrote: -Y la segunda tarea de este proceso tiene la regla de asignación basado en un valor, quisiera saber a este id de tarea que usuario ha trabajado.
Puedes buscar en APP_CACHE_VIEW.USR_UID para conseguir el usuario que fue asignado a una tarea especifica. Por ejemplo puedes usar este codigo en un trigger:
Code: Select all
//set to the ID of the task:
$taskId = 'XXXXXXXXXXXXXXXXXXXXXXX';
$caseId = @@APPLICATION; //ID of the current case

//use ORDER BY DEL_INDEX DESC to get the last user if case reassigned or executed the same task multiple times in case
$sql = "SELECT USR_UID FROM APP_CACHE_VIEW WHERE APP_UID='$caseId' AND TAS_UID='$taskId' ORDER BY DEL_INDEX DESC";
$result = executeQuery($sql);
if (empty($result)) {
   throw new Exception("Unable to find task's record with query: $sql");
}
$assignedUserId = $result[1]['USR_UID'];
 

Experience heightened pleasure with Cenforce 100 M[…]

Get an instant solution to move emails to MBOX for[…]

Most Demanding OST to PST Converter

The most demanding OST to PST Converter is TrijaT[…]

Betvisa clone scripts are pre-built software solut[…]