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 idadeforem 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");

Atualizado