Un foro de discusión para nuestra comunidad de hispano hablante
#815462
Edité el título del POST original: "Cómo ejecutar un trigger al inicio de una tarea, que solamente se accede vía API REST"
------------------------------------------------------------------------------------------------------------------------------------------------------------

Buenos días

Les cuento la situación y mi problema.
Utilizo la versión 3.1.3 de ProcessMaker principalmente a través de la API REST. A través de la API se crean y derivan (route) casos a través del proceso.

Contexto del problema:

Necesitaba ejecutar 2 trigger al inicio de ciertas tareas de mi proceso (para comunicarme con un webservice externo) y debido a que la configuración por defecto de las tareas únicamente me permite asignar trigger en los eventos: AFTER y BEFORE route y assignment (https://wiki.processmaker.com/3.0/Triggers) se me ocurrió crear un formulario DYNAFORM en blanco (vacío) y lo agregué como STEP a las tareas que necesitaba agregar los triggers.

Al agregar los formularios, processmaker habilita los eventos AFTER Y BEFORE DYNAFORM en los cuales agregué los TRIGGERs que necesitaba ejecutar.


Adjunto una captura de la configuración descrita:

En la siguient eimagen indico en donde estoy colocando los formularios.
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (4).png
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (4).png (213.32 KiB) Viewed 6403 times
https://i.imgur.com/O705gtN.png

La siguiente captura indica la configuración de STEPs de ambas tareas.
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (3).png
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (3).png (120.56 KiB) Viewed 6403 times
https://i.imgur.com/foBJehD.png

El problema: (CORREGIDO)

He realizado varias pruebas y lamentablemente los TRIGGER NO SE ACTIVAN (o disparan) cuando se encuentran luego de un TIMER EVENT. Solamente se activan cuando ingreso manualmente al panel de control de Processmaker.


¿Qué soluciones tengo? :roll:

Agradezco cualquier idea de antemano.
Last edited by claudiojeraldo on Thu Aug 02, 2018 2:16 pm, edited 3 times in total.
#815486
.
amosbatto wrote:Claudio,
Puedes usar mi endpoint para enrutar el caso:
PUT extrarest/case/{app_uid}/route-case
Tiene un parametro de POST "execute_triggers" que puedes setear a true.
Wow! qué interesante tu endpoint amosbatto, estoy seguro de que me va a sacar de varios apuros y de hecho podré reformular partes de la aplicación cliente que consume la API REST. Pero creo que equivoqué la descripción de mi problema, a continuación explico por qué.

Revisé la descripción del problema y me equivoqué. Lo que realmente sucede es lo siguiente:

Los TRIGGER que añadí al evento BEFORE DYNAFORM no se ejecutan cuando SE CUMPLE EL TIEMPO DEL TIMER EVENT que antecede a las tareas que se observan en la captura del post original y aunque la tarea pasa a estar "IN_PROGRESS"(o se activa) los trigger no se disparan si no ingreso directamente al panel de administración de Processmaker.
#815514
amosbatto wrote:Si estas ejecutando el caso con REST, los triggers antes y despues de Dynaforms no van a ejecutar. Puedes ejecutar el trigger con PUT /api/1.0/{workspace}/cases/{app_uid}/execute-trigger/{tri_uid}
No es el caso, estoy tratando que un trigger que he definido en un evento BEFORE DYNAFORM sea ejecute luego de que el evento de tiempo que le antecede (o controla) se active (que alcance la fecha y hora programada).

Diseñé un ejemplo para hacer pruebas, adjunto la captura:
Screenshot of (administrador_sistema in FICR_gorecoquimbo).png
Screenshot of (administrador_sistema in FICR_gorecoquimbo).png (83.33 KiB) Viewed 6361 times
https://i.imgur.com/DcUzdY1.png

La configuración de PASOS de la "tarea 2" es la siguiente:
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (1).png
Screenshot of (administrador_sistema in FICR_gorecoquimbo) (1).png (116.95 KiB) Viewed 6361 times
https://i.imgur.com/NXz5T2I.png

Espero que se entiende cual es el problema.

Durante el día de ayer, realicé varias y pruebas y la única manera en que se "dispare el evento BEFORE DYNAFORM" es ingresando al caso desde le panel de administración. Lo que necesito es que se ejecute el trigger luego del evento de tiempo definido ( no me sirve crear una tarea tipo script).
#815519
Tienes que usar un script task despues de tu intermediate timer event. Puedes setear el trigger para ejecutar after routing en "tarea 1", pero va a ejecutar antes del intermediate timer event.

Bueno, puedes hacer algo afuera de ProcessMaker, como usar cron para ejecutar un script en un minuto que llama PUT /api/1.0/{workspace}/cases/{app_uid}/execute-trigger/{tri_uid}.

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