CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Bizagi Process Modeler Copyright ©2011 - bizagi CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Contenido 1. INTRODUCCIÓN A LAS TRANSACCIONES ........................................................................................... 3 2. DIAGRAMA DEL PROCESO ......................................................................................................................... 4 SUB PROCESO TRANSACCIONAL RESERVA .................................................................................... 5 SUB PROCESO REPORTE DE GASTOS ................................................................................................ 8 3. MODELO DE DATOS ...................................................................................................................................... 9 4. CONSTRUCCIÓN DE FORMAS ................................................................................................................ 10 FORMA DE REGISTRAR SOLICITUD DE VIAJES ....................................................................... 10 FORMA RESERVAR HOTEL Y RESERVAR CARRO ................................................................... 11 FORMA CANCELAR HOTEL, CANCELAR CARRO Y CANCELAR VUELO ......................... 12 FORMA RESERVAR VUELO ............................................................................................................. 13 5. REGLAS DE NEGOCIO ................................................................................................................................. 14 DEFINIR EXPRESIONES ........................................................................................................................... 14 ACCIONES DE LA ACTIVIDAD .............................................................................................................. 15 6. PARTICIPANTES ............................................................................................................................................. 17 7. CONFIGURACIÓN DE CORREOS ELECTRONICOS ........................................................................... 19 www.bizagi.com Confidential 2 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 1. INTRODUCCIÓN Bizagi es una solución BPM (Business Process Management) muy poderosa y al mismo tiempo muy sencilla de usar. Con Bizagi se puede automatizar cualquier clase de proceso, desde los más sencillos hasta los más complejos. El presente documento describe cómo con Bizagi se ha construido un proceso de alta complejidad manejando transacciones, el cual se presenta con un ejemplo fácil de comprender y muy fácil de desarrollar. Los procesos transaccionales son utilizados para coordinar múltiples actividades que necesitan ser realizadas de forma exitosa para que el flujo del proceso pueda continuar. Si las tareas no son exitosas y fueron terminadas, es necesario regresarlas a su estado inicial. Las actividades dentro del sub-proceso transaccional pueden ser manuales o automáticas donde se necesite conexión con sistemas externos. De esta manera, en los procesos transaccionales se pueden tener tres escenarios. 1. La ejecución de forma exitosa de todas las actividades dentro un sub-proceso. En este caso, el subproceso transaccional termina y el proceso padre continúa con el flujo del proceso. 2. El segundo resultado es la falla de alguna de las actividades dentro del sub-proceso 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. 3. Adicionalmente las transacciones incluyen un tercer escenario. 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. Un proceso de solicitud de viajes se presta para ejemplificar un sub-proceso transaccional. En una solicitud de viajes se deben realizar reservas, si todas las reservas no son exitosas, no es posible realizar el viaje. Por otro lado si solo algunas de ellas son exitosas es necesario realizar una compensación, para cancelar las reservas que si fueron exitosas. Para los casos en los que las actividades dentro del proceso transaccional sean automáticas, se contempla la posibilidad de recibir errores no controlados, los cuales necesitan la toma de algunas correcciones especiales. www.bizagi.com Confidential 3 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 2. DIAGRAMA DEL PROCESO El proceso de solicitud de viajes empieza cuando un empleado registra una solicitud de viaje, en ella el empleado indica si es necesario realizar reservas de hotel, vuelos y/o la renta de un automóvil. El jefe del empleado puede aprobar, rechazar o pedir cambios en la solicitud. Si el viaje es aprobado, el Asistente de viajes debe realizar las reservas de los ítems especificados a través del sub-proceso transaccional Reserva. Para que la solicitud del viaje pueda continuar, es necesario que todas las reservas sean exitosas. Si se solicitó anticipo se continúa con esta actividad. Finalmente al regreso del viaje el empleado debe realizar un reporte de todos sus gastos durante el viaje. www.bizagi.com Confidential 4 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL SUB PROCESO TRANSACCIONAL RESERVA El subproceso de Reserva fue modelado como un subproceso transaccional ya que este tipo de subprocesos soporta un protocolo especial que asegura que todas las partes involucradas tengan acuerdo completo: el sub-proceso como un todo se comporta como una sola actividad la cual debería ser completada o cancelada. Una transacción o subproceso transaccional es realizado satisfactoriamente cuando las tareas que se deben ejecutar dentro del subproceso terminan de forma exitosa. El sub-proceso termina y se dice que la transacción ha terminado, en ese momento los resultados de las tareas ejecutadas son salvados en la base de datos. Los eventos de excepciones o cancelaciones son lanzadas sin afectar la información o integridad de la base de datos cuando la transacción no se completó satisfactoriamente. Teniendo en cuanta lo anterior en el proceso de viajes el subproceso transaccional se aplica de la siguiente forma: Para que un empleado pueda realizar su viaje es necesario que el Asistente de Viajes realice todas las reservas solicitadas de forma correcta. Por ejemplo si un empleado solicita un viaje fuera del país necesitará tiquetes de avión y un hotel donde hospedarse. El empleado no podría viajar si tuviera el vuelo reservado pero no un sitio donde alojarse, o al contrario tiene un hotel pero no los tiquetes aéreos que le permiten llegar a su destino. www.bizagi.com Confidential 5 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Si todas las reservas son correctas, el empleado es notificado sobre los datos de las reservas y toda la información de ellas queda guardada en la base de datos. Se continúa con el resto del flujo del proceso. Si en algún momento falla alguna de las actividades, es necesario compensar o llevar a su estado original las actividades que ya fueron realizadas. Es decir se tiene una reserva de vuelo exitosa pero no hay disponibilidad del hotel, en definitiva el empleado no puedo realizar el viaje. Sin embargo el subproceso no puede terminar hasta que no se haya cancelado la reserva del vuelo. Con un subproceso transaccional, la compensación (en este caso sería la cancelación de las reservas) de las tareas que ya fueron ejecutada se realiza mediante el envío de una señal con una excepción de cancelación. El proceso ejecuta las actividades de cancelación requeridas para cada tarea. www.bizagi.com Confidential 6 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Luego de realizar las compensaciones sale del subproceso ejecutando el flujo de cancelación. Los datos que fueron modificados dentro del subproceso no son almacenados en la base de datos y por tanto el proceso quedará en el estado que se encontraba antes de iniciarse dicho subproceso. Ahora, la reserva del tiquete aéreo se realiza mediante una interfaz que busca un vuelo de acuerdo a los requerimientos del empleado. Es posible que en el transcurso de esta operación ocurra un error inesperado. Debido a que es una tarea automática no se sabe cómo proceder, por tanto es necesario interrumpir todas las actividades que se están ejecutando y/o aquellas que no han empezado. Se debe asignar el caso a una persona, la cual será la encargada de realizar las acciones correctivas necesarias. www.bizagi.com Confidential 7 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Para más información sobre construcción del subproceso transaccional: http://help.bizagi.com/bpmsuite/es/index.html?entendiendo_procesos_transacci.htm http://help.bizagi.com/bpmsuite/es/index.html?configuracion_del_sub_proceso_.htm SUB PROCESO REPORTE DE GASTOS Después de que el empleado llega de su viaje, debe reportar todos los gastos realizados durante el viaje, el reporte de gastos debe ser aprobado por el jefe. Es necesario revisar que el reporte de gastos concuerde con las políticas de la compañía, si este es el caso se procede con el registro de los gastos, de lo contrario el proceso regresa al empleado con la actividad Reportar Gastos. www.bizagi.com Confidential 8 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 3. MODELO DE DATOS El proceso de transacciones utiliza la tabla maestra Solicitud de Viajes como entidad principal. En ella se encuentra la información relacionada a la solicitud, por ejemplo, las fechas del viaje, ciudad y país destino, requerimientos de reservas, etc. La entidad está relacionada con las entidades maestras hotel, tiquete aéreo y carro, donde se encuentra la información asociada a las reservas como, fechas, nombre del hotel, nombre de la aerolínea, tarifas. La información de las reservas solo queda en la base de datos una vez se hayan completado de forma exitosa todas las reservas solicitadas por el empleado. Mientras en el proceso se ejecuta las actividades que se encuentran dentro del subproceso transaccional, la información ingresada se mantiene en memoria del sub-proceso sin ir a la base de datos (en Bizagi se conoce como scope) y van a la base de datos únicamente cuando todas las actividades del subproceso han terminado correctamente. Si el subproceso termina porque se lanza un evento de cancelación o de error, la información no se guarda. Adicionalmente el modelo utiliza dos tablas paramétricas Ciudad y País. Para más información sobre Scope de transacciones de larga duración: http://help.bizagi.com/bpmsuite/es/index.html?scopes.htm www.bizagi.com Confidential 9 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 4. CONSTRUCCIÓN DE FORMAS El proceso de solicitud de viajes utiliza varias formas que le ayuda en el manejo de la información, facilitando el acceso a toda la información. FORMA DE REGISTRAR SOLICITUD DE VIAJES La forma utiliza combos dinámicos para la búsqueda de las ciudades, tanto de partida como la ciudad destino. www.bizagi.com Confidential 10 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL FORMA RESERVAR HOTEL Y RESERVAR CARRO Las dos formas cuentan con un campo Check que se debe seleccionar si no hay disponibilidad de reserva ya sea del carro o del hotel. Si se selecciona el campo, el proceso ejecuta el evento de cancelación, y se procede a realizar la compensación de las tareas que fueron terminadas exitosas dentro del subproceso. Forma Reservar Hotel Forma Reservar Carro www.bizagi.com Confidential 11 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL FORMA CANCELAR HOTEL, CANCELAR CARRO Y CANCELAR VUELO Las formas cuentan con un campo Check que debe ser seleccionado una vez se realice la cancelación de la reserva, ya sea del carro, o del hotel. La selección del campo es obligatoria ya que estas actividades son las compensaciones de Reservar hotel y Reservar carro. Forma Cancelar Carro Forma Cancelar Vuelo Forma Cancelar Hotel www.bizagi.com Confidential 12 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL FORMA RESERVAR VUELO La forma de la actividad Reservar vuelo incluye un botón que busca con ayuda de una interfaz un vuelo con los requerimientos solicitados. Si ocurre algún error, se muestra un mensaje que indica el error y se ejecuta un evento de error. www.bizagi.com Confidential 13 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 5. REGLAS DE NEGOCIO DEFINIR EXPRESIONES El subproceso transaccional Reserva incluye una compuerta inclusiva. La compuerta activa las actividades en forma paralela de todas las reservas que fueron seleccionadas por el empleado que realizo la solicitud de viajes. www.bizagi.com Confidential 14 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL ACCIONES DE LA ACTIVIDAD El proceso tiene varias reglas de negocio, las principales son: Totalizar al final de las actividades Registrar Solicitud de Viaje y Aprobar Solicitud la cantidad solicitada y aprobada de anticipo por concepto de comidas, transporte y hospedaje. Cargar a la entrada de cada reserva la información de la solicitud, fechas de salida y de regreso, ciudad de origen y ciudad destino. Ya que el subproceso Reserva es modelado como un proceso transaccional es necesario incluir a la salida de cada actividad el lanzamiento de los eventos de cancelación y de error, dependiendo del caso. A la salida de la actividad Reservar Hotel: Si el campo Hotel no disponible fue seleccionado se debe lanzar un evento de cancelación, para poder realizar la compensación de las actividades que ya terminaron. A la salida de la actividad Reservar Carro: Si el campo Carro no disponible fue seleccionado se debe lanzar un evento de cancelación, para poder realizar la compensación de las actividades que ya terminaron. www.bizagi.com Confidential 15 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL www.bizagi.com Confidential 16 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 6. PARTICIPANTES Para la definir quién debe realizar cada tarea se utilizan roles. En el quinto paso del asistente, de clic en definir participantes. La actividad Aprobar Solicitud de Viajes es realizada por el jefe del solicitante. www.bizagi.com Confidential 17 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Las actividades Reserva de Carro, Hotel y Vuelo la realiza el asistente de viajes La actividad Registrar gastos la realiza la persona que solicitó el viaje. www.bizagi.com Confidential 18 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL 7. CONFIGURACIÓN DE CORREOS ELECTRONICOS El proceso incluye varios correos: En la actividad Enviar Mensaje de Rechazo. En la actividad Notificar Reserva Fallida. www.bizagi.com Confidential 19 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL En la actividad notificar error inesperado. En la actividad notificar empleado sobre las reservas Para que estos puedan ser enviados correctamente dentro de su empresa, es necesario que se configure correctamente el servidor de correo (Servidor SMTP). El envío de correos en la proyecto viene activado pero sin la configuración personalizada. Ingrese en Bizagi Studio a la pestaña de Configuración. Allí de clic sobre Entorno y seleccione la opción de Popular. En esta opción debe activar el envío de notificaciones y digitar el nombre del www.bizagi.com Confidential 20 CONSTRUCCIÓN DEL PROCESO TRANSACCIONAL Servidor SMTP, así como la cuenta de la que se enviarán los correos, como se muestra en la imagen a continuación. Para más información referirse a los siguientes artículos: Configuración de ambiente: http://help.bizagi.com/bpmsuite/es/index.html?configuracion_de_ambientes.htm Servidor SMTP: http://help.bizagi.com/bpmsuite/es/index.html?configuracion_smtp.htm www.bizagi.com Confidential 21