Un foro de discusión para nuestra comunidad de hispano hablante

Moderator: amosbatto

#787246
Hola necesito saber como puedo desde el primer formulario que se genera al entrar al caso que la siguiente tarea se asigne desde un trigger y no de forma automática.
Actualmente la siguiente tarea tiene un Value Based Assignment con la variable @@UserAnalista
pero ahora necesito que esa terea se asigne desde un trigger al usuario @@UserAnalista sin que pase por la interfaz donde se delega la tarea
como hago para que ese proceso aocurra desde el trigger que función se encarga de llevar a a cabo esa tarea




muchas gracias
saludos
#787254
hola gracias por la pronta respuesta pero en la documentacón veo que los parametros que recibe son PMFDerivateCase(@@APPLICATION, @%INDEX); no veo donde se asigna el parámetro de usuario, podrías darme por favor un ejemplo.
Segun te entendi debe ir asi entonces PMFDerivateCase(@@UserAnalista) ?

http://wiki.processmaker.com/3.0/Proces ... Case.28.29

este ejemplo se parece mas a lo que deseo pero no muestra donde se indica el usuario a delegar la tarea

$processId = '1822559215775c714dadba1052021519'; //set to the Process ID
$dummyTaskId = '3609934335775a15491fb93026385324'; //set to ID of the dummy task
@@newCaseId = PMFNewCase($processId, @@USER_LOGGED, $dummyTaskId, array());
PMFDerivateCase(@@newCaseId, 1);

Saludos
#787255
Si quieres enrutar un nuevo caso a la segunda tarea asi, tienes que hacer esto:
Code: Select all
$processId = '1822559215775c714dadba1052021519'; //set to the Process ID
$dummyTaskId = '3609934335775a15491fb93026385324'; //set to ID of the dummy task
@@newCaseId = PMFNewCase($processId, @@USER_LOGGED, $dummyTaskId, array());
$aVars = array(
  "UserAnalista" => 'XXXXXXXXXXXXXXXXXXXX' //ID del usuario para asignar a la segunda tarea
);  
PMFSendVariables(@@newCaseId, $aVars);
PMFDerivateCase(@@newCaseId, 1);
Ver: http://wiki.processmaker.com/3.0/Proces ... bles.28.29
#787264
Hola no eso era un ejemplo solamente,no lo tengas en cuenta, lo coloque porque al principio me indicaste usar PMFDerivateCase() pero en al wiki no me fue claro como delegar esa tarea y ese código parecía un poco mas exacto pero no es lo que busco. Necesito saber como implementarlo con PMFDerivateCase()

Necesito lo siguiente: tengo un tarea y en el after dynaform en el ultimo ttrigger que tiene agregue el código PMFDerivateCase(@@APPLICATION, @%INDEX); para que se delegue la tarea a través del trigger, es decir lo que ocurre de forma natural al enviar una tarea que notifica a que usuario sera entregada necesito hacerlo desde el trigger, lo que te pedía por favor es un ejemplo de PMFDerivateCase() de como usarlo para delegar la nueva tarea al usuario. Pero cuando reviso el usuario al cual le debio delegar la tarea no lo hizo

No estoy reasignado el caso porque es una tarea que se va a entregar por primera vez, es decir nueva.
teniendo en cuenta que debo mostrar el usuario al fue delegado
pero el fomulario donde delego no es el ultimo step no si eso este afectando

estoy usando el codigo em

Gracias
Saludos
#787277
Para asignar la proxima tarea en el caso actual:
Code: Select all
@@UserAnalista = 'XXXXXXXXXXXXXXXXXXXX'; //ID del usuario para asignar.
$aInfo = userInfo(@@UserAnalista);
PMFDerivateCase(@@APPLICATION, @%INDEX);
die("Usuario {$aInfo['firstname']} {$aInfo['lastname']} es asignado a la proxima tarea");
Tambien puedes usar G::SendMessageText() para notificar el usuario. Si no esta asignando la tarea correctamente, debe ser porque el usuario que es asignado a la variable no esta en la lista de usuarios asignados a la tarea o tal vez has deletreado mal el nombre de la variable. Puedes chequear si hay un __ERROR__ definido en el debugger.
#787281
hola revise y si la asigna correctamente pero selecciona un usuario al azar del grupo como puedo indicarle que la asigne a un usuario en especifico

Tambien estoy tratando que despues de colocar PMFDerivateCase(@@APPLICATION, @%INDEX); haga una redirecciòn a un step del formulario y no me funciona, el trigger lo tengo en before asigment y alli si deriba correctamente pero no me ha sido posible redireccionar o consultar desde un link el step siguiente en el fomulario

estoy usando lo siguiente:
PMFDerivateCase(@@APPLICATION, @%INDEX);
PMFRedirectToStep(@@APPLICATION, @%INDEX, 'DYNAFORM', '25358086457de13f4ce3c29021344975');
//echo "<a href='../cases/cases_Step?TYPE=DYNAFORM&UID=25358086457de13f4ce3c29021344975&POSITION=3&ACTION=VIEW'>codeudor</a>";
die();

cuanod se llama PMFDerivateCase anula el step porque quite el PMFDerivateCase y si me salto correcmente desde el enlace pero neecsito el PMFDerivateCase primero luego ir al step deseado


Muchas gracias

Saludos
#787335
Para funcionar Value Based Assignment, el trigger que asigna la variable tiene que ser ejecutado antes del enrutamiento en la tarea anterior.

El indice de delegación ha aumentado por 1 despues de PMFDerivateCase(). Debe ser:
Code: Select all
PMFDerivateCase(@@APPLICATION, @%INDEX);
//ya estas en otra tarea, y el INDEX ha cambiado:
PMFRedirectToStep(@@APPLICATION, @%INDEX+1, 'DYNAFORM', '25358086457de13f4ce3c29021344975');
Nunca he tratado de usar PMFDerivateCase y PMFRedirectToStep en el mismo trigger. No sé si puede funcionar así.
#794463
Perdón, si alguno de ustedes puede ayudarme, no conozco el html, y tengo el problema de que deseo que la solicitud que hace un determinado empleado, regrese a este luego de que es revisado por su inmediato superior, por favor si me colaboran, gracias. :roll:
#794465
NelsonV,
Primero, lea esto para entender las instrucciones: http://wiki.processmaker.com/3.1/Tasks# ... Assignment

1. Crea un proceso como este:
supervisorLoopback_ValueBasedAssignment.png
supervisorLoopback_ValueBasedAssignment.png (47.07 KiB) Viewed 1220 times
2. Crea departamentos con los usuarios asignados a la primera tarea en el proceso. Los supervisores de cada departamento deben ser asignados a la segunda tarea.

3. La segunda tarea deben usar Value Based Assignment y una variable llamada @@supervisorId.
supervisorLoopback_processMap.png
supervisorLoopback_processMap.png (11.44 KiB) Viewed 1220 times
4. Crea un trigger con este código:
Code: Select all
$aUser = userInfo(@@USER_LOGGED);
@@supervisorId = $aUser['reportsto'];

if (empty(@@supervisorId)) {
	throw new Exception("User '"[email protected]@USR_USERNAME."' needs to be assigned to a department with a supervisor.");
}	
Set this trigger to execute before routing in the first task.

5. Create a DynaForm with a checkbox associated with the variable "review".

6. Add the following routing rules to the exclusive gateway:
supervisorLoopback_routingRules.png
supervisorLoopback_routingRules.png (21.02 KiB) Viewed 1220 times
Then run a case in this pro. Here is a sample process to try out:
(46.92 KiB) Downloaded 47 times

Hello guys, I'm new in ProcessMaker and I have som[…]

DBA changed the php.ini file and the timezone is n[…]

Test SQL Query

I'm working on a suggested field, but I don't rece[…]