Un foro de discusión para nuestra comunidad de hispano hablante
#793914
Hola!

Estoy revisando la Wiki, y al parecer cualquier End Event que haya debería cerrar todo el caso y las tareas paralelas, sin embargo aquí siguen apareciendo como To-Do...

Es un error o algo que estoy malinterpretando?
2017-07-17 13_19_00-(aboni in workflow).jpg
2017-07-17 13_19_00-(aboni in workflow).jpg (203.19 KiB) Viewed 4310 times
Gracias!!!
Alexis.
Last edited by alexisjavier on Wed Jul 26, 2017 8:49 am, edited 1 time in total.
#793935
Me parece que lo que estoy n ecesitando es esto:
Code: Select all
Terminate

Use this event in the process design if there are parallel tasks executed at the same time, and the completion of one of them is enough to end the entire flow of the process. Thus, this event will end immediately all flows in the process. As this event is not supported by the ProcessMaker engine, use it only for design purposes.

Pero no esta implementado, tendría que buscar una lista de tareas abiertas y cerrarlas?

Quizas haya una mejor forma.

Gracias!
Alexis.
#793942
El end event solo termina el hilo (thread) actual del proceso. No termina todo el caso si hay dos o más hilos. En tu proceso has usado gateways paralelos separado el caso en varios hilos. Tienes que reunir los hilos con converging gateways en solo un hilo para terminar el caso. Si utilizas gateways exclusivos, solo tendras un hilo y puedes evitar el problema.

Si no puedes cambiar tu proceso, la otra opción es escribir directamente a las tablas APP_DELEGATION, APP_CACHE_VIEW y APPLICATION para cerrar todos los hilos del caso.

Primero, crea el archivo workflow/engine/config/execute-query-blacklist.ini con el siguiente contenido:
Code: Select all
;;;;;ExecuteQuery Blacklist Configuration File;;;;;

;The statement delimiter is "|"

;;;;;Statements Settings;;;;;
;The following are statements that are not allowed to be executed
;example: queries="INSERT|UPDATE|REPLACE|DELETE"

queries  = "INSERT|REPLACE|DELETE"

;;;;;Tables Settings;;;;;
;The following tables are restricted to be executed along with the statements defined previously.
;example: pmtables="PMTABLE1|PMTABLE2"

pmtables = ""
Si estas usando Linux, cambia el dueño del archivo al usuario de Apache.
En Red Hat/CentOS:
Code: Select all
chown apache:apache workflow/engine/config/execute-query-blacklist.ini
En Debian/Ubuntu:
Code: Select all
chown www-data:www-data workflow/engine/config/execute-query-blacklist.ini
Si ya tienes el archivo en tu instalación de ProcessMaker, cambia esta línea:
Code: Select all
queries="INSERT|UPDATE|REPLACE|DELETE"
a:
Code: Select all
queries  = "INSERT|REPLACE|DELETE"
Segundo, crea el siguiente trigger en tu proceso:
Code: Select all
$index = @@INDEX;
$caseId = @@APPLICATION;
$now = date("Y-m-d H:i:s");
$sql = "UPDATE APP_DELEGATION SET DEL_THREAD_STATUS='CLOSED', DEL_FINISH_DATE='$now' 
   WHERE APP_UID='$caseId' AND DEL_THREAD_STATUS='OPEN' AND DEL_INDEX<>$index";
executeQuery($sql);
$sql = "UPDATE APPLICATION SET APP_STATUS='COMPLETED' WHERE APP_UID='$caseId'";
executeQuery($sql);
$sql = "UPDATE APP_CACHE_VIEW SET APP_STATUS='COMPLETED', DEL_THREAD_STATUS='CLOSED', 
   DEL_FINISH_DATE='$now' 
   WHERE APP_UID='$caseId' AND DEL_THREAD_STATUS='OPEN' AND DEL_INDEX<>$index";
executeQuery($sql);
Tercero, setea este trigger para ejecutar despues de enrutamiento (after routing) en cada tarea que termina con un end event.

Adjunto un proceso para demostrar como funciona este trigger:
(67.04 KiB) Downloaded 400 times
#793968
Impecable como siempre Amos. Muchas gracias!! Funciona perfecto!!!

Estuve pensando un buen rato, y no encontre forma de rediseñar el proceso. La idea es que cada usuario tenga una tarea independiente asignada en todo momento, y si uno cierra el caso, cierre para todos, creo que eso es lo que "Terminate" event haría no?

De todos modos, tu solucion funciona perfecto, con el pqueño detalle de seguridad de permitir UPDATE en las tablas :P

Web3 development encompasses creating decentralize[…]

The Upland Clone Script, offered by Dappsfirm, rep[…]

Dappsfirm offers a bet365 clone script that mirror[…]

🚀 Tauchen Sie mit Immediate Alora AI in die Welt d[…]