Subprocesso
Subprocesso é uma atividade cujos detalhes são representados por um outro processo, composto também por eventos, gateways, tarefas e até mesmo outros subprocessos.
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;
Quando você quer organizar e isolar melhor seus aplicativos de processo;
Quando você precisa que um aplicativo de processo inicie diversos processos filhos em lotes (ver recurso avançado de multi-instância);
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";
Ao ser utilizado como um subprocesso, o evento de inicio do subprocesso não será executado, passando a execução do processo diretamente para a segunda atividade ou elemento;
O solicitante de subprocesso será sempre o solicitante do processo pai. Utilizando uma tarefa de regra de negócio, entretanto, você pode modificá-lo;
Ao abrir um subprocesso, ele possuirá um número de solicitação novo, único e exclusivo;
No relatório de acompanhamento da solicitação, 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.
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.
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
.
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.
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.
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, 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");
Esse recurso permite criar, no máximo, 50 instâncias de subprocessos
Atualizado