This article is also available in:
Muchos procesos de negocio requieren de paralelismo. Así puedes asignar tareas que se deben realizar en simultáneo en vez de secuencialmente (tantas como desees). Esto ocurre habitualmente cuando las tareas son independientes. Al paralelizar el flujo habilitas que diferentes usuarios trabajen en dos o más tareas a la vez y podrás ahorrar tiempo.

Para paralelizar el flujo debes utilizar una compuerta inclusiva en el diseño del workflow.



Esta funcionalidad sólo está disponible para organizaciones suscritas al plan Estándar o Premium.

Para insertar la compuerta en el diagrama sigue los pasos que se muestran en el siguiente gif:



El funcionamiento de la compuerta depende de su configuración. Si la compuerta inclusiva divide el flujo en distintos caminos, se denomina “de divergencia”. Si se utiliza para unir varios caminos, se denomina “de convergencia”.

Camino de divergencia

Representa una división en el flujo en dos o más caminos. Las diferentes alternativas pueden o no tener condiciones. Si no hay condiciones, se ejecutarán todas las tareas paralelamente. Si hay condiciones, la evaluación verdadera de una condición no excluye la evaluación de las demás condiciones (esto es lo que habilita el paralelismo). Todas las evaluaciones verdaderas serán ejecutadas a la vez.

Ejemplo:



En este ejemplo el paralelismo se activa luego de ingresar la orden de compra. Como no hay condiciones, 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 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. Esperará hasta que se completen todas las tareas activas antes de continuar a la siguiente etapa.

Ejemplo:



Como en este caso no hay condiciones, ambas tareas “Recibir pago” y “Enviar producto” se consideran activas. El flujo continuará a la etapa “Archivar orden” cuando las dos se hayan completado. Si en cambio establecemos condiciones, qué tareas se considerarán activas dependerá de si se cumple la condición o no.

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, automáticamente el flujo se va a dirigir 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 al mismo tiempo que se archiva la última, lo cual no es deseable que ocurra.

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 B 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 C (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.
¿Este artículo te resultó útil?
¡Gracias!