martes, 24 de abril de 2012

BPMS: Del diseño (BPMN) a la ejecución (BPEL)

Saludos lector! En esta ocasión continuaremos modelando otro tipo de ejercicios en Intalio antes de pasar a la creación de formularios.

Hasta ahora hemos visto que para modelar necesitamos.
-Analizar el problema. Ver cuáles son los participantes involucrados en el proceso de negocio y luego plantear un flujo de trabajo analizando cuáles elementos del modelado BPMN funcionan mejor para nuestros propósitos.
-Modelar cada participante visualizando qué acciones debe realizar y no asignarle más de las que les corresponden.

En esta ocasión,  te propongo ejercicios con un poco más de interacción y por tanto un poco más difíciles de modelar. No te asustes! con paciencia todo se logra. Manos a la obra entonces....

El primer proceso a modelar es el de lámina 5 de la siguiente presentación.
Podrás encontrar la solución en la misma presentación.
http://www.slideshare.net/wilfredorangel/procesos-ejecutablesparte-i

Te planteo el siguiente análisis:
Los participantes: Tenemos un empleado que es quien envía la información para ser procesada, y tenemos un gerente que es quién procesa la información y se encarga de aprobarla o no. Es todo? No, estamos olvidando un participante importante, fíjate que en el enunciado te dicen que "algo" recibe la solicitud del empleado y se la envía al gerente, y es ese mismo "algo" quien luego comprueba si fue aceptada o rechazada para informarle al empleado lo que debe hacer, y si se da el caso, también al gerente. Ese "algo" es un participante más, y es el más importante,  porque es nuestro sistema. Yo lo llamaré "Revisión" también puede llamarse Proceso de Revisión, Revisión de Información, etc, lo dejo a tu criterio :)
Piensa tú cuáles carriles deben ser ejecutables y cuales no.

El flujo:  Bueno inicialmente, el empleado debe enviar la información, allí se puede colocar una actividad de inicio, o puedes colocar un evento de inicio seguido de una actividad llamada "envío de información" esto tratando de que sea lo más sencillo de entender posible. Ese envío lo recibe nuestro participante "Revisión" quién se lo debe enviar al participante gerente. El gerente debe recibir la información, procesarla y enviar una respuesta. El gerente podría terminar luego de esta acción, pero ojo, el enunciado dice, que si es rechazada, el gerente debe esperar una confirmación de que la información fue corregida por el empleado, Te sugiero entonces que el siguiente paso en tu proceso gerente, sea una compuerta exclusiva, donde puedas controlar el recibir o no el mensaje, luego de eso, puedes terminar el proceso (No olvides sincronizar las compuertas, es decir, toda compuerta que abras la debes cerrar con su homóloga). Volviendo al lado del proceso "Revisión" este debe recibir la respuesta del gerente y tomar una decisión, si resulta ser aprobada envía un mensaje al empleado y finaliza, sino debe decirle al empleado que corrija, luego recibir la corrección y enviar una notificación al gerente. Por último está el empleado, quién luego de enviar. no sabe que respuesta recibirá por parte del gerente, así que puedes usar una compuerta de carrera para simular esta acción.

Ahora a modelar!

Antes de ver la solución, intenta hacer el ejercicio, recuerda que nadie hace músculos viendo a los demás haciendo ejercicio...

Aquí te dejo:
Mi propuesta de solución.


El segundo proceso a modelar lo puedes conseguir en la lámina 92 de la siguiente presentación:
También podrás encontrar la solución dentro de la misma presentación.
http://www.slideshare.net/wilfredorangel/introduccin-a-bpmn-12335494

Te planteo el siguiente análisis:
Este es mucho más complejo, e incluye el uso de elementos de modelado que hasta el momento no habíamos usado.
Los participantes: Primero tratemos de identificar el proceso. Puesto que es un sistema que busca aprobación de fondos, éste será nuestro participante principal. Además tenemos el proceso empleado que es quien hace la solicitud de aprobación de fondos, y un gerente que debe aprobar o rechazar. Por otro lado, se nos menciona un jefe de área (puedes llamar a este participante departamento contable o contabilidad, si deseas abreviar) y un departamento de finanzas. Serían entonces, 5 participantes (wow).

flujo de eventos: El evento de inicio es la solicitud que recibe el sistema del empleado, seguidamente el sistema envía la solicitud al gerente quien decide si aprueba o rechaza. Esta respuesta es recibida por el sistema (proceso principal) quien debe ver si fue aprobada o rechazada. Si fue rechazada, debe solicitar de nuevo la información  al cliente, para simular esto, el sistema puede tener subproceso cíclico que se ejecute hasta que la solicitud del empleado sea aprobada. Por otro lado, si es aprobada, debemos solicitar información contable al jefe del área o departamento contable y una revisión al departamento de finanzas. Con la respuesta del departamento de finanzas debemos decidir si volvemos a solicitar la información al empleado, volvemos a solicitar información contable o si completamos el proceso, esta actividad también es un subproceso cíclico. Este ejercicio en particular me resultó difícil modelarlo pero no te rindas! si se puede! recuerda que no hay soluciones únicas, puede que tu lo veas de otra forma mucho más sencilla, realmente no podremos saber si nuestros modelos funcionan o no hasta completar el proceso y hacerlo ejecutable.


Mi propuesta de solución.

En una próxima ocasión veremos como hacer ejecutables todos nuestros modelos para saber si cumplen o no con las características que deseamos automatizar del proceso. Lo lograremos mediante el uso de BPEL, un lenguaje interpretable por servidores para permitir la ejecución de nuestro modelo.

Por el momento es todo, hasta una próxima! que estés bien :)



No hay comentarios:

Publicar un comentario