jueves, 29 de marzo de 2012

BPMN 2.0 Utilización de Eventos de Error

BPMN 2.0 Utilización de Eventos de Error


 En este post, podemos descubrir las técnicas que podemos aplicar para gestionar errores en los procesos que modelemos en BPMN 2.0.

En el ejemplo, se modela un proceso en donde un paciente se dirige a un Centro Asistencial para realizar un examen de sangre (análisis de muestra de sangre). En el proceso existe un analista que procede a extraer la sangre del paciente mediante una maquina que realiza el análisis de los componentes de la sangre en tiempo real. Durante este proceso no es común que la maquina presente problemas, sin embargo aveces ocurre. En la notacion BPMN podemos utilizar un evento intermedio de error para capturar errores. Otro error que no ocurre con frecuencia es que la maquina no pueda finalizar el examen de sangre.

En BPMN, podemos utilizar eventos de error intermedios para capturar los errores y posteriormente lanzarlos a los triggers que se encuentran en los limites del  subproceso expandido.

Como podemos observar en el proceso puede generarse dos errores, el primero una averia de la maquina que extrae la sangre del paciente y el análisis de la sangre no pudo ser finalizado. En el ejemplo estas dos excepciones son modeladas sobre un subproceso expandido. El subproceso puede lanzar dos errores. Estas errores pueden ser capturados luego en dos eventos de error intermedios ("Trigers") asociados al subproceso. En el diagrama podemos ver la utilización de eventos intermedios y de finalizacion de errores.

Por ultimo, cuando los eventos son capturados, se procede a solicitar la reparación del equipo o a resolver las inconsistencias en el análisis de la muestra de sangre. En el diagrama no incluyo participantes para simplificar su representación.

BPMN 2.0 Utilización de Eventos de Error
BPMN 2.0 Utilización de Eventos de Error

domingo, 4 de marzo de 2012

Utilización de Tareas En Serie en BPMN 2.0

BPMN 2.0 Tareas Secuenciales

Cuando modelamos procesos existen escenarios donde se requiere la creación de varias instancias de una actividad, la cual puede ser ejecutada en paralelo o en serie (una detrás de otra); por ejemplo la compra de varios artículos en un mercado, donde el operador registra cada articulo en la caja. Generalmente cuando tenemos un conjunto de actividades en bucle (loop) que requieren ser repetidas utilizamos una condición que se comprueba antes o después de cada iteración. BPMN 2.0, introdujo las tareas en serie o en paralelo, las cuales simplifican el modelado de este tipo de escenarios.

Como funcionan las actividades en Serie
Dentro de cada instancia de proceso, varias instancias de una actividad pueden ser creadas. El número necesario de instancias puede depender de una serie de factores como el tiempo de ejecución, su estado, la disponibilidad de recursos y la comunicación entre procesos. El numero de instancias se conoce antes que las instancias de la actividad sean creadas Una vez iniciada, las instancias son independientes una de la otra. Es necesario sincronizar las instancias al finalizar, antes que una actividad posterior se deba activar.

Ejemplo
En este proceso, tenemos dos participantes: operador1 y operador2. Cada uno realiza actividades similares, solo con la diferencia que el operador1 realiza un conjunto de actividades de forma secuencial utilizando la nueva notación para tareas secuenciales y el operador2 con el modelo tradicional con gateways. Ambos modelos son similares. El operador1 entrega los items de compra al operador2, este los recibe y los procesa, registrando informacion adicional en cada item; posteriormente el operador2 procesa cada item. Este ultimo es representado con el modelo tradicional (en rojo) utilizando bucles mediante gateways. Las notaciones gris y rojas son similares.

Con esta nueva representación se simplifica el comportamiento de bucle que se muestra en el diagrama con color rojo.
Saludos;