<< Clic para mostrar Tabla de Contenidos >> Actividades y Eventos Condicionales |
Introducción
Bizagi permite el uso de dos tipos diferentes de objetos BPMN condicionales: Actividad condicional y Evento condicional. La actividad condicional es una extención del estandar BPM 2.0. Ambas actividades pueden ser usadas en ejecución, especialmente al trabajar con procesos desestructurados,
Actividades condicionales: Están habilitadas o deshabilitadas durante una instancia de un caso, dependiendo de la configuración del negocio. Representan una tarea de usuario que, al activarse, son asignadas a un usuario final. Una condición debe ser definida a la actividad condicional para habilitarla o deshabilitarla, de acuerdo a los requerimientos del negocio. En tiempo de ejecución, los usuarios asignados podrán ver la tarea entre sus tareas pendientes si la condición es cumplida, de lo contrarionla tarea desaparece de su bandeja de entrada, como si nunca hubiese existido. Las actividades condicionales no necesitan caminos entrantes. Si no tienen un camino entrante estarán disponibles desde que el proceso que las contenga sea instanciado, y estará escuchando los cambios en los datos, esperando a que la condición se cumpla para ser habilitada. Si tienen un camino entrante, la actividad estará evaluando los datos tan pronto como un token llegue a la actividad.
Eventos condicionales: Se habilitan tan pronto como un token llega a ellos, pero esperan a que una condición de negocio se cumpla para continuar con el siguiente paso del flujo de proceso. No tienen interfaz de usuario, es decir, no son asignadas a nadie, y no pueden desactivarse, a diferencia de las Actividades condicionales. Es obligatorio que un evento condicional tenga un camino entrante ya que la condición de inicio del evento será evaluado tan pronto como el token llega al evento.
NOTAS:
•Debido a que las actividades condicionales no necesitan flujo de entrada, no pueden tener acciones de Entrada.
•Si una Actividad condicional no tiene definida una condición se comportará como una Actividad normal.
•Al configurar una actividad condicional, asegúrese que cada parámetro usado en una condición es iniciado antes que la actividad condicional evalúe el parámetro. De otra forma la operación realizada resultará en error al evaluar verdadero o falso comparado con nulo
•Las condiciones serán ejecutadas cuando hay un cambio real en los atributos que se están evaluando (por ejemplo, cambio del atributo VIP de true a false). Por ello, los atributos que permanezcan estáticos no activarán la condición (por ejemplo evaluar que la Fecha A sea mayor a la fecha B, porque las fechas realmente no están cambiando).
•El usuario domain/admon debe estar habilitado para poder ejecutar eventos condicionales.
Por ejemplo, imagine una Sala de Emergencias. Un Paciente llega y se lleva a cabo un triage. Después, un doctor examina el paciente y usualmente ordena algunos exámenes. Solo cuando se toman todos los exámenes y se reciben sus resultados, se habilita la opción de Revisión. Por lo tanto, la tarea de Revisión de exámenes se representa usando la Tarea condicional. De esta manera, cuando Bizagi evalúa la condición de que todos los exámenes ordenados están listos, se hará una llamada del doctor al Paciente para revisarlos.
Ejemplo: Establecer la condición a la Actividad condicional
Considere un escenario donde una paciente que se encuentra en proceso de gestación, agenda una cita de control. Estas citas pueden ser programadas durante cualquier tiempo durante el embarazo, de manera que es posible para la paciente realizar un chequeo en la semana 27. Si este escenario se convierte en una situación real, durante el proceso, la nueva actividad es iniciada. Esta actividad estará en cargo de administrar la información de la preparación del paciente para el nacimiento de su hijo.
En el cuarto paso del Asistente de procesos, cree una Regla de Negocio para definir cuándo comenzará la actividad Preparar el nacimiento de su hijo. Seleccione la actividad para abrir la ventana del Administrador de Expresiones.
Establezca una condición donde el atributo semanas de embarazo es mayor que 27. De este modo, la actividad comenzará tan pronto se exceda la semana 27 de un embarazo.
Ejemplo de un evento condicional
Considere una solicitud de compra que puede ser cancelada en cualquier momento, siempre y cuando la orden no haya sido cotizada. Una vez cotizada, la orden no puede ser cancelada
Tan pronto el proceso es instanciado, el evento condicional recibe un token, y por lo tanto es habilitado para evaluar los datos si y revisar si la condición se cumple para iniciar el evento.
En este caso, el evento condicional estará esperando ya sea que la solicitud de compra sea no cancelable, o el proceso sea manualmente cancelado. Si una de las dos condiciones se cumple, el evento avanzará y entonces, evalúa si el proceso debe terminar o no.
Este comportamiento es posible gracias a dos parámetros Booleanos: Is Cancellable (para ejecutar el evento y por lo tanto deshabilitarlo tan pronto el proceso llega a la actividad de cotizar) e Is Cancelled (Si una acción ubica el proceso como cancelado antes que se realice la cotización, ejecuta el evento para terminar el proceso).
La siguiente imagen muestra la condición del evento. Se ejecutará si una de las condiciones es válida.
Note que después del evento hay una compuerta que analiza cómo fue activado el evento para decidir si el proceso finaliza (al alcanzar el evento de terminación) o si el token es tomado por el evento de terminación regular (el evento de terminación regular toma el token) y el proceso continúa con las actividades pendientes.
Primero revisemos las opciones cuando el evento no es cancelable.
Tan pronto como el flujo del proceso alcanza la actividad Set as noncancellable, una expresión ubica el atributo IsCancellable como falso.
Con este cambio en los datos, el evento será activado y el proceso continuará a la compuerta. La siguiente imagen muestra como la compuerta evalua cómo el evento condicional fué ejecutado. En este caso, el atributo IsCancelled será falso, y el proceso seguirá al evento de terminación regular.
Tenga en cuenta la iniciación de los parámetros usados en la condición.
La segunda opción es la cancelación del proceso. Ésto puede ser logrado usando una acción o un trigger para alterar el atributo. Por ejemplo usando una acción con una expresión que realice lo siguiente: <Purchase_Request.IsCancelled> = true.
Como en la imagen siguiente, una acción modifica el atributo.
Last Updated 1/26/2022 3:58:59 PM