Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
| Doc. Ref. 31942 Título: Los eventos en Hexa 9 Autor: Hexa Última actualización: 15/07/2026#proceso #evento |
Los eventos en Hexa 9
En Hexa, los «Procesos de Evento» (tabla «Evento») son scripts que ejecutan código VBS en determinados puntos de la aplicación, como al terminar de crear una factura o antes de eliminar un cliente. Tienen un campo «Código» que los identifica. Este código está formado por el nombre de la clase que lo ejecuta, seguido de un punto, el nombre de la función que lo ejecuta, otro punto y una palabra que describe el momento de la ejecución.
Por ejemplo, «EdxTareaControl9.Alta.Despues» es un script que se ejecuta al final («Despues») de la función «Alta» de la clase —en este caso, un formulario— llamada «EdxTareaControl9».
También existen eventos que no se ejecutan automáticamente en un momento concreto, sino que se llaman desde otros scripts mediante la función «Evento». Si queremos ejecutar un código común desde varios eventos, podemos incluirlo en un evento independiente y llamarlo desde los demás. De esta forma evitamos duplicar código. Por convención, los códigos de estos eventos comienzan con la cadena «Funcion.».
Ejecución de eventos desde otros scripts
La sintaxis para ejecutar un evento desde otro script es la siguiente:
frm.Evento Diario, "Funcion.EnviaFactura", "Fecha='15/7/26'", "Prefijo ASC, Numero ASC", "Repetir=No"
- Tenemos un script guardado en un evento llamado «Funcion.EnviaFactura», que envía facturas por correo electrónico.
- Nuestro script admite los tres parámetros habituales: «Criterio», «Orden» y «Opciones».
- El parámetro inicial «Diario» indica el diario de Hexa que permite añadir formularios para cargarlos al finalizar la ejecución.
- El script tiene una opción llamada «Repetir», que indica si deben volver a enviarse las facturas que ya están marcadas como enviadas.
Consideraciones adicionales sobre los procesos de evento
- Se puede forzar a Hexa a ejecutar un proceso de evento al arrancar indicándolo mediante el parámetro «evento». Por ejemplo: «usuario.exe evento=Funcion.EnviarFacturasPendientes». En este caso, Hexa se abre, ejecuta el evento y se vuelve a cerrar. Por ello, no tiene sentido añadir nuevos formularios al diario: Hexa no los cargará al finalizar la ejecución.
- Si queremos ejecutar un evento cada vez que se abre Hexa, podemos usar el evento estándar «Autoscript». Si queremos ejecutar acciones diferentes en función del usuario o del equipo, podemos incluir las condiciones necesarias dentro del propio evento. En este caso sí se pueden añadir formularios al diario, y Hexa los cargará al terminar la ejecución del script.
- Para ejecutar tareas periódicas se pueden utilizar dos estrategias:
- Usar las tareas programadas de Windows para llamar a Hexa con el parámetro «evento» correspondiente a cada funcionalidad. La periodicidad se configura en el Programador de tareas de Windows, por ejemplo una vez al día o cada hora. Se pueden crear tantas tareas programadas como sea necesario.
- Usar el motor de tareas de Hexa, que permite crear scripts con distintas frecuencias de ejecución y horas de inicio. En este caso es necesario mantener Hexa ejecutándose en un equipo y tener abierto el formulario «Motor de tareas».
- Los procesos de evento que se ejecutan de forma estándar en Hexa no cargan los formularios pendientes de mostrar al terminar. Por lo tanto, no tiene sentido utilizar el método «NuevoFormulario» del objeto «Diario» en este tipo de eventos.
