El bucle es uno de los tipos de iteración que podemos definir en una tarea o una llamada a actividad. Este tipo de iteración repite la ejecución hasta que se cumple una condición.
Planteamos un proceso muy básico en el que enviamos un formulario varias veces con el resultado del incremento del valor de una variable x.
Este formulario dejará de aparecer como tarea pendiente a tomar transcurridos 15 segundos.
Una vez hayamos agotado el tiempo, dependiendo del número de formularios que nos hayan aparecido, la variable tendrá un valor mayor o menor.
Bucles
x INTEGER
vnBuclesC com.company.model.Bucles
El proceso no tiene ni contrato ni formulario de instanciación.
No obstante, hemos de inicializar la variable de negocio para que el atributo x comience con el valor 0:
def vv = new com.company.model.Bucles()
vv.x=0
vv
En realidad, no queremos introducir ningún dato, solo que nos muestra el valor actual de la variable y el botón de "enviar". Aprovecharemos las configuraciones automáticas de Bonita para ahorrarnos trabajo.
Genera el contrato como siempre, pero marcando que definiremos manualmente como utilizarlo.
Vamos a hacer algún cambio cosmético y, sobre todo, a hacer el widget input de "solo lectura".
Lo que le hemos dicho a Bonita, en el contrato, de que nos ocupábamos nosotros de las operaciones, lo hacemos ahora mediante un script ejecutado como argumento del método de Java vnBuclesC.setX():
vnBuclesC.getX()+1
Esta es la parte verdaderamente interesante del ejercicio. Definir el bucle que hará repetir la ejecución de la tarea, en nuestro caso indefinidamente, de hecho nuestro proceso siempre terminará cuando el temporizador se active.
Fíjate que podemos configurar varios parámetros, como "probar después" de la ejecución de la tarea la condición de bucle. También podríamos haber optado por imponer un número de "ciclos maximo".
La condición es trivial: true. Este bucle no finaliza nunca, para eso hemos añadido el temporizador.
Configurado a 15 segundos.
Importante: los 15 segundos cuentan a partir del momento en que la tarea está disponible, por lo que solo se podrá ejecutar unas pocas veces, o incluso ninguna si no se toma la tarea.
Una vez que Portal nos muestre la tarea disponible, tomarla y enviar el formulario. Recuerda refrescar la lista de tareas que, posiblemente, te quede vacía tras ese envío. Llegará un momento en que Portal te avise de que ya no está disponible la tarea, o que al refrescar ya no aparezca. El caso archivado tendrá un aspecto similar al mostrado en la imagen siguiente. Fíjate que la cronología marca varias ejecuciones de la tarea SUMAR 1.