Multi-instancia
Un marcador que ejecuta la misma actividad una vez por cada elemento de una colección — en paralelo o en secuencia.
Qué es la multi-instancia
Una actividad multi-instancia se dibuja con tres barras verticales (paralela) o tres barras horizontales (secuencial) en la esquina inferior. Indica que la actividad se ejecuta una vez por cada elemento de una colección de entrada. Si la colección tiene diez elementos, la actividad se ejecuta diez veces.
La variante paralela crea los diez tokens simultáneamente — todas las ejecuciones corren a la vez. La variante secuencial procesa un elemento, espera que termine, y pasa al siguiente. Use la paralela cuando las ejecuciones son independientes y la velocidad importa; use la secuencial cuando el orden importa o las ejecuciones comparten recursos que no pueden accederse en paralelo.
Cuándo usar multi-instancia
- Revisar cada ítem de una lista de solicitudes — multi-instancia secuencial si el orden importa, paralela si no.
- Notificar a cada miembro de un equipo — multi-instancia paralela (todos al mismo tiempo, independientes).
- Aprobar un pedido con N aprobadores — multi-instancia secuencial o paralela según la política de aprobación.
- No use multi-instancia si el número de iteraciones siempre es uno — es simplemente una actividad normal.
La multi-instancia en LucidFlow
LucidFlow detecta el lenguaje de colección en el documento fuente («para cada», «por cada solicitud», «notificar a todos los aprobadores») y genera el marcador de multi-instancia apropiado. Las actividades multi-instancia son candidatas a análisis de coste especial: su coste real es el coste unitario multiplicado por el tamaño de la colección, lo que el panel de costes de LucidFlow calcula automáticamente cuando se especifica el tamaño medio de la colección.
Preguntas frecuentes
¿Cuál es la diferencia entre multi-instancia y bucle?
El bucle repite la actividad con el mismo token hasta que una condición se cumple. La multi-instancia crea un token por elemento de una colección de entrada — el número de ejecuciones lo determina el tamaño de la colección, no una condición booleana.
¿Cómo sabe la actividad cuándo han terminado todas las instancias?
Una condición de completado (`completionCondition`) puede detener las ejecuciones antes de que terminen todas — por ejemplo, «si el 60 % aprueba, no esperar al resto». Sin esa condición, la actividad espera a que todas las instancias terminen.
¿Un subproceso puede ser multi-instancia?
Sí. Un subproceso multi-instancia ejecuta el flujo interno completo una vez por elemento de la colección. Es la forma de modelar «ejecutar todo este subflujo para cada factura de la lista».