UPeU-J: Sistemas de Información gerencial
BPM
Introducción al diseño e implementación de un proceso con la herramienta BPMS BonitaSoft. Descripción del proceso: El proceso se encarga de permitir que un cliente de una tienda pueda acceder al sitio online de la tienda, seleccionar varios artículos los cuales deben ser aprobados por un empleado de forma manual, esto puede llevar a que el cliente compre los artículos con su tarjeta de crédito, o a que rechace la compra o a que se pida más información sobre los artículos a comprar. Si se ejecuta el pago entonces los artículos serán enviados al cliente en 3 días hábiles y la transacción será archivada, en caso de que se rechace la compra también se archiva la transacción. En cualquier caso se da por terminado el proceso. Así que crearemos un diagrama nuevo y agregaremos una actividad de inicio “Inicio1” usando la paleta de componentes a nuestra izquierda y luego dando clic encima de ella veremos que en la esquina superior derecha nos aparece u pequeño rectángulo, damos clic en él y lo sostenemos y lo arrastramos hacia la derecha de esta manera habremos creado una nueva tarea como se aprecia en la siguiente imagen. Si damos clic sobre esta nueva tarea podemos introducir información general sobre la misma. Como se puede apreciar hemos cambiado su nombre, descripción y tipo de tarea. Esta tarea recibe una solicitud de una compra la cual debe ser revisada de forma manual por un empleado de ventas.
Si volvemos a realizar el paso anterior pero esta vez resaltando la tarea recién creada podremos crear una nueva tarea, “Pagar”, donde se completa la información del pago por la compra que se está realizando.
Ing. Angel R. Condori Coaquira
- 1-
UPeU-J: Sistemas de Información gerencial
BPM
Puede darse el caso de que la información introducida de la tarjeta de crédito no sea válida o que no se desee terminar la compra así que damos la opción de otra tarea “Rechazar” la cual es creada a partir de la primera actividad.
Llegados a este punto hemos visto que de forma muy fácil podemos ir creando tareas conectadas entre sí y modificar su información general para lograr un diseño adecuado y entendible del proceso. Ahora podemos editar el pool sobre el que estamos trabajando y cambiamos su nombre y descripción. Deben ver un pool como ese rectángulo horizontal que delimita la zona donde hemos puesto las tareas hasta el momento.
Par realizar la edición solo tienen que marcar el nombre del pool y luego en General -> Pool darle al botón “Editar”. Después de terminada esta acción debemos agregar otras tareas más:
Entrega express que nos permite una vez realizada la compra entregarle sus artículos al cliente en el plazo de 3 días. Más Información para el caso en que el empleado de ventas requiera más detalles sobre la compra que se desea realizar.
Ing. Angel R. Condori Coaquira
- 2-
UPeU-J: Sistemas de Información gerencial
BPM
Archivar que nos permite guardar la transacción realizada cualquiera sea su terminación. Por eso es que tanto el pagar como el rechazar como la entrega express llevan a “Archivar”.
Llegado este punto nos damos cuenta que la tarea de “Más Información” nos permite recopilar la información pero no es devuelta al empleado que está revisando la compra, así que para ello introducimos un nuevo elemento. En este caso un XOR, que en BPMN no es otra cosa que el mecanismo que nos permite crear una compuesta con múltiples entradas que la conectan. Para seleccionar el elemento pueden ir a la paleta de componentes. La cual aparece a la izquierda en la herramienta y seleccionar el ícono correspondiente y arrastrarlo al proceso. Deben entonces eliminar la conexión de “Inicio1” con “Revisión por ventas”, agregar el componente XOR y reorganizar las conexiones tal y como se ve en la siguiente imagen. De esta manera ya el empleado de ventas se puede enterar de la nueva información.
En el estado en que quedó el proceso en la entrada anterior aun no es funcional, eso se debe a que no se han definido:
No se ha definido la forma en que se capturará y se manejará la información. Las pantallas que verán los actores y trabajadores de este proceso.
Por lo que en esta entrada nuestro objetivo será mostrar como capturar y manejar la información usando variables dentro del proceso. Para luego en la siguiente entrada ver como se manejan las condiciones y transiciones que determinan el flujo del proceso. USO DE VARIABLES Las variables se usan para:
Capturar información en los formularios de los usuarios, y pueden ser globales cuando esta información se necesita a lo largo de todo el proceso o locales cuando solo se necesitan dentro de una actividad.
Definir condiciones o transiciones entre actividades.
Para comenzar el proceso necesitamos una ventana donde se capture información del usuario:
Ing. Angel R. Condori Coaquira
- 3-
UPeU-J: Sistemas de Información gerencial
Nombre.
Número de teléfono.
Dirección de correo electrónico.
BPM
Para crear las variables que almacenen esta información debemos dar clic en el pool del proceso y luego en la pestaña General, y seleccionar Datos.
Ahí damos clic en Agregar y veremos la siguiente ventana.
Este es el mecanismo que estaremos usando siempre para crear variables.
Y lo llenamos de esta manera para la variable nombreCliente.
Ing. Angel R. Condori Coaquira
- 4-
UPeU-J: Sistemas de Información gerencial
BPM
Será lo mismo para las otras dos variables. Y terminaremos viendo lo siguiente:
Ahora bien, como no estamos obteniendo el listado de los productos que el cliente puede comprar de una fuente de datos, o sea dinámicamente, debemos crear una variable que contenga este listado de productos. Así que volvemos a crear otra variable de la siguiente manera:
Ing. Angel R. Condori Coaquira
- 5-
UPeU-J: Sistemas de Información gerencial
BPM
Cuando llegamos a definir el tipo de dato ninguno cumple con nuestras necesidades así que damos clic en Lista de opciones… y se nos muestra la siguiente ventana.
Ing. Angel R. Condori Coaquira
- 6-
UPeU-J: Sistemas de Información gerencial
BPM
Damos clic en Añadir y debemos crear nuestra lista de productos. Quedando como sigue:
Damos Aceptar. Nuestra variable quedaría de la siguiente manera:
Ing. Angel R. Condori Coaquira
- 7-
UPeU-J: Sistemas de Información gerencial
BPM
Vean que incluso definimos un valor por defecto para este escenario. Finalizamos y ya tenemos lo siguiente:
Ahora debemos añadir nuevas variables para las actividades de “Más Información” y “Pagar”. Los pasos son los mismos así que solo les dejo la información a introducir y tengan en cuenta que ahora en vez de seleccionar el pool del proceso como hicimos anteriormente, debemos seleccionar la actividad en la que queremos exista esta variable, pues será una variable local. Para “Más Información”:
Variable: comentario.
Descripción: información adicional introducida por el empleado de ventas.
Tipo de dato: Texto.
Multiplicidad: simple.
Ing. Angel R. Condori Coaquira
- 8-
UPeU-J: Sistemas de Información gerencial
BPM
Para “Pagar”: Variable 1: numeroTarjetaCredito.
Descripción: tarjeta de crédito del cliente.
Tipo de dato: Texto.
Multiplicidad: simple.
Variable 2: fechaExpiracion.
Descripción: fecha de expiración de la tarjeta de crédito del cliente.
Tipo de dato: Fecha(Date).
Multiplicidad: simple.
Variable 3: escogerEntregaExpress.
Descripción: si es true se envía express, si es false se envía de forma normal.
Tipo de dato: Booleano(boolean).
Multiplicidad: simple.
Quedaría así:
Como se ha podido apreciar toda la información que se maneje dentro del proceso debe ser recopilada en variables, y estas pueden ser tanto globales si es de interés para el proceso en general, o locales si solo interesan a una actividad en particular.
Hemos identificado una restricción en este proceso y tiene que ver con la forma en que obtenemos el listado de productos a mostrar a los clientes. De la forma actual no es eficiente y tendría más sentido que el listado se obtuviera dinámicamente de una BD o servicio web, ya que el mismo puede cambiar en dependencia de la disponibilidad de productos en los almacenes e incluso su información propia como puede ser el precio.
Ing. Angel R. Condori Coaquira
- 9-
UPeU-J: Sistemas de Información gerencial DEFINIR CONDICIONES Y TRANSICIONES
BPM
Cuando vemos la actividad de “Revisión por ventas” notamos que tiene 3 salidas, y podríamos preguntarnos como el proceso sabe qué salida tomar. Y ese es el objetivo de las condiciones, definir cuándo tomar una salida u otra. Para ello seleccionamos la actividad “Revisión por ventas” y damos clic en General y luego en Datos.
Creamos una nueva variable local, como se aprendió en la entrada anterior, con la siguiente información:
Variable: decision.
Descripción: múltiples opciones requieren una decisión.
Tipo de dato: lista de opciones (ya sabemos cómo crearla) y sus valores son: 1. Aprobar. 2. Rechazar. 3. Más información.
Y finalmente se ve así:
Ing. Angel R. Condori Coaquira
- 10-
UPeU-J: Sistemas de Información gerencial
BPM
Ahora viene la parte interesante porque debemos realizar lo siguiente: Seleccionar cada una de las transiciones, las líneas con saetas al final que van de la actividad “Revisión por ventas” hacia:
“Pagar” cuando el valor de la decisión sea “Aprobar”
“Rechazar” cuando el valor de la decisión sea “Rechazar”
“Más Información” cuando el valor de la decisión sea “Más Información”
Para hacer esto damos clic encima de una de las líneas, en este caso la que va de “Revisión por ventas” hacia “Pagar”.
Ahí debemos especificar un nombre, y el resto de los campos que se nos piden, de la siguiente manera:
Ing. Angel R. Condori Coaquira
- 11-
UPeU-J: Sistemas de Información gerencial
BPM
Se debe hacer lo mismo para las otras 2 líneas. Solo tengan en cuenta que a la hora de introducir la condición debe de poner bien el nombre de la variable “decision” y el nombre del valor que debe tomar. En nuestro caso quedó de la siguiente manera el proceso luego de hacer estos cambios:
Como pueden apreciar ya se ven las condiciones saliendo de la actividad “Revisión por ventas” y en cada condición se muestra cuál es su nombre. Ahora podemos ver que la actividad de “Pagar” tiene 2 condiciones también, una que se ejecuta cuando el cliente selecciona el envío Express y otra cuando el envío es regular, por lo que se deben realizar los mismos pasos anteriores para definir cuando el proceso se va por una y cuando se va por la otra. Recuerden que para esta actividad “Pagar” ya tenemos una variable que toma valor true, en caso de que el envío sea Express y false en caso de que el envío sea regular. Solo deben definir las condiciones. En nuestro caso queda así:
Lo interesante es que la variable que definimos en la actividad “Pagar” de nombre “escogerEntregaExpress” es de tipo boolean, o sea que tiene valores true o false, así que solo poniendo su nombre en la condición esta es evaluada usando Groovy y con eso basta. Para el caso de la entrega regular ponemos lo siguiente:
Ing. Angel R. Condori Coaquira
- 12-
UPeU-J: Sistemas de Información gerencial
BPM
Vean el signo ! antes del nombre de la variable en la condición, eso es para el caso en que su valor sea false, indicando que la entrega será regular, el resultado final sea evaluado de true y se vaya por este camino. El proceso queda de la siguiente manera:
Como ven en cada iteración se va haciendo más comprensible, incluso para el personal no técnico que es la idea que se busca, y va quedando clara cada una de las posibles alternativas que se pueden presentar durante su ejecución.
ACTORES Y EJECUTAR EL PROCESO. Los actores, son aquellas personas que interactúan con el proceso a través de las actividades humanas, introduciendo o modificando de alguna forma la información. En los BPMS los actores son seleccionados dinámicamente en base a determinados criterios. En nuestro caso introducimos la restricción de crear una lista estática de los mismos para facilitar la comprensión inicial del funcionamiento de la herramienta Bonita, ya más adelante mostraremos como eliminar esta restricción. En este proceso se requieren 2 tipos de actores:
El iniciador del proceso.
Los empleados de ventas.
Así que debemos:
Definir ambos grupos al nivel del proceso.
Ir a cada actividad que lo requiera y asignarles el grupo según se necesite.
Para realizar el primer paso damos clic en cualquier parte del pool y seleccionamos General y luego Actores. Veremos lo siguiente:
Ing. Angel R. Condori Coaquira
- 13-
UPeU-J: Sistemas de Información gerencial
BPM
Por defecto la herramienta nos ha creado un actor y lo ha definido como iniciador, informándonos de que en caso de que no se defina uno, pues el proceso solo se puede iniciar desde el código. En versiones anteriores como la 5.1 desde aquí mismo se podían crear grupos y dentro de cada grupo los actores. Ahora Bonita incluye desde hace algunas versiones el concepto de Organización entro de la cual se pueden crear los grupos, roles y usuarios de una organización. Para este ejemplo lo primero que deben hacer es ir a menú superior y dar clic en la opción Organización y luego dan clic en Administrar. Les saldrá una pestaña con una organización por defecto “Acme” pero para crear la de esta aplicación BPM pueden dar clic en “Añadir” e introducir los datos, tal y como se muestra a continuación.
Como ven solo le he puesto un nombre y una descripción, si quieren que aparezca como activa, es necesario que la publiquen en el portal, ya veremos cómo. Una vez que marquen la organización que acaban de crear podrán dar clic en el botón “Siguiente” y entonces se debe crear el grupo o los grupos que contendrá nuestra organización. A fines de este ejemplo solo he creado un grupo.
Ing. Angel R. Condori Coaquira
- 14-
UPeU-J: Sistemas de Información gerencial
BPM
Pero como pueden ver se pueden crear múltiples grupo e incluso subgrupos, eso queda a consideración de los analistas del proyecto. Luego dan clic en “Siguiente” y creamos dentro del grupo anterior los roles necesarios para nuestra aplicación. Nos quedaría algo como lo siguiente:
Damos clic en “Siguiente” y pasamos a crear los usuarios. Importante que se fijen como un usuario se vincula con un grupo y a su vez con un rol dentro de dicho grupo.
Y hasta aquí esta primera parte, dan clic en Finalizar y listo. Ing. Angel R. Condori Coaquira
- 15-
UPeU-J: Sistemas de Información gerencial
BPM
Si vuelven a dar clic en el menú “Organización” pueden seleccionar la opción “Publicar”.
Seleccionan la organización que acaban de crear y si quieren le dan clic a “Siguiente” y de esta manera definen que usuario será usado automáticamente para acceder desde el portal a esta organización. Para finalizar le dan clic al botón “Publicar”. Y ya está publicada la organización en el portal.
Llegado este momento si le dan clic al botón que dice “Ejecutar”.
Ing. Angel R. Condori Coaquira
- 16-
UPeU-J: Sistemas de Información gerencial
BPM
Lo más seguro es que les dé un error pues falta algunos pasos por configurar. Veámoslos. Deben dar clic en el botón que dice “Configurar” y entonces verán un mensaje que dice que el actor no está asignado a ningún grupo o rol, deben dar clic en “Grupos” y seleccionar el grupo correspondiente. Esto para cada usuario que no esté asociado a un grupo.
Luego deben dar clic donde dice “Autenticación” y poner el usuario y la contraseña con la que se accederá a la aplicación BPM una vez iniciada.
Ya pueden dar “Finalizar” y ejecutar el proceso.
Ing. Angel R. Condori Coaquira
- 17-
UPeU-J: Sistemas de Información gerencial
BPM
Como no nos hemos dedicado aun a las interfaces gráficas pues todo está muy verde aun, pero lo importante es que está funcional. Cuando el proceso es ejecutado veremos estas pantallas:
El primer problema que vemos es que no se listan los artículos que están disponibles. Es algo que se arreglará después. Los datos que ven lo hemos introducido para este ejemplo.
Le damos “SUBMIT”
Y se nos informa que tenemos una tarea disponible. Se nos muestra la información introducida por pepe el comprador en la página 1.
Y en la página 2:
Aparece por defecto la decisión de “Aprobar”, como ven no se nos muestran las otras opciones posibles de decisión y será otro problema a solucionar. Le damos “SUBMIT”
Ing. Angel R. Condori Coaquira
- 18-
UPeU-J: Sistemas de Información gerencial
BPM
Y se nos informa que hay otra tarea disponible, le damos “Pagar”. Se nos vuelve a mostrar la información de la venta en la página 1.
Y en la página 2 podemos decidir si el envío es express, poner la fecha de vencimiento y el número de la tarjeta con que se pagará.
Llegado este punto pueden darle al botón “SUBMIT” pero si quieren pueden darle al botón que tienen en la esquina superior derecha y que los lleva al portal de bonita, donde podrán navegar por los diferentes elementos y ver las tareas ya hechas, los comentarios, las tareas asignadas y pendientes, etc.
Ing. Angel R. Condori Coaquira
- 19-
UPeU-J: Sistemas de Información gerencial
BPM
Al darle a “DO IT” se nos muestra la misma interface anterior y le podemos dar a “SUBMIT”
Terminando así la ejecución de este proceso.
Ing. Angel R. Condori Coaquira
- 20-