Ejecución en cadena de procesos

Publicado más de 1 año hace por Flexygo Team

  • Tema bloqueado
Flexygo Team
Flexygo Team

Desde la versión 5.0 de flexygo es posible encadenar procesos tanto en estos mismos cómo en la inserción/actualización/borrado de objetos mediante los standard.


SUBPROCESOS EN LOS PROCESOS BASE


Ahora en la configuración de los procesos se ha añadido un apartado llamado cadena de procesos, en este es posible agregar el nombre del proceso que se ejecutará antes del principal y aquel que se ejecutará después. Estos procesos a su vez ejecutarán sus propios subprocesos, creando así la llamada cadena de procesos.


Datos a tener en cuenta:

  • A lo largo de la ejecución tanto los parámetros cómo el entity se irán pasando entre todos los procesos. (Sin embargo las storeds no recibirán el entity cómo un parámetro).
  • En caso de que uno de estos procesos devuelva un error o false la cadena se parará por completo.
  • Cuando se ejecute un proceso js asyncrono la cadena se esperará siempre a que este termine.
  • Todos los procesos con javascript recibirán los siguiente parámetros: processname, objectname, objectwhere, targetid, excludeHist, triggerElement y currentProcess.
  • En el caso de que un proceso javascript sea una promesa y se quiera esperar a la ejecución de esta para continuar la cadena, se deberá hacer un return de esta. (Es por ello que hemos hecho que ahora flexygo.msg.confirm pueda ser usada como una promesa).




Procesos antes y después de una inserción/actualización/borrado


En el caso de una procesos de inserción, actualización o borrado existen algunas peculiaridades, pese a ser bastante similares a los anteriores.

Para estos existe la distinción entre aquellas ejecutadas en base a un proceso, de tipo dll o stored, y las acciones standard . En el caso de las primeras los subprocesos serán los propios del proceso de  inserción, actualización o borrado, sin embargo a las acciones standard hará falta añadirles desde la configuración del objeto cuales son sus subprocesos.


Peculiaridades:

  • El entity se va pasando a lo largo de todos los procesos y en caso de modificarlo antes de una inserción o actualización estas se tendrán en cuenta en ello.  (Sin embargo las storeds no recibirán el entity cómo un parámetro pero tras la inserción/actualización sí que enviará el Entity con los valores actualizados). 
  • Los procesos que envían js recibirán dos parámetros, 'sysObj' y 'triggerElement'. El primero de estos es el Entity con todos los valores actuales, el triggerELement siempre será el botón que ha ejecutado la cadena.
  • Si en un proceso falla o devuelve false antes de la acción principal, esta no se ejecutará; sin embargo si esto pasa en el after simplemente se pararán las siguientes ejecuciones.



PROCESOS ANTES Y DESPUÉS DE UNA INSERCIÓN/ACTUALIZACIÓN/BORRADO DE IMÁGENES O DOCUMENTOS


La inserción, actualización y borrado de imágenes y documentos al funcionar de otra forma tiene sus peculiaridades. Es por ello que esto solo se puede hacer desde la versión 5.8 de flexygo. Para ello lo importante será saber que objetos deben tener los procesos deseados modificados, en caso de elementos de flexy sería Documents_Objects y Objects_Images, y para elementos del ERP Documentos_CEESI y Objetos_Imagenes. Además deberás tener en cuenta que hay casos en los que el propio elemento usará un proceso a parte para alguna acción, como se ve en la imagen, en estos casos bastará con acceder a este mediante el icono de la cadena y en dicha configuración ya añadir los procesos de antes y después.

0 Votos


0 Comentarios