Es importante ser consciente de los pasos necesarios para cada actividad de desarrollo de un proceso en Bonita Studio. Si no lo has hecho ya, conviene que revises las explicaciones dadas en Modelando procesos.
Vamos a poner en marcha un proceso simple que ponga en práctica lo mostrado en esa lección previa.
Antes, un poco de terminología básica, aún cuando no sepas exactamente qué significa.
Diagrama: es el contenedor del proceso o procesos; tiene un nombre que se utiliza para, entre otras cosas, los ficheros generados en la exportación a disco duro.
Pool: o proceso, incluso "piscina", representa eso, un proceso, cuyo nombre identifica a todo lo relacionado con él (lista de procesos disponibles, casos, etc.)
Senda: o lane, veremos su uso más adelante; ahora mismo no tiene importancia para nosotros.
Hemos hecho esta pequeña lista porque se utilizarán estos términos para indicar pulsaciones de ratón dentro de Bonita Studio.
Queremos dar nuestros primeros pasos en Bonita y crear un proceso ejecutable mínimo. Necesitamos:
Un diagrama de proceso, el espacio donde "dibujaremos" en BPMN.
Un modelo de datos de negocio (BDM, business data model) para almacenar en la base de datos los datos generados por el proceso.
Una variable de negocio, la definición de una variable de proceso a partir del BDM previo.
Configurar la instanciación del proceso, el inicio del proceso.
Configurar la tarea de intervención humana.
Ejecutar el proceso y comprobar que almacena los datos esperados.
Crear un proyecto nuevo, si no está ya creado.
Bonita Studio Community trabaja con un único proyecto donde se definen todos los elementos necesarios para ejecutar un proceso: diagramas, formularios, modelos de datos de negocio, y otros que no entramos a detallar ahora.
En general, tendremos un proyecto definido y visible en el panel izquierdo de Bonita Studio. Si no lo tenemos, o si queremos crear un proyecto nuevo y limpio, podemos utilizar el menú y la opción "nuevo".
Se puede trabajar siempre con el mismo proyecto e ir añadiendo diagramas (procesos) y todo lo relacionado con ellos. En un único proyecto tendremos todo lo que vayamos desarrollando.
Otra forma de trabajar, más limpia para lo que vamos a hacer en la asignatura, es crear un nuevo proyecto por cada ejercicio o sesión. Los proyectos se pueden exportar e importar, almacenándose en los dispositivos de disco, por lo que siempre podremos recuperar trabajo anterior, o incluso mover proyectos entre diferentes máquinas.
Crear un diagrama básico a modificar posteriormente.
También se puede hacer lo mismo desde el menú de contexto que se abre con el botón derecho del ratón desde el proyecto del panel izquierdo.
Completa el diagrama inicial con el evento de finalización.
El modelo de datos de negocio (BDM, business data model) es la definición del conjunto de datos que manejarán uno o más procesos. Al final, se convertirá en una tabla de base de datos. Los "atributos" serán columnas con sus tipos de datos y restricciones. Las filas se irán insertando a medida que se ejecute el proceso tantas veces como queramos —una fila por ejecución—.
Los BDM son, por así decirlo, plantillas para definir variables, entre ellas las de negocio cuyos datos resultado de ejecutar procesos se almacenan en base de datos y son, por tanto, persistentes.
Si el proyecto es nuevo, no tendremos BDM y habrá que generarlo desde el botón "Nuevo" o pinchando con el botón derecho del ratón en el proyecto.
Los BDM se crean dentro de un paqueta java com.company.model. Para como vamos a trabajar en la asignatura, NO añadas nunca paquetes, utiliza siempre el ya definido, aunque tengas varios BDM.
Al crear el BDM se crea un objeto por defecto con un atributo. Si no existiera ese objeto, "Añadir objeto".
Cambia el nombre a "AprobacionSolicitud".
Cambia el nombre del atributo por defecto a "sugerencia".
Elige el tipo de datos TEXT.
Marca requerido —este atributo es imprescindible que tenga valor desde el inicio del proceso—.
Añade atributo.
Repite los pasos 3, 4, 5 y 6 hasta agregar dos atributos más:
"email" STRING requerido
"aceptada" BOOLEAN (no requerido)
Una vez definido el BDM, es necesario guardarlo y desplegarlo en el servidor para que los procesos puedan utilizarlo.
Una vez definido el BDM, debemos desplegarlo para hacerlo disponible para el proceso. Tenemos dos opciones: "desplegar", la acción habitual; "despliegue limpio", para cuando queremos eliminar todo dato anterior, limpiar la base de datos y generar o regenerar los modelos de datos presentes.
Ten en cuenta que el despligue limpio elimina todo, lo que significa la desaparición de los datos de anteriores ejecuciones. Para este ejemplo nos da igual una u otra opción, se supone que no tenemos nada previamente almacenado que nos importe.Al terminar el despliegue nos avisará de ello. Confirmamos.
El BDM siempre puede editarse, solo tienes que pinchar dos veces en bom.xml en el panel izquierdo, o "abrir" en el menú contextual. Podrás cambiar, añadir o eliminar lo que desees.
Pero, recuerda, siempre que cambies el BDM debes desplegarlo de nuevo antes de continuar modelando el diagrama.
Haz click en el espacio en blanco fuera del pool —la caja del proceso— para que el panel inferior permita acceder a la edición.
Pincha en el botón "editar..." de la pestaña general del panel inferior.
Cambia el nombre del diagrama a Mi Primer Diagrama, y el del pool a Buzón de sugerencias
La variable de negocio maneja los datos del proceso y permite guardarlos en base de datos al finalizar el proceso.
Haz click en el nombre del proceso para que el panel inferior nos de acceso a la pestaña "Datos".
Agrega variable de negocio laAprobacion. La variable de negocio tendrá un "objeto de negocio"un tipo, precisamente el BDM que hemos definido anteriormente.
Al final debes ver:
Dentro de los tipos de variable que podemos manejar, las de negocio son aquellas que nos interesa almacenar y que constituyen el resultado persistente de la ejecución. Por ejemplo, los datos de quién solicita qué, y la aprobación o denegación de dicha solicitud.
Una variable de negocio es accesible durante todo el proceso, y genera una entrada de base de datos con los valores finales que se almacenen en ella.
Cambia las etiquetas de los eventos y la tarea
Selecciona cada símbolo para acceder a su configuración "general" y su "nombre":
sugerencia recibida (evento de inicio)
valorar sugerencia (tarea)
sugerencia valorada (evento de fin de proceso)
La idea del proceso es que un usuario cualquier hace una sugerencia, y alguien del personal de la empresa la examina y la acepta o no.
El usuario hace la sugerencia y el proceso se inicia.
El responsable del departamento examina la sugerencia, y marca o no "aceptada".
Para trabajar con esos formularios y que los datos introducidos en ellos se almacenen correctamente en la variable de negocio el elemento central que hemos de definir es el contrato, de instanciación o de tarea. Del resto de definiciones necesarias se encarga Bonita automáticamente a partir de esos contratos que le hemos proporcionado.
La instanciación es el inicio del proceso, se crean las variables y comienza el flujo de secuencia diseñado. En nuestro caso, la instanciación parte de un formulario inicial y despúes del pulsar el botón "enviar". Dicho de otro modo, los datos iniciales van a ser "sugerencia" y "email" proporcionados desde ese formulario inicial.
No todos los procesos han de empezar necesariamente con un formulario, se puede iniciar el proceso sin datos, y recopilarlos en los sucesivos formularios de tarea que hayamos diseñado.
Para crear formularios y que los datos introducidos en ellos se trasvasen a la variable de negocio es necesario definir un contrato, de tarea o de instanciación. De hecho, es lo único imprescindible, Bonita configura automáticamente todo lo necesario desde la definición del contrato.
La idea de este proceso es que un solicitante inicia el proceso con los datos de quién es (email), y qué sugiere (sugerencia). La instanciación de un proceso es, para nosotros ahora mismo, la generación del primer formulario que el usuario utilizará para hacer su sugerencia.
Con el pool o la senda seleccionada:
Se pueden producir diálogos adicionales antes de finalizar la configuración. Simplemente, "aceptar".
Antes de empezar, démosle un título descriptivo a la tarea. Esto se puede hacer en cualquier momento. Con la tarea seleccionada, edita el nombre de la tarea y usa valorar sugerencia.
A continuación, solo hemos de pulsar "siguiente", todo lo demás y lo ha configurado Bonita.
Vamos con el contrato propiamente dicho.
Alguien ha hecho una sugerencia en la instanciación del proceso para que, ahora, el encargado de procesarlas, no sabemos quién, las valore. El cometido de la tarea "valorar sugerencia" es ese, decidir si se acepta o no. Démonos cuenta de que el único atributo que requiere una entrada aquí, un valor nuevo, es laAprobacion.aceptada.
No elegimos ni sugerencia ni email, ya los hemos utilizado en el formulario anterior, el de instanciación. Si los marcáramos, reemplazaríamos los valores introducidos en el formulario de instanciación por otros nuevos.
Normalmente ya vendrá seleccionado por defecto, pero es aconsejable tener marcada la opción "generación automática de las operaciones de almacenamiento". Esto hace que los datos que introduzcamos en el formulario se almacenen en la variable de negocio.
Pulsando "ejecutar" el proceso se despliega en el servidor y se inicia.
Se abrirá una página en el navegador con el primer formulario. Rellénalo y pulsa "inicio".
Estamos en un entorno de procesos, las tareas han de "tomarse", aceptar que las vamos a ejecutar nosotros.
A la izquierda se ve la lista de tareas que tenemos pendientes —ahora solo una—.
La forma más directa de "tomar" la tarea es posicionar el cursor del ratón encima del formulario y pulsar el botón que nos aparece.
Tras tomar la tarea, el formulario se hace disponible. Estamos trabajando con formularios básicos. "Aceptada" es un atributo booleano y tenemos que teclear true o false en este caso.
El proceso ha terminado, no hay más tareas que ejecutar. Ahora toca comprobar que esos valores que hemos introducido en los formularios se han almacenado. Accede a los "casos archivados", esto es, resultados de procesos correctamente ejecutados. Nosotros buscamos el último caso de "buzón de sugerencias", y sus resultados se podrán ver si se pulsa en el icono de "ver detalles".
A continuación, pulsamos en "formulario resumen".
Y, efectivamente, vemos los datos que esperábamos, los que se han guardado en la base de datos —en el BDM, modelo de datos de negocio—.
La página resumen, además, nos muestra la cronología de tareas ejecutadas y el usuario iniciador. Este último, en nuestro caso, es un usuario del sistema, Walter Bates, Bonita está configurado inicialmente para comportarse así.
Esos formularios básicos son muy rudimentarios y no muestran los datos como nos gustaría. La creación de formularios hará que se parezcan a los primeros que mostramos en este tutorial.
Teniendo el contrato previamente definido, el formulario lo consultará y creará los controles estándar para esos datos que hemos seleccionado. Este formulario no lo vamos a modificar, simplemente le daremos nombre y lo guardaremos. Después verás para qué sirve.
Selecciona el proceso y accede a Ejecución/Formulario de instanciación.
Esta acción abre UIDesigner en un navegador con una plantilla básica de formulario.
No modifiques nada excepto el nombre del formulario.
Los controles que vemos son los que definimos en el contrato.
Solo cambiamos el nombre a fSugerencia y guardar.
Automáticamente, Bonita BPM se actualiza con el nombre del formulario recién guardado.
Continuamos con la creación del formulario, siguiendo la misma mecánica que antes, pero ahora seleccionando la tarea.
Antes de pasar al editor de formularios, nos informa de que aquellos elementos de la variable de negocio que no hemos seleccionado en el contrato se mostrarán como solo lectura. En la mayor parte de las ocasiones tiene sentido —se nos muestra la información generada anteriormente en el proceso—, pero nos da la opción de elegir. En nuestro caso, aceptamos.
Tampoco vamos a hacer modificaciones sobre este formulario, simplemente le cambiamos el nombre a fAceptarSugerencia.
Ahora ya tenemos los formularios con un aspecto más funcional. En particular, el segundo formulario muestra —pero no deja modificar— los datos iniciales de la sugerencia. Es coherente que el personal encargado de aceptar o no la sugerencia pueda leerla para poder valorarla. Con esta creación automática de formularios lo hemos conseguido.
Vuelve a ejecutar el proceso para comprobarlo.
Más adelante profundizaremos en todo este desarrollo.