Queremos probar, ahora, el evento adjunto interruptor por tiempo. Resumiendo, una tarea puede verse interrumpida por un evento de tiempo, y derivar la ejecución a otro flujo de secuencia.
En este caso, tras iniciar el proceso, se nos muestra un formulario que nos pide que escribamos algo. Si lo hacemos dentro de los 15s posteriores al inicio del proceso, terminaremos como estaba previsto. Si nos demoramos mucho, una tarea automática hara lo mismo por nosotros.
Se inicia el proceso
Debemos tomar la tarea, rellenar el formulario y enviar.
Si lo hemos hecho en tiempo...
Si nos hemos demorado demasiado...
tempo2
dialgo STRING
inicio DATE-TIME (NO TIME ZONE)
terminado DATE-TIME (NO TIME ZONE)
Tras dibujar el diagrama, pasamos a la configuración del proceso.
Un script java que da el primer valor a la variable de negocio (instanciación).
Lo único que forzamos es recuperar la fecha y hora del sistema. Formará parte del caso a archivar.
import java.time.LocalDateTime;
def tempo2Var = new com.company.model.tempo2()
tempo2Var.dialgo= null
tempo2Var.inicio = LocalDateTime.now();
tempo2Var.terminado = null
return tempo2Var
Para hacer evidente el comportamieno esperado, añadimos al formulario un widget TEXT en el que emplazamos un texto informativo:
Tienes <b>15 segundos</b> para escribir algo y enviar...
Bonita ya ha establecido la primera operación para recoger los valores del formulario. Nosotros añadiremos otra operación para escribir la fecha y hora del sistema actuales en la variable de negocio, en vntempo.terminado.
El script java debe contener el siguiente código:
import java.time.LocalDateTime;
return LocalDateTime.now()
En este caso debemos añadir dos operaciones. En una rellenaremos el texto "dialgo" y en la otra la fecha y hora "terminado".
La primera es una constante de texto. La segunda es un script java con el mismo texto de la sección anterior.
Si todo está correcto, ya se puede ejecutar.