Configuración del Subproceso transaccional

<< Clic para mostrar Tabla de Contenidos >>

Navegación:  Automatización de Procesos con poco código > Studio Cloud -ambiente de autoría > Bizagi Studio > Asistente de Procesos > Modelar Procesos > Modelado para ejecución > Subprocesos > Subprocesos Embebidos > Entendiendo Subprocesos transaccionales >

Configuración del Subproceso transaccional

Introducción

Para configurar un Subproceso transaccional vamos a utilizar el siguiente diagrama: Solicitud de Viajes.

 

ConfigurindTransactional8

 

El proceso de Solicitud de Viajes incluye todas las actividades necesarias para recibir y manejar las solicitudes de viajes realizadas por un empleado de la compañía. Necesitamos transformar la tarea Reservar en un Subproceso Transaccional para poder tener en cuenta situaciones que necesitan tratamiento especial.

 

Configuración de Subproceso Transaccional

Para configurar un Subproceso transaccional realice los siguientes pasos:

1.Vaya al paso Modelar Proceso del Asistente de proceso y dé clic en Editar Proceso.

 

Editaprocess1

 

2.Haga clic derecho en la tarea que desea convertir a un Subproceso transaccional, en este caso la tarea Reservar, y seleccione la opción Transformar en Subproceso.

 

ConfigurindTransactional9

 

3. El asistente de la configuración del Subprocesos aparecerá en una nueva ventana mostrando los tipos de Subproceso. Seleccione la opción Embebido. Luego, en la ventana de propiedades seleccione la casilla de verificación Transaccional.

 

ConfigurindTransactional23

 

4. La ventana de Propiedades se desplegará mostrando los siguientes controles:

 

ConfigurindTransactional24

 

Controles

Descripción

Casilla de verificación Transaccional.

Configura el Subproceso como Transaccional.

Lista desplegable de Procesos

Muestra la lista de procesos existentes y define el proceso seleccionado como Subproceso.

Botón de adición

Permite al usuario crear un nuevo proceso.

Lista desplegable de versión de proceso

Muestra las versiones del proceso seleccionado en la lista desplegable de procesos. Si se crea un nuevo proceso, la versión será 1.0.

Diagrama

Muestra una vista previa del proceso seleccionado. Si se selecciona un nuevo proceso, la caja del diagrama estará vacía.

Barra de estado

Muestra el estado de la configuración del Subproceso horizontalmente.

 

Para definir el Subproceso, puede seleccionar un Proceso existente o crear uno nuevo desde la ventana de Propiedades:

 

Proceso existente

Para establecer un proceso existente:

 

Habilte la casilla de verificación Transaccional y luego haga clic en la lista desplegable de procesos y seleccione el proceso que desea definir como Subproceso. Seleccione la versión. Haga clic en el botón Finalizar.

 

configureEmbededSubprocess14

 

Proceso Nuevo

Para crear un nuevo Proceso:

 

1.Marque la casilla de verificación Transaccional y haga clic en el botón de adición en la ventana de Propiedades.

 

configureEmbededSubprocess12

 

2.Escriba el nombre deseado y haga clic en el botón Crear.

 

configureEmbededSubprocess13

 

3.Seleccione el proceso de la lista desplegable de procesos y haga clic en Finalizar.

 

configureEmbededSubprocess15

 

4.Una vez el Subproceso ha sido creado, usted puede empezar a editarlo.

Haga clic derecho en el Subproceso recién creado (Reservar) y seleccione la opción Editar Subproceso.

 

ConfigurindTransactional11

 

5.La ventana muestra el diagrama del Subproceso.

Cuando usted crea un subproceso por primera vez, aparece un diagrama en blanco con un contenedor que incluye una fase. Usted puede modelar el proceso basado en el siguiente diagrama.

 

En el Subproceso Reservar, el Departamento Administrativo maneja las solicitudes de reservas de carro, hotel y vuelos realizadas por el empleado. Cuando las reservas se realizan, el Subproceso termina. El flujo del proceso se muestra en el siguiente diagrama.

 

ConfigurindTransactional12

 

En este escenario, muchas situaciones pueden suceder mientras se desarrolla el proceso.

 

Por ejemplo, el Departamento Administrativo puede confirmar de forma satisfactoria la reserva del carro y del hotel. Sin embargo cuando se va a realizar la reserva del vuelo, no hay asientos disponibles en ninguna aerolínea en la fecha solicitada. Ya que las reservas del carro y del hotel fueron realizadas en las fechas dadas se necesita realizar la cancelación y notificar al empleado sobre ella.

 

Este escenario puede ser modelado de la siguiente forma:  

 

ConfigurindTransactional13

 

Un Evento de Compensación es adjunto a los límites de cada actividad de reserva. Este evento es utilizado para activar el flujo de cancelación una vez se ha lanzado. En este caso, el flujo de cancelación representa las actividades que deben ser realizadas de forma manual para resolver la situación inesperada.

 

En el anterior escenario, el Evento de Compensación adjunto a la actividad Reservar carro y Reservar Hotel es activado. Por lo que las actividades de compensación de Cancelar Carro y Cancelar Hotel serán ejecutadas, permitiendo al Departamento Administrativo manejar la compensación en cada una de las actividades.

 

Para asociar un Evento de Compensación, dé clic derecho en la actividad a compensar y seleccione la opción Adjuntar Evento. Seleccione el evento de compensación.

 

ConfigurindTransactional14

 

La Tarea de Compensación es creada automáticamente. Realice la misma operación para las otras dos Actividades.

 

ConfigurindTransactional15

 

Para levantar la cancelación debemos usar una expresión cuando se termine la actividad y desviar el camino normal hacia el de cancelación (como se muestra a continuación). Esta función agregará un log de cancelación que se puede acceder dessde la Management Console. La expresión debe ser creada en el cuarto paso del Asistente de procesos.

 

ConfigurindTransactional21

 

if(<TransactionProcess.HotelUnavailable>==true)

{

 CHelper.RaiseCancelIntermediateEvent("Cancel");

}

 

La expresión necesita la siguiente función:

CHelper.RaiseCancelIntermediateEvent("String mensaje")

 

Donde la cadena mensaje es una etiqueta para identificar la cancelación en el archivo log.

 

Ahora necesitamos modelar el flujo de cancelación del Proceso padre.

 

Si las actividades son compensadas, el token del caso no continúa a través del flujo de proceso. Como resultado y el empleado no será notificado sobre las reservas exitosas ya que fueron canceladas. Teniendo en cuenta lo sucedido necesitamos crear un Evento de Cancelación para el Subproceso transaccional.  

 

En el Proceso padre, dé clic derecho en Subproceso Reservar, selecciones la opción Ajuntar Evento y seleccione el Evento de Cancelación.

 

ConfigurindTransactional16

 

El flujo de cancelación enviará una notificación al empleado para informarle que las reservas no pudieron ser realizadas. Por esta razón, hemos agregado una tarea de Script al flujo.

 

ConfigurindTransactional17

 

Un evento de Finalización es utilizado para terminar el Proceso.

 

El diagrama todavía necesita manejar errores inesperados. Un error es lanzado cuando algo inesperado ocurre y no existe un procedimiento para manejar el error.

 

Vamos ha convertir la actividad Reservar Vuelo en una tarea automática y adicionar una interfaz. Si durante la ejecución de la tarea automática Reservar Vuelo se presenta un error (error de conexión, etc.), el Subproceso terminará y lanzará el flujo de excepción en el Proceso principal.

 

ConfigurindTransactional18

 

Para generar el error, necesitamos usar una expresión una vez que la actividad haya finalizado (al salir) y desviar la ruta normal hacia la ruta de error (que se muestra a continuación). Esta función agregará un archivo de registro de errores que se pude acceder desde la Management Console. La expresión debe crearse en el cuarto paso del asistente de proceso.

 

ConfigurindTransactional22

 

if(<TransactionProcess.Flight.RandomBoo>!= true)

{

 CHelper.RaiseErrorIntermediateEvent("Error");

}

 

La expresión necesita la siguiente función:

CHelper.RaiseErrorIntermediateEvent("String message")

 

Donde el mensaje de cadena es una etiqueta para identificar el error en el archivo de registro.

 

Finalmente, incluimos el flujo de excepción en el Proceso padre para atender el posible error inesperado en el Subproceso.

 

Para capturar el error, se debe adjuntar un Evento de error a los límites del Subproceso Reservas (Bookings). Haga clic en el Subproceso Reservas (Bookings), seleccione la opción Adjuntar evento y luego elija Error.

 

ConfigurindTransactional19

 

El flujo de excepción notificará a la persona asignada, en el Departamento Administrativo, el error.

 

ConfigurindTransactional20


Last Updated 12/10/2024 12:51:12 PM