Un foro de discusión para nuestra comunidad de hispano hablante
By alexisjavier
#794061
Buenas!

Estoy intentando reasignar una tarea desde un trigger, basicamente el usuario elige un user de la DB y una tarea paralela debería reasignarse a ese usuario. La tarea tiene value based assigment, pero ya esta asignada por lo que caluclo que habría que reasignar o recomenzar esa tarea para que tome la nueva variable?

Intente con PMFAddUserGroupToTask sin exito, igual creo que no viene por ahi la mano.
Code: Select all

//Tecnico Asignado
$id = @@UsuarioTecnicoUID;
$userTecnico  = userInfo($id);
$userTecnicoMail = $userTecnico['mail'];
$userTecnicoUsername = $userTecnico['username'];
$userTecnicoNombreCompleto = $userTecnico['firstname'] . ' ' . $userTecnico['lastname'];

@@UsuarioTecnicoMail = $userTecnicoMail;
@@UsuarioTecnicoNombreCompleto = $userTecnicoNombreCompleto;
@@UsuarioTecnico = $userTecnicoUsername;

$ant = @=UsuarioTecnicoAnterior;

if($ant != "") {
	PMFRemoveUserGroupFromTask('236311366595d3fe1f05441012636015', $ant);
}

PMFAddUserGroupToTask('236311366595d3fe1f05441012636015', $id);

@=UsuarioTecnicoAnterior = @=UsuarioTecnicoUID;
Alguna idea?

Por otro lado, ya estoy terminando una aplicación (es un helpdesk bastante avanzado) y me gustaría poder compartirlo a la comunidad, además del .pmx que otro archivo se necesita exportar? necesitaría grupos y asignaciones..

Gracias!!
Alexis.,
User avatar
By amosbatto
#794829
Alexis,
Las función PMFAddUserGroupToTask() causa una excepción si el usuario/grupo ya está asignado a la tarea y @@__ERROR__ tendra un valor como: This ID: 00000000000000000000000000000001 is already assigned to task: 754414975599f6c7a9f5942001224732
Si tienes este excepción, la ultima línea de tu código no será ejecutado.
Debes chequear si el usuario ya esta asignado antes de llamar PMFAddUserGroupToTask() con codigo como este:
Code: Select all
$userId = @@USER_LOGGED;
$taskId = '236311366595d3fe1f05441012636015';   
//G::LoadClass('derivation'); //not necessary in triggers
$d = new Derivation();
$aAssignedUsers = $d->getAllUsersFromAnyTask($taskId);
if (!in_array($userId, $aAssignedUsers)) {
    PMFAddUserGroupToTask($taskId, $userId);
}
Igualmente, PMFRemoveUserGroupFromTask() causa una excepción si el usuario/grupo que quieres quitar de la tarea no está asignado a la tarea. Debes chequear si el usuario ya esta asignado antes de llamar PMFRemoveUserGroupFromTask() con codigo como este:
Code: Select all
$userId = @@USER_LOGGED;
$taskId = '236311366595d3fe1f05441012636015';   
//G::LoadClass('derivation'); //not necessary in triggers
$d = new Derivation();
$aAssignedUsers = $d->getAllUsersFromAnyTask($taskId);
if (in_array($userId, $aAssignedUsers)) {
    PMFRemoveUserGroupFromTask($taskId, $userId);
}
Otra manera es atrapar la excepción para que no prevenga el ejecutación de lo demás del código:
Code: Select all
$userId = @@USER_LOGGED;
$taskId = '236311366595d3fe1f05441012636015';   
try {    
    PMFRemoveUserGroupFromTask($taskId, $userId);
}
catch (Exception $e) {
    @@myException = $e->getMessage();
}
//the rest of my code here
alexisjavier wrote: Por otro lado, ya estoy terminando una aplicación (es un helpdesk bastante avanzado) y me gustaría poder compartirlo a la comunidad, además del .pmx que otro archivo se necesita exportar? necesitaría grupos y asignaciones..
Gracias por compartir tu trabajo. No hay una manera facil para exportar grupos y asignaciones aparte de exportar todo tu workspace (que probablemente no quieres hacer.) En la descripción del proceso puedes incluir instrucciones acerca de grupos y asignaciones. Otra posibilidad es adjuntar instrucciones cuando publicas el archivo .pmx en el foro.

Estoy pensando en crear un sección llamada "Share your processes and code" en el foro. ¿Qué opinas?
By alexisjavier
#794851
amosbatto wrote:Alexis,
Las función PMFAddUserGroupToTask() causa una excepción si el usuario/grupo ya está asignado a la tarea y @@__ERROR__ tendra un valor como: This ID: 00000000000000000000000000000001 is already assigned to task: 754414975599f6c7a9f5942001224732
Si tienes este excepción, la ultima línea de tu código no será ejecutado.
Gracias Amos, parece que no hay excepcion, ya que el codigo parece terminar de ejecutarse, tampoco llega ningun error.
Lo que no hace es cambiar el "Current User" de la task que ya está asignada a otro usuario. Tampoco se muy bien si es la manera correcta de realizarlo...
amosbatto wrote: Gracias por compartir tu trabajo. No hay una manera facil para exportar grupos y asignaciones aparte de exportar todo tu workspace (que probablemente no quieres hacer.) En la descripción del proceso puedes incluir instrucciones acerca de grupos y asignaciones. Otra posibilidad es adjuntar instrucciones cuando publicas el archivo .pmx en el foro.

Estoy pensando en crear un sección llamada "Share your processes and code" en el foro. ¿Qué opinas?
Sería buenísimo poder tener un lugar donde compartir o ver como se realizan los procesos "en la vida real" man que nada en las etapas de aprendizaje. Tambien tener un repositorio de procesos sería muy útil...

El único problema que veo es que no tuve en cuenta idiomas ni traducciones, no se si no sería mejor armarlo por idioma? (igual creo que los unicos idiomas activos en el foro son Español e Inglés).

Otro problema que tengo es algunas interacciones con PMT_Tables que debería quitar o al menos indicar en las instrcucciones que se espera...
User avatar
By amosbatto
#794869
alexisjavier wrote:Lo que no hace es cambiar el "Current User" de la task que ya está asignada a otro usuario. Tampoco se muy bien si es la manera correcta de realizarlo...
Alexis,
PMFAddUserGroupToTask() y PMFRemoveUserGroupFromTask() cambia cuales usuarios están en el grupo de usuarios disponibles para ser asignados a la tarea. Si quieres cambiar el usuario asignado a una tarea en un caso especifico, tienes que usar Cases::reassignCase().

Hello. For rental housing, there are software solu[…]

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[…]