Connecting Objects
Introducción
En BPMN 2.0, los connecting objects se utilizan para definir las relaciones y el flujo de información entre los diferentes elementos en un modelo de proceso. Conectan actividades, events y gateways, guiando el flujo del proceso o transmitiendo data y mensajes. Los principales connecting objects son sequence flows, message flows y associations.
Sequence Flow
Un sequence flow define el orden en el que las actividades, events y gateways se realizan en un proceso. Muestra la progresión lógica de tareas de un paso al siguiente.
Esto representa el orden en que las tareas deben ejecutarse, representado como una línea recta que termina con una flecha. Puede indicar una ruta condicional o por defecto.
- Ejemplo: Un sequence flow conecta la tarea de “Enviar Solicitud” con la tarea de “Revisar Solicitud”, indicando que la revisión ocurre después de la presentación.
- Tipos de Sequence Flows:
- Flujo de Secuencia Normal: El flujo por defecto entre actividades.
- Flujo de Secuencia Condicional: Un sequence flow que solo procede si se cumple una condición específica (indicado por un pequeño diamante).
- Flujo de Secuencia por Defecto: El flujo de respaldo si no se cumplen condiciones (indicado por una línea diagonal en el inicio).
- Caso de Uso: Utiliza sequence flows para guiar la progresión paso a paso del proceso, asegurando que las actividades se ejecuten en un orden específico.
Message Flow
Un message flow representa la comunicación entre diferentes participantes o procesos, típicamente cuando son parte de diferentes pools. Se utiliza para mostrar el intercambio de información entre procesos, que podrían estar operando independientemente.
El conector de message flow ilustra la comunicación entre diferentes pools o a través de límites organizacionales, como departamentos. No está destinado a enlazar events o actividades dentro del mismo pool. Este conector se representa por una línea discontinua, comenzando con un círculo y terminando con una flecha abierta.
- Ejemplo: Un message flow conecta una tarea de “Enviar Factura” en un pool (representando al proveedor) con una tarea de “Recibir Factura” en otro pool (representando al cliente), indicando que la factura se envía entre ellos.
- Caso de Uso: Utiliza message flows para mostrar la comunicación entre diferentes entidades o participantes empresariales (representados como pools separados), como cuando una empresa envía una solicitud de pedido a otra.
Association
Una asociación conecta los artefactos (como data objects, text annotations o groups) con los flow objects (actividades, events, gateways) para proporcionar contexto o clarificar la relación entre los elementos. Las asociaciones no impactan la secuencia del proceso, pero se utilizan para documentación y detalles adicionales.
Este elemento se representa como una línea discontinua, sin flecha ni círculo. Sirve para enlazar un event, actividad o gateway con un artefacto.
- Ejemplo: Una asociación conecta una tarea de “Generar Informe” a un “Documento de Informe” (un data object), indicando que esta tarea produce el documento.
- Tipos de Asociaciones:
- Asociación Normal: Conecta elementos como tareas a data objects o annotations.
- Asociación Direccional: Muestra el flujo de data desde o hacia una tarea (indicado con una flecha).
- Asociación Bidireccional: Indica relaciones bidireccionales entre elementos (indicada con dos flechas).
- Caso de Uso: Utiliza asociaciones cuando quieras enlazar información adicional (por ejemplo, data objects, text annotations) a tareas o events sin afectar el flujo del proceso.
Puntos Clave sobre Connecting Objects
- Sequence Flow: Define el orden de las tareas o events dentro de un único proceso (dentro de un pool). Se usa para especificar el flujo de actividades, condiciones y decisiones.
- Message Flow: Representa la comunicación entre diferentes participantes o procesos (a través de diferentes pools). Se utiliza cuando los procesos intercambian información o desencadenan acciones en otro proceso.
- Association: Enlaza información adicional como data, documentos o annotations a actividades, proporcionando contexto o explicación, pero no controlando el flujo del proceso.
Ejemplo
Imagina un proceso para gestionar órdenes de clientes:
- Sequence Flow: Tras recibir una orden, el sistema procesa la orden y luego la envía para su entrega. Cada paso (recepción, procesamiento, entrega) está conectado por sequence flows.
- Message Flow: Una vez procesada la orden, se envía un mensaje a una empresa de transporte externa para gestionar la entrega. Esta comunicación se representa mediante un message flow entre las dos entidades.
- Association: Un data object de “Orden de Cliente” está asociado con la tarea “Recibir Orden” para indicar que esta tarea maneja datos de órdenes.
Resumen
- Sequence Flow: Gestiona el orden de las actividades dentro de un solo proceso.
- Message Flow: Facilita la comunicación entre diferentes entidades o pools.
- Association: Enlaza artefactos como data o annotations a elementos de flujo, proporcionando contexto adicional.
Estos connecting objects son fundamentales para definir cómo se enlazan tareas y events, cómo se mueve la data a través de los procesos y cómo los procesos interactúan entre sí en un modelo BPMN.