Artículos sobre: Workflow del Proceso
Este artículo también está disponible en:

Configurar tareas en paralelo con una compuerta inclusiva (inclusive gateway)

En muchos procesos de negocio, el paralelismo resulta esencial. Esto permite asignar tareas que pueden llevarse a cabo de manera simultánea en lugar de secuencial. Este enfoque es especialmente útil cuando las tareas son independientes entre sí. Al introducir el paralelismo en el flujo, se facilita que distintos usuarios trabajen en múltiples tareas al mismo tiempo, lo que conlleva a un ahorro significativo de tiempo.

Para implementar el paralelismo en el flujo de trabajo, se hace uso de una compuerta inclusiva en el diseño del proceso.



Para insertarla simplemente arrastra la compuerta en el diagrama y conéctala con los demás elementos



El funcionamiento de la compuerta se basa en los flujos entrantes o salientes, pudiendo tener un comportamiento "de divergencia" si se utiliza para dividir el flujo en varios caminos, o "de convergencia" si se utiliza para unir distintos caminos en uno solo.

Camino de divergencia



Esta rama representa una bifurcación en el flujo hacia dos o más rutas distintas.
Opcionalmente los flujos salientes pueden tener condiciones que se evaluarán al momento de la ejecución, lo que quiere decir que en el comportamiento de bifurcación se revisan las condiciones de todas las flechas salientes y, para aquellas que resulten verdaderas, se siguen los flujos en paralelo, creando una ejecución simultánea (o token) por cada camino.

En ausencia de condiciones, todas las tareas se ejecutarán en paralelo.

Ejemplo:



En este ejemplo el paralelismo se activa luego de ingresar la orden de compra. Como no hay condiciones, se crearán dos tokens y ambas tareas se asignarán a los usuarios correspondientes: quienes deban completar la tarea Recibir pago y quienes deban completar la tarea Enviar producto.

También podemos establecer condiciones para determinar cuáles tareas se deben ejecutar:



En este caso se pueden ejecutar ambas tareas en paralelo o sólo una de ellas, dependiendo si ambas condiciones, “Cliente no pagó” y “Producto no enviado”, se cumplen.

Por ejemplo, si el cliente ya pagó el producto y sólo debe ser enviado, se creará un único token y se asignará únicamente la tarea “Enviar producto”.

Las condiciones se establecen haciendo clic en las transiciones de salida (flechas) de la compuerta inclusiva. Siempre debe cumplirse al menos una condición.

Camino de convergencia



La compuerta inclusiva también se utiliza para unir distintos caminos y continuar el proceso por un único flujo. En el comportamiento de unión, todas las ejecuciones que lleguen a la compuerta, esperarán hasta que se completen todas las tareas activas antes de continuar a la siguiente etapa.

Ejemplo:



Cuando se completan las tareas Recibir pago y Enviar producto, la segunda compuerta inclusiva une las dos ejecuciones y, como solo hay un flujo saliente, no se crean rutas de ejecución simultáneas y solo la tarea Archivar orden quedará activa.

¿Cuándo se activa la unión de caminos?



La unión se activará cuando:

Reciba un número de tokens mayor o igual al número de transiciones entrantes. Los tokens no necesariamente tienen que llegar a la compuerta a través de diferentes transiciones.
Reciba un número de tokens menor que el número de transiciones entrantes y no haya más tokens que puedan llegar a la compuerta.

Notar que no es necesario que la compuerta tenga el mismo número de flujos entrantes/salientes para las compuertas inclusivas correspondientes. Una compuerta inclusiva simplemente esperará que se cumpla alguna de las condiciones anteriores y creará una ruta de ejecución simultánea para cada flujo saliente, sin verse influenciada por otras configuraciones del diagrama del proceso.

Una compuerta inclusiva puede tener simultáneamente un comportamiento de bifurcación y unión si tiene varias flechas de secuencia entrantes y salientes. En ese caso, la compuerta primero unirá todas las ejecuciones de transiciones entrantes, antes de dividirse en múltiples rutas de ejecución simultáneas para las flechas salientes cuya condición sea verdadera.

Posibles problemas



Evita generar ciclos al utilizar compuertas inclusivas. De lo contrario podrías generar un flujo que nunca termina.

No configures flujos como este:



En este caso, lo primero que se hizo fue paralelizar las tareas de Recibir pago y Enviar producto. Cuando ambas tareas estén completadas, el gateway inclusivo recibe dos tokens (uno por cada flecha entrante), y se dirige hacia Archivar orden.
Sin embargo, como el flujo se configuró para Ingresar orden de compra a la vez que el camino continúa hacia Archivar orden, esto creará una nueva orden de compra lo cual puede ser un comportamiento no deseado.

Otro posible problema es el siguiente:



Las compuertas exclusivas, a diferencia de las inclusivas, no sirven para unir caminos. En este caso, cuando se complete la tarea “Recibir pago”, automáticamente el camino seguirá hacia “Archivar orden” y lo mismo ocurrirá cuando se complete la tarea “Enviar producto”. El resultado será que se archivarán dos órdenes de compra para una misma instancia de proceso, lo cual no es aconsejable.

Tampoco deberías intentar replicar esta situación haciendo converger los caminos en la tarea “Archivar orden”, como se muestra en la siguiente imagen:



Este caso generaría el mismo resultado que el anterior. Recuerda que la única manera de unir múltiples caminos es a través de una compuerta inclusiva.

Paralelismo y temporizadores



Si se combinan temporizadores con una compuerta inclusiva (Ver imagen) hay que tener especial cuidado.



En este caso, si se completa la tarea Recibir pago antes que el temporizador, el flujo continuará su curso. Esto es porque las compuertas inclusivas no toman en cuenta tareas con temporizadores asociados para continuar el flujo.

La solución es incluir una flecha explícita además de la que sale del temporizador, de forma que la compuerta que une los caminos vea que hay un camino explícito y entonces espere por la tarea Enviar producto (Ver imagen).



Si es una tarea que sólo debe completarse por temporizador, entonces simplemente hay que quitar las decisiones en esa tarea para que ningún usuario pueda completarla proactivamente.

Actualizado el: 13/02/2025

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!