Gateway condicional inclusivo

O Gateway condicional inclusivo também é conhecido como OR

Como divergente

Como elemento divergente, cada conexão de saída deve ter uma condição associada. Após avaliar as condições associadas a cada uma das saídas, um ou mais caminhos podem ser ativados. Se nenhum caminho for ativado, a solicitação emitirá erro.

Por exemplo, no processo abaixo, conforme definido na tarefa "Definir quem deve aprovar", o processo poderá acionar as tarefas "RH aprovar", "Financeiro aprovar" ou "TI aprovar". No mínimo uma delas deverá ser acionada.

Como convergente

Como elemento convergente, esse gateway possui associado uma variável que chamaremos de "K", definida em suas configurações. O gateway irá esperar "K" conexões de entrada chegarem para dar prosseguimento no processo.

No desenho abaixo, imagine que o K é igual a 2. Isso significa que o gateway irá esperar 2 elementos chegarem para dar sequencia. Digamos que "RH aprovar" finalize; nada acontecerá. Daqui algumas horas, "Financeiro aprovar" finaliza; o gateway permitirá a passagem e "Realizar compra" será iniciado. Enquanto isso, "TI aprovar" continua pendente. Quando "TI aprovar" finalizar, nada acontecerá.

Esse tipo de fluxo é bastante comum quando você tem por exemplo diversas instâncias de aprovação, ou um colegiado, mas não precisa que todos finalizem para dar andamento no processo.

Se o valor de "K" não for definido, o gateway irá esperar todas as conexões chegarem para dar sequência no processo. No desenho acima, "Realizar a compra" será ativada somente quando "RH aprovar", "Financeiro aprovar" e "TI aprovar" forem finalizadas. Esse comportamento é similar ao gateway paralelo convergente.

Cuidado especial

Você deve ter extra cuidado ao utilizar o gateway inclusivo como elemento convergente. Você deve ter certeza que existem condições no processo para que o número correto de 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 somente 2 forem acionadas, e o elemento convergente estiver configurado com seu valor "K" igual a 3, 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 condicional inclusivo divergente, representado pela cor rosa;

  • O gateway condicional inclusivo convergente, representado pela cor verde;

Gateway condicional inclusivo divergente legado

Assim como no gateway condicional inclusivo divergente, cada conexão de saída deve ter uma condição associada. Após avaliar as condições associadas a cada uma das saídas, um ou mais caminhos podem ser ativados.

A principal diferença é que, nas versões legadas, por ele for funcionar exclusivamente como divergente, se ele estiver em uma posição convergente também, dará sequencia no processo todas as vezes que for acionado, após o valor "K" ter sido atingido.

Veja o exemplo abaixo. No modo legado, o gateway exclusivamente divergente não tem nenhuma função convergente. Isso significa que, se "K" é igual a 1, quando a tarefa A finalizar, C e D serão testadas e poderão iniciar. Porém, quando B finalizar, C e D serão, novamente, testadas e poderão iniciar novamente.

Esse comportamento não é o novo padrão do Zeev, como vimos acima. No novo desenhador, o gateway tem dupla função, convergente e divergente. Portanto, o gateway dará sequencia no processo após "K" ser atingido, porém fará isso somente 1 vez.

Demonstração prática

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

Atualizado