- Introdução
- Introdução
- Modelagem de processos
- Noções Básicas sobre Modelagem de Processos
- Abertura da tela de modelagem
- Modelagem de seu processo
- Alinhamento e conexão de elementos BPMN
- Autopilot™ para Maestro (pré-visualização)
- Implementação de processos
- Integração de sistemas e dados
- Depuração
- Simulação
- Publicação e atualização de processos agênticos
- Cenários de implementação comuns
- Extração e validação de documentos
- Operações do processo
- Monitoramento de processo
- Otimização de processos
- Informações de referência

Guia do usuário do Maestro
Subprocessos
Visão geral
Um subprocesso é uma coleção de outras tarefas e subprocessos que ajuda a dividir um processo complexo em partes mais gerenciáveis e navegáveis.
- Opte por uma atividade de chamada quando precisar usar um processo adicional, seja dentro do mesmo projeto ou de um projeto separado. Um processo com agente, com um valor independente, pode ser invocado como um processo independente ou por outros processos, acionando a criação de uma nova instância automaticamente.
- Use um subprocesso quando houver um requisito para encapsular uma lógica específica, aumentando assim a simplicidade do processo pai. Como parte inerente da mesma instância, o subprocesso contribui para simplificar a orquestração geral.
Consulte Modelagem de processo para obter detalhes adicionais sobre o suporte ao BPMN.

Passagem e acesso de variáveis entre subprocessos
Os subprocessos encapsulam a lógica reutilizável, mas eles frequentemente precisam trocar dados com o processo pai ou outros subprocessos. O Maestro fornece regras claras sobre como as variáveis são analisadas e passadas para que seus dados permaneçam consistentes entre os níveis.

Acessando entradas dentro de um subprocesso
Para acessar a saída de uma atividade anterior dentro do mesmo subprocesso, nenhuma configuração adicional é necessária.
Exemplo: se a atividade foo definir uma variável de saída chamada foo_op, e uma atividade subsequente bar existir no mesmo subprocesso, bar poderá fazer referência foo_op diretamente.
Regra de chave: as variáveis definidas em uma atividade são acessíveis a qualquer atividade downstream dentro do mesmo subprocesso, incluindo elementos aninhados. Você não precisa passá-los explicitamente como entradas de subprocesso.
Exposição de saídas de um subprocesso
Quando um processo pai precisa de acesso aos dados de saída de uma atividade dentro de um subprocesso aninhado, você pode expor esses dados usando uma de duas abordagens.
Abordagem 1: uso de variáveis de saída
- No subprocesso interno, defina uma variável de saída (por exemplo,
inner_sp_op) e atribua a ela o valor da saída da atividade interna (bar_op). - No subprocesso externo (ou processo pai), defina outra variável de saída (por exemplo,
outer_sp_op) e atribua a ela o valor da saída do subprocesso interno (inner_sp_op). - As atividades posteriores (por exemplo,
qux) no processo pai agora podem fazer referência aouter_sp_op.
Abordagem 2: uso de variáveis de evento final
-
No subprocesso interno, configure o evento final para declarar uma variável de saída, como
ee_inner_op, e atribua a ela o valor debar_op. -
No subprocesso externo, configure o evento final correspondente para declarar uma variável de saída, como
ee_outer_op, e atribua a ela o valor deee_inner_op. -
A atividade
quxno processo pai agora pode fazer referência aee_outer_op.Dica:As variáveis de evento final se propagam automaticamente para o escopo pai sem precisar de configuração de variável de saída separada.
Inspecionando variáveis de subprocesso
Você pode inspecionar os valores das variáveis durante o momento de design (por meio da API de depuração) ou no runtime (por meio da API de instância) para verificar o escopo e a propagação de dados.
API de depuração - Visualizar variáveis
GET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocess
GET /v1/debug-instances/{instanceId}/variables?parentElementId=outer_subprocess
Variáveis disponíveis:
foo_opinner_subprocess_opee_outer_op
GET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocess
GET /v1/debug-instances/{instanceId}/variables?parentElementId=inner_subprocess
Variáveis disponíveis:
bar_opee_inner_op
API de runtime – Visualizar variáveis
GET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocess
GET /v1/instances/{instanceId}/variables?parentElementId=outer_subprocess
Variáveis disponíveis:
foo_opinner_subprocess_opee_outer_op
GET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocess
GET /v1/instances/{instanceId}/variables?parentElementId=inner_subprocess
Variáveis disponíveis:
bar_opee_inner_op
Marcadores de várias instâncias
Os subprocessos são compatíveis com marcadores de várias instâncias, onde cada Elemento é executado várias vezes. Os elementos que podem ser marcados como várias instâncias são todos os tipos de tarefas, exceto para subprocessos.
Marcadores aninhados
As seguintes variáveis de string são compatíveis como iteradores aninhados:
| Categoria | Atributos | Como usar/acessar |
|---|---|---|
| OuterSP - Obter informações de contato para cada usuário | InputCollection | var.GetUsers |
| OuterSP - Obter informações de contato para cada usuário | item de iterador | iterator.item.gid |
| InnerSP - Obtenha todos os e-mails para cada contato | InputCollection | iterator[0].item.contactArray |
| InnerSP - Obtenha todos os e-mails para cada contato | item de iterador | iterator[1].item.ContactId |
| Enviar Email | InputCollection | iterator[1].item.EmailArray |
| Enviar Email | item de iterador | iterator[2]item.emailAddress |