En este ejemplo que estamos construyendo paso a paso ya hemos comprobado que se generan varios formularios de voto y que se recuentan correctamente. Es hora de que sean personas concretas las que lo hagan.
El proceso está suponiendo que hay 3 usuarios de la organización ACME encargados de dar el visto bueno a las solicitudes de compra. Estas 3 personas están indicadas en la lista de supervisores que contiene 3 valores LONG:
5L Virginie Jomphe
6L Zachary Williamson
7L Patrick Gardener
O sea, que cada instancia de aprobar será asignada a uno de estos tres empleados de ACME. Veamos cómo se hace.
Para este ejercicio necesitarás una extensión de Bonita
Accede a la vista global, a las extensiones, y al marketplace. En este último lugar, selecciona del desplegable los filtros de actor, busca "Single user", y seleccionala. Para acabar, pulsa "instalar".
Para no perder las versiones anteriores, vamos a duplicar el diagrama MultiParalelo v1.0 subiendo las versiones a 1.1.
Para poder reconocerlo y manejarlo posteriormente de una manera más fácil, al iterador que nos genera Bonita le vamos a poner un nombre más simple: elusuario.
NOTA: en este punto, el interfaz de Bonita, al menos para esta versión de Bonita Studio, es un poco contraintuitivo. Se introduce el nuevo nombre pero vuelve a aparecer el anterior. Hay que volver a editar el nombre, eliminar el antiguo, y entonces ya sí aparece el nuevo.
¿Qué hace el iterador elusuario? Lo que todos los iteradores, recorrer la colección —la lista supervisores— desde el primer hasta el último elemento —identificadores de usuario— para, entre otras cosas, generar las instancias de la tarea.
Pero queremos aprovechar el valor del iterador en cada instancia para asignarle la tarea al usuario concreto. Esto se hace en "actores".
Ten cuidado, la tarea "aprobar" debe estar seleccionada. Si pulsamos definir en el diálogo de la pestaña "actores" se abre otro diálogo en el que pasaremos por varias pantallas.
En primer lugar, elegimos un filtro de actor de tipo "single user", simplemente marcándolo en el panel de la derecha.
A continuación, pulsamos el botón "siguiente".
Le damos un nombre cualquiera —supervisor en nuestro ejemplo— y volvemos a pulsar "siguiente".
Vamos a definir el valor devuelto por el filtro. Editamos el script.
Ahora simplemente elegimos la variable del desplegable.
Ya solo queda "finalizar", y la definición de filtro de actor quedará con algo parecido a lo que mostramos aquí.
Aunque parezca complicado, lo que acabamos de hacer es forzar a Bonita a utilizar el valor del iterador elusuario en cada momento para asignar cada instancia de "aprobar" a un usuario concreto.
Esta ejecución va a ser un poco más complicada de lo habitual porque involucra a cuatro usuarios diferentes. Como siempre, empezamos por el formulario de instanciación, por rellenar una solicitud.
Pero al abrirse la lista de tareas pendientes no vemos nada. Eso es porque Walter Bates no tiene nada que hacer en este momento. Nos detenemos un momento y nos vamos a los "casos abiertos" para examinar lo que está ocurriendo con nuestro proceso.
Como es habitual, entrando al "formulario resumen", nos muestra la cronología de ejecución de las tareas. En este caso podemos observar que se han creado 3 instancias de "aprobar", y que cada una está asignada a —"solo la puede ejecutar"— un usuario diferente.
Continuando con nuestra ejecución del proceso, lo que debemos hacer, 3 veces, es cambiar el usuario:
zachary.williamson
virginie.jomphe
patrick.gardenier
Recuerda que la contraseña siempre es "bpm".
Zachary Williamson tiene una tarea que ejecutar, rellenar su formulario marcando o no la casilla "aprobación" según esté de acuerdo o no con la solicitud.
Seguimos en desarrollo. Es evidente que a este formulario le faltan datos para ser útil de verdad —qué se quiere comprar y cuánto cuesta—, pero eso ya lo arreglaremos más adelante.
Una vez que rellenemos el formulario, tendremos que cerrar sesión y volver a identificarnos como uno de los supervisores. Es decir, repite esta operación otras 2 veces. Cuando los 3 supervisores hayan votado, vuelve a identificarte como Walter Bates.
Si examinamos el caso archivado la cronología nos muestra todas las instancias de "aprobar", una por cada supervisor.
Habrás visto que aparecen títulos y subtítulos en los formularios que no necesariamente hemos añadido en UI Designer. Los formularios de UI Designer usan las descripciones que se pueden editar en Bonita Studio. Por ejemplo, la tarea "aprobar" la hemos descrito con Se generan tantas instancias como valores hay en la lista "supervisores". En casi todos los objetos, incluso modelos de datos de negocio se pueden introducir descripciones que ayudan a los desarrolladores y que, en algunos casos, se pueden ver en los formularios de forma automática.
En las distintas versiones de este ejemplo hemos ido cambiando algunas de esas descripciones, por lo que las imágenes de los formularios a veces cambian en cuanto a la información que ofrecen.
Mejora: accede al siguiente ejercicio