Actividad Condicional

<< Click to Display Table of Contents >>

Navigation:  Bizagi Studio > Asistente de Procesos > Reglas de Negocio > Definir expresiones (Ruta del proceso) >

Actividad Condicional

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,

 

ConditionalTask

 

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.

 

ConditionalTask_1

 

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.

 

ConditionalTask_2

 

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).

 

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.

 

 

Where to use business rules78

 

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.

 

 

Where to use business rules_cond_2

 

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.

 

Where to use business rules_cond_1

 

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.

 

Where to use business rules_cond_3

 

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

 

Where to use business rules70

 

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).

 

Where to use business rules73

 

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.

 

Where to use business rules74

 

 

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.

 

Where to use business rules72

 

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.

 

Where to use business rules76

 

Tenga en cuenta la iniciación de los parámetros usados en la condición.

 

Where to use business rules79

 

Like in the image below, an Actions sets the attribute.

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.

 

Where to use business rules80