# Subprocesso

![](/files/avggKPzaYHr4H9BJg3WN)

Subprocesso é uma atividade cujos detalhes são representados por um outro processo, composto também por eventos, gateways, tarefas e até mesmo outros subprocessos.

## Casos de uso

Existem diversos casos de uso para subprocessos:

* Quando já existe um aplicativo de processo automatizado na organização e você quer reusá-lo;<br>
* Quando você quer organizar e isolar melhor seus aplicativos de processo;<br>
* Quando você precisa que um aplicativo de processo inicie diversos processos filhos em lotes (ver recurso avançado de [multi-instância](#multi-instancia));

## Como funcionam subprocessos

Esses detalhes são importantes para você compreender subprocessos:

* Um mesmo aplicativo de processo pode ser executado diretamente ou pode ser utilizado como subprocesso de outro aplicativo, inclusive ao mesmo tempo. Por exemplo, você pode ter publicado o aplicativo "Processo de compras" para ser aberto por usuários, e esse mesmo aplicativo ser configurado como subprocesso do aplicativo "Abertura de filiais";<br>

* Ao ser utilizado como um subprocesso, o [evento de inicio](/zeev/como-construir-processos/como-desenhar-processos/como-usar-eventos/evento-de-inicio.md) do subprocesso <mark style="color:red;">**não**</mark> será executado, passando a execução do processo diretamente para a segunda atividade ou elemento;<br>

* O solicitante de subprocesso será sempre o solicitante do processo pai. Utilizando uma [tarefa de regra de negócio](/zeev/como-construir-processos/como-desenhar-processos/o-que-sao-atividades/o-que-e-atividade-de-regra-de-negocio.md), entretanto, você pode modificá-lo;<br>

* Ao abrir um subprocesso, <mark style="color:red;">ele possuirá um número de solicitação novo, único e exclusivo;</mark>

* No relatório de [acompanhamento da solicitação](/zeev/gestao-de-solicitacoes-em-andamento/monitoramento/como-acompanhar-o-passo-a-passo-de-uma-solicitacao.md), será possível navegar entre o passo do processo-pai e do subprocesso;

## Síncrono X assíncrono

Os subprocessos podem ser configurados como síncronos ou assíncronos.&#x20;

Se configurado como **síncrono**, quando o subprocesso for iniciado, o processo-pai será congelado e ficará assim até o fim do subprocesso. Quando o subprocesso finalizar, o processo-pai dará continuidade.

Se configurado como **assíncrono**, o processo-pai prosseguirá, independente do resultado ou status do subprocesso.  Nesse cenário, em algumas situações, é possível que o processo principal finalize e o subprocesso continue em andamento. Essa situação é perfeitamente normal. O relatório de andamento do processo-pai indicará que ele está finalizado, porém que o subprocesso está andamento.&#x20;

## Sincronização do formulário

Subprocessos possuem formulários próprios, independentes do processo-pai.

Os valores dos campos do formulário poderão ser sincronizados entre o processo-pai e os seus processos filhos. Para isso é acontecer é necessário:

* Indicar a necessidade de sincronização na configuração do elemento de subprocesso;
* Somente serão sincronizados os campos de formulários que possuírem os mesmos identificadores;

Imagine que o formulário do processo pai possui os campos cujos identificadores são `nomeCompleto`, `idade` e `telefoneComercial`.  E o subprocesso possui um formulário cujos identificadores de campos sejam `nomeCompleto`, `idade` e `telefoneResidencial`.&#x20;

Quando o subprocesso for criado, os valores dos campos `nomeCompleto` e `idade` serão copiados para o subprocesso, e o campo `telefoneResidencial` ficará em branco, por não encontrar correspondente no processo-pai.&#x20;

Caso, ao longo do subprocesso, o valor dos campos `nomeCompleto` e `idade`forem modificados, eles irão atualizar os valores dos respectivos campos do processo-pai quando o subprocesso finalizar.

{% embed url="<https://youtu.be/uASVCrB0nAY>" %}

## Multi-instância

O recurso de "multi-instância" de um subprocesso permite que um mesmo elemento de subprocesso em um fluxograma dê origem não a uma única instância de subprocesso, mas a diversas instâncias.

Digamos, por exemplo, que você possua um aplicativo de processo de melhoria contínua. Nesse processo, você precisa montar um plano de ação com "N" ações a serem realizadas por diferentes profissionais. Porém, você não tem como saber, de antemão, quantas ações terá ou quem serão os responsáveis.  Nesse cenário, você pode usar o recurso de subprocesso multi-instância para criar uma instância de subprocesso para cada ação que você precisa que seja executada.

### Como configurar multi-instância

* O formulário do processo-pai precisará ter uma [tabela multi-valorada](/zeev/como-construir-processos/como-criar-formularios/como-criar-tabelas-multivaloradas.md), para que você possa incluir "n" items iguais. No nosso exemplo acima, a tabela multi-valorada seria usada para incluir o plano de ação, e poderia ser composta pelos campos "Descrição da ação", "Responsável" e "Prazo";

* Os campos da tabela multi-valorada (no nosso exemplo, "Descrição da ação", "Responsável" e "Prazo") deverão estar configurados dentro do mesmo agrupamento (por exemplo, "Plano de ação");

* É necessário que o subprocesso esteja configurado para sincronizar valores de formulários, como vimos anteriormente;

* É necessário que você configure o subprocesso definindo na opção "multi-instância" o agrupamento que contém os campos da tabela (no nosso exemplo, "Plano de ação");

{% hint style="danger" %}
**Esse recurso permite criar, no máximo, 50 instâncias de subprocessos**
{% endhint %}

{% embed url="<https://www.youtube.com/watch?v=YhhqAOhLaHk>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kb.stoque.com.br/zeev/como-construir-processos/como-desenhar-processos/o-que-sao-atividades/o-que-sao-subprocessos-e-como-usa-los.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
