martes, 21 de enero de 2014



En la entrada anterior  habíamos visto como iniciar el trabajo con la herramienta BPMS Bonita y como se podía modelar un proceso básico usando sus distintos elementos quedando como en la imagen que da inicio a esta entrada.
Para recordar el proceso aquí se les deja nuevamente su descripción.

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.

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.

Empecemos.!!!

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:
  • Nombre.
  • Número de teléfono.
  • Dirección de correo electrónico.

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.



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:



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.



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:



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.


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.

Ya esto será objeto de otra entrada más adelante cuando tengamos una primera versión de este proceso funcional y probado.

0 comentarios:

Publicar un comentario