- Introducción
- Primeros pasos
- Modelado de procesos
- Comprender el modelado del proceso
- Abrir el lienzo de modelado
- Modelar tu proceso
- Alinear y conectar elementos BPMN
- Autopilot™ para Maestro (vista previa)
- Implementación del proceso
- Integrar sistemas y datos
- Depuración
- Simular
- Publicar y actualizar procesos de agente
- Escenarios de implementación comunes
- Extracción y validación de documentos
- Operaciones de proceso
- Supervisión de procesos
- Optimización de procesos
- Información de referencia

Guía del usuario de Maestro
Subprocesos
Información general
Un subproceso es una colección de otras tareas y subprocesos que ayudan a dividir un proceso complejo en partes más manejables y navegables.
- Opta por una actividad Llamada cuando necesites utilizar un proceso adicional, ya sea dentro del mismo proyecto o desde un proyecto separado. Un proceso agéntico de este tipo, con un valor independiente, puede ser invocado como proceso autónomo o por otros procesos, desencadenando la creación de una nueva instancia automáticamente.
- Utiliza un subproceso cuando exista un requisito para encapsular una lógica específica, aumentando así la simplicidad del proceso principal. Como parte inherente de la misma instancia, el subproceso contribuye a agilizar la orquestación general.
Consulta Modelado de procesos para obtener más información sobre el soporte de BPMN.

Pasar variables entre subprocesos y acceder a las mismas
Los subprocesos encapsulan la lógica reutilizable, pero a menudo necesitan intercambiar datos con el proceso principal o con otros subprocesos. Maestro proporciona reglas claras sobre cómo se establecen y se transmiten las variables para que los datos sigan siendo coherentes en todos los niveles.

Acceder a entradas dentro de un subproceso
Para acceder a la salida de una actividad anterior dentro del mismo subproceso, no se requiere ninguna configuración adicional.
Ejemplo: si la actividad foo establece una variable de salida llamada foo_op, y existe una actividad posterior bar en el mismo subproceso, bar puede hacer referencia foo_op directamente.
Regla clave: las variables definidas en una actividad son accesibles para cualquier actividad posterior dentro del mismo subproceso, incluidos los elementos anidados. No es necesario pasarlos explícitamente como entradas de subproceso.
Exponer las salidas de un subproceso
Cuando un proceso principal necesita acceso a los datos de salida de una actividad dentro de un subproceso anidado, puedes exponer esos datos utilizando uno de dos enfoques.
Enfoque 1: uso de variables de salida
- En el subproceso interno, define una variable de salida, por ejemplo
inner_sp_op, y asígnale el valor de la salida de la actividad interna (bar_op). - En el subproceso externo (o proceso principal), define otra variable de salida, por ejemplo
outer_sp_op, y asígnale el valor de la salida del subproceso interno (inner_sp_op). - Las actividades posteriores (por ejemplo,
qux) en el proceso principal ahora pueden hacer referencia aouter_sp_op.
Enfoque 2: uso de variables de evento de final
-
En el subproceso interno, configura el evento final para declarar una variable de salida como
ee_inner_opy asígnale el valor debar_op. -
En el subproceso externo, configura el evento de salida correspondiente para declarar una variable de salida como
ee_outer_op, y asígnale el valor deee_inner_op. -
La actividad
quxen el proceso principal ahora puede hacer referencia aee_outer_op.Consejo:Las variables de evento final se propagan automáticamente al ámbito principal sin necesidad de una configuración de variables de salida independiente.
Inspección de variables de subproceso
Puedes inspeccionar los valores de las variables en tiempo de diseño (a través de la API de depuración) o en runtime (a través de la API de instancia) para verificar el ámbito y la propagación de datos.
API de depuración: ver variables
GET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocess
GET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocess
Variables disponibles:
foo_opinner_subprocess_opee_outer_op
GET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocess
GET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocess
Variables disponibles:
bar_opee_inner_op
API de runtime: ver variables
GET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocess
GET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocess
Variables disponibles:
foo_opinner_subprocess_opee_outer_op
GET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocess
GET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocess
Variables disponibles:
bar_opee_inner_op
Marcadores multiinstancia
Los subprocesos admiten marcadores multiinstancia, donde cada elemento se ejecuta varias veces. Los elementos que pueden marcarse como multiinstancia son todos los tipos de tareas, excepto los subprocesos.
Marcadores anidados
La siguiente cadena de variables string se admite como iteradores anidados:
| Categoría | Atributos | Cómo utilizar/acceder |
|---|---|---|
| OuterSP: obtener información de contacto para cada usuario | Colección de entrada | var.GetUsers |
| OuterSP: obtener información de contacto para cada usuario | Elemento del iterador | iterator.item.gid |
| InnerSP: obtener todos los correos electrónicos para cada contacto | Colección de entrada | iterator[0].item.contactArray |
| InnerSP: obtener todos los correos electrónicos para cada contacto | Elemento del iterador | iterator[1].item.ContactId |
| Enviar correo electrónico | Colección de entrada | iterator[1].item.EmailArray |
| Enviar correo electrónico | Elemento del iterador | iterator[2]item.emailAddress |