mudar a duedate após criar a tarefa

Foro pra discusão de ProcessMaker

Moderator: amosbatto

lbrandao
Posts: 51
Joined: Tue Sep 27, 2011 10:42 am
Country: United States of America
Contact:

mudar a duedate após criar a tarefa

Unread postby lbrandao » Tue Feb 07, 2012 8:15 pm

Olá

preciso mudar a duedate (data final) da tarefa, logo após a sua criação.

coloquei um update no after derivation da tarefa1 que chamará a próxima (tarefa2), que é a qual quero mudar a data. a data será setada em uma variável no dynaform na tarefa1.

o update é na tabela app_delegation, com where nos campos pro_uid com @@process e tasuid com @@task e app_uid com @@applcation

mas não atualiza.

o que estou fazendo errado ?

obrigado
Luciano Brandão
XGIT Gestão de Processos

krlos10f
Posts: 34
Joined: Mon Oct 19, 2009 6:20 pm

Re: mudar a duedate após criar a tarefa

Unread postby krlos10f » Thu Mar 29, 2012 11:10 am

Hola lbrandao,

parece que lo que estabas haciendo estaba bien solo te falto agregar en el where DEL_INDEX y tambien el "DEL_THREAD_STATUS"
bueno la idea es basicamente usar un trigger que tiene que estar en Assign Task dentro de After Derivation.
Algo asi:

Code: Select all

   [ Assign Task ] - Triggers (1)
   Before Assignment - Triggers (0)
   Before Derivation - Triggers (0)
   After Derivation -  Triggers (1) <--- aqui va el trigger

ahora bien, en el trigger podemos realizar el cambio del due_date incrementandolo con dias o directamente setteandolo con una variable.En este trigger estamos haciendo de las dos formas incrementandolo con dias ($newDate = date('Y-m-d h:i:s',$incDate);) y tambien setteandolo directamente a una determinada fecha ($newDate = "2015-01-01 10:10:10";).
Puedes ir probando comentando la forma de asignar la fecha en esta variable $newDate
Aqui el código del trigger:

Code: Select all

$sdate = date('Y-m-d-h-i-s');
//increase of days
$ndays = 100;
//getting the date's information
list ($year,$mounth,$day,$hour,$min,$sec) = split("-",$sdate);
$incDate = mktime ($hour,$min,$sec,$mounth,$day,$year) + $ndays *24*60*60;
//setting the variables before to do the update
$newDate = date('Y-m-d h:i:s',$incDate); //increase of days
//$newDate = "2015-01-01 10:10:10"; //directly way
[email protected]@APPLICATION;
$delIndex = @@INDEX +1;
executeQuery("UPDATE APP_DELEGATION SET DEL_TASK_DUE_DATE = '".$newDate."' WHERE APP_UID = '".$appUid."' AND DEL_INDEX ='".$delIndex."' and DEL_THREAD_STATUS='OPEN' ");

espero que esto le ayude...

Saludos
krlos


Return to “Português”

Who is online

Users browsing this forum: No registered users and 2 guests