Gateway paralelo

O Gateway condicional inclusivo também é conhecido como AND

Como divergente

Como elemento divergente, todas as conexões de saída do gateway paralelo são ativadas simultaneamente, sem nenhum filtro. No exemplo abaixo, após a atividade de "Vender produto" ser finalizada, as tarefas "Emitir NF", "Despachar" e "Pagar comissão" serão iniciadas ao mesmo tempo.

Divergente implícito

Apesar de não ser indicado, por dificultar a compreensão, esse fluxo poderia ser representado sem o elemento gateway paralelo, quando ele é considerado implícito, como na imagem abaixo:

A modelagem abaixo é igualmente permitida e não recomendada, e também usa o conceito de gateway paralelo implícito (ou seja, ele não é visível, mas seu comportamento está presente). Nessa situação, após a tarefa "Vender produto" ser concluída, a tarefa "Despachar" será iniciada 3 vezes, em paralelo. É importante ter claro que, a partir daqui, todo o resto do processo será executado em multiplicidade. Ou seja, a tarefa "Confirmar recebimento" será igualmente iniciada 3 vezes.

Como convergente

Como elemento convergente, o gateway irá esperar todas as conexões de entrada chegarem para então dar prosseguimento no fluxo. No exemplo abaixo, após as tarefas "Emitir NF", "Despachar" e "Pagar comissão" finalizarem a tarefa "Emitir pesquisa de satisfação" iniciará.

Cuidado especial

Você deve ter extra cuidado ao utilizar o gateway paralelo como elemento convergente. Você deve ter certeza que existem condições no processo para que realmente todas as setas de conexão cheguem no elemento convergente. Por exemplo, no processo abaixo a divergência é realizada por um gateway condicional inclusivo, o que indica que das três tarefas subsequentes, "Emitir NF", "Despachar" e "Pagar comissão", uma, duas, ou três delas poderão ser acionadas. Se menos de três forem acionadas, significa que nunca chegarão três execuções no paralelo convergente (que irá esperar sempre três), e o processo poderá ficar trancado.

Para tentar amenizar essa questão, o Zeev possui um mecanismo de controle adicional que pode ajudar em algumas situações. Quando o elemento convergente é acionado, Zeev irá verificar se existem alguma outra atividade (tarefa ou subprocesso) em andamento nessa solicitação. Se não existir nenhuma atividade em andamento, Zeev irá liberar a continuidade da solicitação, independente do que o elemento convergente espera.

Verifique no relatório de monitoramento da solicitação se existem outros elementos em andamento.

Compatibilidade com versões legadas

Se você é usuário do Orquestra BPMS 3, Orquestra BPMS 4 e está utilizando a versão anterior do desenhador de processos, a principal diferença que é nesses produtos existem dois gateways condicionais inclusivos, independentes:

  • O gateway paralelo divergente legado, representado pela cor rosa;

  • O gateway paralelo convergente legado, representado pela cor verde;

Gateway paralelo divergente legado

Assim como no gateway paralelo divergente, todas as conexões de saída do gateway paralelo são ativadas simultaneamente, sem nenhum filtro.

A principal diferença é que, por ele for funcionar exclusivamente como divergente, se ele estiver em uma posição convergente também, simplesmente dará sequencia no processo todas as vezes que ele for acionado.

Veja o exemplo abaixo. No modo legado, o gateway paralelo exclusivamente divergente não tem nenhuma função convergente. Isso significa que, quando a tarefa A finalizar, C e D serão acionadas paralelamente. Porém, quando B finalizar, C e D serão, novamente, acionadas paralelamente.

Esse comportamento não é o padrão BPMN e não é o novo padrão do Zeev. Como vimos acima, no Zeev, o gateway tem dupla função, convergente e divergente. Portanto, o gateway irá esperar A e B finalizarem, para então dar início a C e D.

Demonstração prática

Confira no vídeo a seguir como funciona os gateways do desenhador de processos.

Atualizado