<%@ Page Language="C#"%> Temas avanzados > Transacciones de larga duración <% if(!RequestUserAgentHelper.IsGoogleBot()){ %> <%} %>

Transacciones de larga duración

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Temas avanzados >

Transacciones de larga duración

Introducción

Bizagi Modeler es una poderosa aplicación que le permite modelar desde los procesos de negocios más simples hasta los más complejos y robustos. El proceso transaccional es un proceso complejo que puede ser modelado fácilmente con el Bizagi Modeler.

 

Los procesos transaccionales son utilizados para coordinar múltiples actividades que necesitan ser realizadas de forma exitosa. Si alguna de las tareas no fueron exitosas es necesario que estas regresen a su estado inicial (estado antes de que la actividad es realizada). BPMN utiliza la siguiente figura para representar los subprocesos Transaccionales.

 

LongLasting1

 

Las transacciones de larga duración de BPMN tienen tres posibles salidas:

 

La primera salida se presenta con la ejecución de forma exitosa de todas las actividades dentro un subproceso. En este caso, el subproceso transaccional termina y el proceso padre continúa con el flujo del proceso.

 

El segundo resultado es la falla de alguna de las actividades dentro del subproceso transaccional. Si se presenta, cada una de las actividades que ya fueron completadas deben ser reversadas, ejecutando la actividad de compensación asociada a dicha tarea. Las compensaciones sólo se realizan en actividades que ya fueron terminadas.

 

La última posibilidad se da cuando se presenta un error no esperado en el subproceso. La transacción debe ser cancelada, no se realizan compensaciones y el proceso continúa por el flujo de manejo de error.

 

Para modelar un proceso transaccional es necesario adjuntar un evento de Error y un evento de Cancelación al subproceso. De tal forma que cuando ocurra cualquiera de estás dos salidas el proceso tendrá un flujo por donde continuar:

 

LongLasting6

 

Ejemplo de Transacción

El proceso de solicitud de viajes se presta para ejemplificar los subprocesos transaccionales.

Cuando se realiza una solicitud de viajes es necesario reservar un carro, un hotel y el vuelo.  Si alguna de las reservas no se puede efectuar, no es posible realizar el viaje y se debe realizar un compensación sobre aquellas reservaciones que fueron exitosas.

Las siguientes imágenes ilustran  los tres posibles resultados:

LongLasting2

LongLasting3

 

LongLasting4

El proceso completo debe lucir de esta forma  

LongLasting5

Para modelar el subproceso debe incluir las actividades que se necesiten. En este caso se van a incluir tres actividades: Reservar Carro, Reservar Hotel, Reservar Vuelo.    

LongLasting7

 

Incluya los eventos de compensación para cada actividad. De esta forma si alguna de las actividades falla, aquellas que ya fueron completadas pueden ser compensadas.

 

LongLasting8 LongLasting9

 

Ahora su proceso está completo: El proceso padre contiene el flujo de secuencia que permite tomar las acciones necesarias si el subproceso falla y el subproceso contiene las acciones necesarias para compensar aquellas reservaciones que fueron realizadas de forma correcta cuando se presente algún problema.