Gateways en BPMN
Introducción
En BPMN 2.0, los Gateways controlan el flujo de procesos determinando cómo los flujos de secuencia se dividen, fusionan o dirigen según ciertas condiciones. Son puntos de decisión dentro de un proceso donde el camino puede divergir o converger, y permiten modelar workflows complejos con múltiples resultados posibles. Los Gateways se representan por formas de diamante en los diagramas BPMN, con diferentes iconos dentro que indican su comportamiento específico.
Tipos de Gateways:
Exclusive Gateway (XOR Gateway)
- Propósito: Este es el tipo de gateway más común, donde solo se sigue un camino de salida basado en condiciones.
- Representación Visual: Una forma de diamante con una “X” dentro.
- Ejemplo: En un proceso de aprobación, si la solicitud es aprobada, sigue un camino; si es rechazada, sigue otro.
- Caso de Uso: Cuando el proceso solo puede tomar un camino basado en una decisión, como “sí/no” o “verdadero/falso.”
Inclusive Gateway (OR Gateway)
- Propósito: Este gateway permite seguir uno o más caminos basados en condiciones. Todos los caminos cuyas condiciones se evalúan como verdaderas son tomados.
- Representación Visual: Una forma de diamante con un círculo dentro.
- Ejemplo: En un proceso donde se necesitan múltiples aprobaciones (pero no todas), el sistema puede seguir todos los caminos de aprobación aplicables según las condiciones establecidas.
- Caso de Uso: Cuando se pueden seguir múltiples caminos dependiendo de las condiciones, como múltiples criterios que podrían desencadenar diferentes acciones.
Parallel Gateway (AND Gateway)
- Propósito: Este gateway se utiliza para dividir el flujo en múltiples caminos paralelos, donde todas las ramas deben seguirse simultáneamente. También puede usarse para sincronizar múltiples caminos entrantes.
- Representación Visual: Una forma de diamante con un ”+” dentro.
- Ejemplo: Una tarea donde los documentos son revisados por múltiples departamentos al mismo tiempo.
- Caso de Uso: Cuando las tareas o acciones deben ocurrir en paralelo o cuando múltiples caminos deben sincronizarse antes de continuar.
Gateway Basado en Evento
- Propósito: Este gateway dirige el flujo basado en eventos que ocurren. Espera un evento específico (por ejemplo, message, timer, signal) para determinar qué camino tomar.
- Representación Visual: Una forma de diamante con un pentágono adentro.
- Ejemplo: Un proceso que espera una respuesta del cliente o un timeout para continuar el flujo.
- Caso de Uso: Cuando el siguiente paso de un proceso depende de eventos externos, como esperar un mensaje o un disparador de timer.
Puntos Clave sobre Gateways
- División de Flujos: Los Gateways pueden dividir un flujo de secuencia único en múltiples ramas, determinando qué camino (o caminos) seguir basados en condiciones o eventos.
- Fusión de Flujos: Los Gateways también pueden fusionar múltiples flujos de secuencia en uno, sincronizando caminos paralelos o convergiendo según condiciones específicas.
- Toma de Decisiones: Los Gateways son esenciales para modelar puntos de decisión, donde el flujo del proceso depende del resultado de evaluaciones, eventos o entrada del usuario.
Casos de Uso
- Exclusive Gateway: Cuando solo una condición puede ser verdadera, y el proceso necesita seguir un solo camino.
- Parallel Gateway: Cuando múltiples tareas pueden ocurrir simultáneamente, y todas deben completarse.
- Inclusive Gateway: Cuando una o más condiciones pueden ser verdaderas, y múltiples caminos deben ser tomados.
- Event-Based Gateway: Cuando el flujo depende de eventos externos, como esperar un mensaje o un timer.
- Complex Gateway: Cuando reglas o condiciones complejas gobiernan cómo continúa el proceso.
Ejemplo
En un flujo de trabajo de aprobación simple:
- Exclusive Gateway: Si la solicitud es aprobada, el proceso continúa; si es rechazada, termina.
- Parallel Gateway: Tras la aprobación, dos tareas (preparación de documentos y notificación) pueden completarse en paralelo.
- Event-Based Gateway: El proceso espera una respuesta del cliente o un timeout para determinar el siguiente paso.
Los Gateways son cruciales para dar flexibilidad a los procesos de negocio, permitiendo la toma de decisiones, procesamiento paralelo y sincronización de diferentes caminos dentro del workflow.