Desarrollo desde cero un programa tipo Hola Mundo en BPMS con BonitaSoft, tendrás la posibilidad de sistematizar un proceso de compras sencillo y con este conocimiento incursionar en casos más complejos que requieran sistemas para soportar procesos.

El proceso que se diseñara en este tutorial será un proceso de compras con una decisión y sistematizado en BonitaSoft.

Si quieres aprender a programar en java sigue este link.

Si quieres aprender a programar frontend en VUE sigue este link.

1. Entorno BonitaSoft

BonitaSoft es un software categoría BPMS que nos permitirá no solo diagramar nuestro proceso usando la notación BPMN sino también ejecutar nuestro proceso en un entorno web basado en una bandeja de tareas, así mismo la data estará disponible en bases de datos estructuradas a fin de permitir la consulta y la analítica posterior.

Si quieres descargar bonitasoft gratuitamente sigue este link.

La siguiente imagen muestra el entorno de BonitaSoft el cual al ser un software libre esta basado en el popular entorno de desarrollo Eclipse.

Entorno de BonitaSoft
Figura 1. Entorno de BonitaSoft

2. Diagrama de proceso y configuración básica

El primer paso en la sistematización del proceso es crear un proyecto en BPMS que contendrá todas las configuraciones y parametrizaciones de nuestro proceso. Para ello debes seleccionar del menú de bonita la opción nuevo proyecto.

Nuevo proyecto BPMS
Figura 2. Nuevo proyecto BPMS

Posterior a ello, debemos crear nuestro diagrama de proceso, basta seleccionar un nuevo diagrama le puedes dar nombre en este momento o posteriormente renómbralo, tal como se muestra en la siguiente figura.

Nuevo diagrama de proceso
Figura 3. Nuevo diagrama de proceso

Para completar esta etapa se debe diagramar el proceso de compras como según la lógica mostrada a continuación. En este punto es importante anotar que las tareas del diagrama son humanas, es decir tendrán una interface gráfica a través de la cual el usuario interactúa. Puede ser necesario que en las propiedades de la tarea selecciones humana, pues a menudo BonitaSoft utiliza tareas automáticas por defecto.

Proceso de compras
Figura 4. Proceso de compras

3. Configuraciones de actores

El paso siguiente consiste en configurar los actores. Los actores permiten definir las personas o usuarios a quienes se les asignar las tareas. Lo primero es sobre el pool definir los actores que van a en nuestro proceso, BonitaSoft podría inferir esto a partir de los swimlane pero aquí es un paso obligatorio, además se debe indicar el actor que podrá iniciar el proceso en este caso es el solicitante.

Actores sobre el pool
Figura 5. Actores sobre el pool

Posteriormente y por cada Lane debe definirse el actor que será responsable, en este caso como tenemos un actor por cada Lane, debemos mapear los actores del pool al Lane según corresponda.

Definir actores sobre los Lane
Figura 6. Definir actores sobre los Lane

Los actores también deben verificarse en las tareas, en este caso basta con verificar en cada tarea que el actor definido sea el mismo del lane.

Verificar actores en tareas
Figura 7. Verificar actores en tareas

Finalmente, para completar el paso de los actores, resta configurar en uno de los ambientes que BonitaSoft preconfiguro la asociación de roles con personas. Esta asignación se realizará en el ambiente local y se utilizara nombres específicos de usuarios, sin embargo note que se pueden mapear grupos o membresías a los roles definidos en el pool.

Mapeo de usuarios parte 1
Figura 8. Mapeo de usuarios parte 1
Mapeo de usuarios parte 2
Figura 9. Mapeo de usuarios parte 2

Los usuarios pueden ser configurados desde la pestaña organizaciones, por defecto BonitaSoft crea una organización denominada ACME y varios usuarios con datos ficticios para usar.

Configuración por defecto de la organización ACME
Figura 10. Configuración por defecto de la organización ACME

4. Modelo de datos

El modelo de datos nos permitirá crear aplicaciones que capturan datos y se almacenan de forma estructurada en bases de datos, para este caso el modelo de datos será muy sencillo y permitirá también definir las interfaces gráficas de usuario.

Definiendo el modelo de datos
Figura 11. Definiendo el modelo de datos

El modelo de datos son solamente variables asociadas con tipos de datos, asegurate de crear los siguiente datos que se usaran en la sistematización.

Modelo de datos del proceso de compras
Figura 12. Modelo de datos del proceso de compras

Finalmente, se debe desplegar este modelo de datos para poder usarlo, las siguientes imágenes muestran en orden la validación y confirmación de la validación y el despliegue y confirmación del despliegue del modelo de datos.

Validación y despliegue del modelo de datos
Figura 13. Validación y despliegue del modelo de datos

Ya que tenemos un modelo de datos válido, podemos usarlo, y para ello debemos agregarlo al pool dando un nombre.

Agregado del modelo de datos al pool
Figura 14. Agregado del modelo de datos al pool

El siguiente uso que le daremos al modelo de datos será agregarlo a las diferentes tareas, en este punto seleccionamos el modelo de datos y elegimos las variables del modelo que queremos usar en cada tareas. Note que esto se debe repetir por cada tarea y que estas opciones aparecen en la pestaña contrato opción añadir de cada tarea, así mismo que durante este proceso algunos mensajes de confirmación aparecerán.

Selección del modelo de datos en una tarea
Figura 15. Selección del modelo de datos en una tarea
Selección de variables del modelo de datos para una tarea
Figura 16. Selección de variables del modelo de datos para una tarea

5. Configuración de decisiones

Las decisiones o compuertas se configuran según la norma BPMN en este caso de este tutorial utilizaremos una compuerta exclusiva y el flujo de secuencia “no” lo marcaremos por defecto, como se muestra en la siguiente imagen.

Configuración de la compuerta y de la decisión no
Figura 17. Configuración de la compuerta y de la decisión no

En cuanto al flujo de secuencia “si” se procederá a configurar una condición de tipo script y asociar a esta la variable del modelo de datos booleana que permite tomar la decisión.

Configuración de la decisión si
Figura 18. Configuración de la decisión si
Resultado de la configuración si
Figura 19. Resultado de la configuración si

5. Formularios de datos

Para la configuración de los formularios de las tareas podemos encontrarnos ante una gran complejidad, pero el asociar el modelo de datos y las variables a cada tarea simplifica el proceso. A continuación crearemos los formularios simplemente en la opción contratos seleccionando editar formulario, lo cual abrirá un editor de formularios que permite diseñar interfaces gráficas complejas que oculten campos, los agrupen o realicen lógicas programadas en javascript. Note que este editor de formularios esta en la web y que este es un paso que debemos repetir por cada tarea del modelo.

Creación de formularios para las tareas
Figura 20. Creación de formularios para las tareas
Editor de formularios de BonitaSoft
Figura 21. Editor de formularios de BonitaSoft

6. Ejecución del proceso

Para ejecutar el proceso debemos validarlo primero a fin de determinar que no se tengan errores.

Figura 22. Validación del diagrama

Una vez validado y sin errores se puede proceder a ejecutar en uno de los ambientes, recordemos que en este caso configuramos nuestro proceso de negocio en ambiente local y que estas opciones están disponibles estando seleccionado el pool del proceso a ejecutar.

Figura 23. Ejecución del proceso de negocio

En este punto debemos iniciar sesión con el usuario solicitante, aquí se anota que BonitaSoft inicia sesión automáticamente con Walter Bates, así que debemos cerrar sesión y abrirla con Daniela Angelo, así mismo todos los usuarios tienen el mismo password bpm, esto se puede cambiar en las configuraciones de los usuarios bajo el modulo de Organización.

Para iniciar un primer proceso debemos dar clic en el boton start en procesos.

Figura 24. Botón de inicio de proceso

Las tareas deben ser tomadas para su ejecución y ya en el menu principal de BonitaSoft web vamos a poder ver las diferentes tareas a medida que los procesos se van ejecutando.

Toma y ejecución de tareas
Figura 25. Toma y ejecución de tareas

El paso final en este tutorial sería ejecutar el proceso realizando un juego de roles es decir, iniciando sesión con cada usuario asignado al proceso y verificando que lleguen las tareas y especialmente que la decisión se tome correctamente.

7. Artículos de Interés