Um dos aspectos mais relevantes da notação BPMN em relação a outras notações está na forma como a lógica do processo pode ser explícita através do uso de gateways.
Em BPMN, os gateways são utilizados para criar divisões (fork) de um fluxo em múltiplos caminhos ou para sincronizá-los (join), fazendo com que caminhos paralelos ou alternativos voltem a seguir na mesma trilha a partir de um determinado ponto. De acordo com o símbolo utilizado dentro do elemento de gateway (losango), temos diferentes lógicas de execução do processo, como paralelo, exclusivo, inclusivo ou exclusivo baseado em eventos.
Às vezes, exemplos de modelos estáticos não são suficientes para esclarecer como e quando esses elementos devem ser usados.
Então que tal uma animaçãozinha?
Gateway Exclusivo
(Exclusive Data-Based Gateway)
O gateway exclusivo funciona como uma porta “XOR” cuja definição do próximo passo se dá por uma regra baseada em dados. Isto quer dizer que, quando o fluxo chegar a este ponto, uma informação já existente no contexto do processo determinará por qual sequência ele deverá seguir.
Quando um fluxo é dividido em dois ou mais caminhos utilizando este gateway, cada saída é determinada por um valor diferente do dado.
Por exemplo: para uma informação “Resultado da avaliação” os resultados podem ser “aprovado” ou “reprovado”. Em um outro exemplo, a informação verificada pode ser “Valor total”, em que os resultados podem ser aplicados para regras definidas como “até 1000 reais”, “de 1001 a 5000 reais” ou “acima de 5000 reais”. O importante no uso deste gateway é perceber que os resultados são autoexcludentes, ou seja, não há possibilidade de o fluxo seguir por mais de um resultado – por isso este gateway se chama “exclusivo”.
O fluxo sincronizado utilizando este gateway implica no entendimento de que, dentre as entradas que chegam ao ponto de sincronização, apenas uma é suficiente para seguir com o andamento do processo (o gateway não aguardará outros fluxos de sequência para prosseguir).
Veja na animação abaixo como funciona este gateway em um fluxo controlado (com um gateway sincronizando os fluxos antes de continuar o processo).
Veja na animação abaixo como funciona este gateway em um fluxo não controlado (sem um gateway sincronizando os fluxos antes de continuar o processo).
Gateway Paralelo
(Parallel Gateway)
O gateway paralelo funciona como uma porta lógica “E”.
O fluxo dividido em mais de um caminho utilizando este gateway implica no entendimento de que, a partir daquele ponto, todas as saídas seguirão em paralelo (ou seja, não existe dependência de ordem de sequência entre as atividades nos diferentes fluxos).
Quando o fluxo é sincronizado utilizando este gateway, entende-se que o processo só seguirá para o próximo elemento quando todos os caminhos de entrada forem sincronizados no ponto de sincronização.
Veja na animação abaixo como funciona este gateway em um fluxo controlado (com um gateway sincronizando os fluxos antes de continuar o processo).
Veja na animação abaixo como funciona este gateway em um fluxo não controlado (sem um gateway sincronizando os fluxos antes de continuar o processo).
Gateway Inclusivo
(Inclusive Data-Based Gateway)
O gateway inclusivo funciona como uma porta lógica “OR”, também baseado em dados.
O fluxo dividido em mais de um caminho utilizando este gateway implica no entendimento de que, a partir daquele ponto serão seguidos (ativados) os caminhos cujas regras sejam verdadeiras para cada caso, podendo ser uma ou mais.
O fluxo sincronizado utilizando este gateway implica no entendimento de que todos os fluxos que foram ativados no ponto de divergência e que sincronizam neste ponto devem alcançar o gateway para que o processo possa ser seguimento.
Veja na animação abaixo como funciona este gateway em um fluxo controlado.
Veja na animação abaixo como funciona este gateway em um fluxo não controlado (sem um gateway sincronizando os fluxos antes de continuar o processo).
Gateway Baseado em Eventos
(Event-Based Gateway)
O gateway baseado em eventos utiliza lógica semelhante ao gateway exclusivo baseado em dados para determinar qual fluxo será seguido. Entretanto, em vez de um dado ou informação, o que determinará a sequência do fluxo é a ocorrência de um evento. Este gateway deve ser utilizado quando os próximos passos dependem de eventos distintos: por exemplo – a chegada de uma mensagem OU uma condição que se torne verdadeira OU um determinado prazo atingido. O primeiro evento a ocorrer será o que dará sequência no fluxo do processo
O gateway baseado em eventos nunca é usado para sincronização. Por sua lógica ser exclusiva, caso os fluxos tenham que ser sincronizados a partir de um ponto, usa-se o gateway exclusivo para unificar os caminhos.
Veja na animação abaixo como funciona este gateway em um fluxo sem sincronização.
Estas as animações foram capturadas do antigo site Dive into BPM (que deixou de existir em 2018) e são utilizadas como parte do processo de discussão e aprendizado sobre elementos BPMN do curso Modelagem de Processos com BPMN 2.0 da iProcess Education.
16 Responses
Excelente apresentação. Muito didático e prático. Não tem como não aprender e fixar. Grato
Parabéns. Ótimas explicações
Grato por partilhar… Muito Bom!
Notável clareza, qualidade, didática de visão lógica: é sempre ótimo ler os assuntos abordados. Agradeço por compartilhar seus conhecimentos conosco.
Parabéns e obrigado pelo conteudo !
Olá Kelly, excelente trabalho e parabéns.
Obrigada! Eram algumas gravações de um antigo site que tínhamos guardado aqui… Infelizmente o site não existe mais, então resolvemos compartilhar esse material, as animações ajudam bastante a compreender a lógica de cada tipo de gateway né?
Muito bom
Muito obrigado por compartilhar, bastante útil.
Muito bom! Obrigada pelo conteúdo.
Muito obrigadoooo, excelente material. BPMN faz parte do edital do concurso nacional unificado, bloco 2.
Muito bom. Parabéns!!!
Excelente…. didática e altamente explicativa com a animação.
Parabéns pelo conteúdo. A minha dúvida é: quando devo utilizar um fluxo controlado e quando um não controlado. Tem algum critério objetivo pra escolher entre um ou outro?
Olá Gabriel! A opção realmente depende da necessidade do modelo de deixar mais ou menos explícito o controle, embora todas as descrições de boas práticas com as quais já cruzamos geralmente recomendam usar o fluxo controlado, como garantia de clareza da leitura do modelo.
Além disso, existem algumas ferramentas de automação com BPMS que exigem que a modelagem use sempre fluxos controlados, para que o motor de execução do processo faça a interpretação correta e controlada do fluxo de trabalho.
Parabéns! Explicação com excelente didática.