Este ejemplo es muy sencillo. Se trata de un proceso que, tras iniciarse, se demora 5 segundos. Se registran los dos tiempos, el de inicio y el de la tarea automática, y podremos comprobar el comportamiento.
nombre: tempo1
atributos:
inicio DATE-TIME (NO TIME ZONE)
intermedio DATE-TIME (NO TIME ZONE)
Definimos la variable de negocio "vntempo1" para el proceso.
Antes de finalizar, entramos a editar su "valor predeterminado" e introducimos el siguiente código como script:
import java.time.LocalDateTime;
def tempoVar = new com.company.model.tempo1()
tempoVar.inicio = LocalDateTime.now();
tempoVar.intermedio = null
return tempoVar
El valor predeterminado, la inicialización de la variable de negocio, consiste en darle valor inicial a todos o a algunos de sus atributos. Esto se genera automáticamente cuando definimos contrato de instanciación, pero también lo podemos utilizar, como en este caso, porque queremos asignar ciertos valores nada más empezar el proceso.
Lo que hacemos con este código es registrar la hora de inicio del proceso: en qué momento pulsamos el botón del primer formulario que se nos presenta. Ese valor de tiempo (LocalDateTime) se guarda en vntempo1.inicio. El otro atributo, vntempo1.intermedio, se actualizará en la tarea automática posterior; aquí lo iniciamos con null.
Debemos editar la condición del temporizador, lo que nos lleva a un generador de expresiones. En este seleccionaremos que esté basado en duración, 5 segundos, y pulsaremos "generar la expresión de duración". Después, simplemente "finalizar.
Esta tarea es la encargada de registrar la fecha y hora en que se ejecuta ella misma.
El script de java, con el nombre que quieras, contendrá las siguientes líneas:
import java.time.LocalDateTime;
return LocalDateTime.now();
Como no hemos definido ningún contrato ni formulario, se va a generar uno por defecto que solo tiene un botón de enviar. Cuando lo pulsemos, la inicialización de la variable de negocio almacenará en vntempo1.inicio la fecha y hora del sistema.
El temporizador para el proceso durante 5 segundos. Pasado este tiempo se ejecuta la tarea de servicio que anota fecha y hora en vntempo1.intermedio.
Mientras tanto, Bonita te lleva a la página de administración de Portal. Vete a "casos archivados" y podrás comprobar los dos tiempos almacenados por el proceso.