Blog da iProcess - Compartilhando conhecimento em BPM e RPA

Estudo de caso: Boas práticas no uso de gateways em BPMN

BPMN é a melhor notação para representar a lógica da execução de um processo de negócio, mas um processo bem mapeado na notação passa pela escolha certa no uso dos elementos da notação. Muitas vezes, não há uma forma única de representar um processo, mas com certeza o contexto do processo poderá nos ajudar a definir a forma de criar o diagrama de forma mais clara.

As ferramentas de mapeamento aderentes à notação BPMN nos ajudam a nos certificar se o diagrama que criamos está correto, mas ele consegue apenas validar se os elementos estão conectados da forma correta.

Por exemplo, no processo abaixo, inspirado no caso de um leitor que recentemente nos encaminhou esta dúvida:

No processo, a lógica que estamos tentando mapear é de que, depois da tarefa “Verificar documentos”, pode ou não necessitar “Digitalizar documentos” e pode ou não necessitar “Confirmar se documentos são válidos”. Ou seja, há casos em que realiza só uma dessas tarefas, as duas, ou em algumas situações nenhuma, indo direto para “Analisar documentação”.

Você identificou algum problema no uso da notação? Mas tem, e a ferramenta (no caso o Bizagi) avisou:

Mensagem de erro na validação de diagrama do Bizagi: “Um gateway deve ser usado para dividir em fluxos distintos ou unificá-los em um único; os dois comportamentos no mesmo gateway não é suportado.”

Olhe novamente. O gateway exclusivo “Precisa verificar a autenticiade?” tem duas entradas e duas saídas. Pela notação BPMN, o gateway exclusivo pode ser de divisão (split) ou de unificação (merge) do fluxo. Usar um mesmo gateway para representar as duas coisas pode gerar confusão tanto na interpretação humana quanto se o processo for ser automatizado.

A solução para isso seria separá-lo em dois – um para unificar os fluxos que vêm do gateway anterior e outro para verificar a condição para dar seguimento ao fluxo, assim:

Desta forma, garantimos que a lógica do processo esteja íntegra na sua representação. Entretanto, isso faz com que o processo tenha três gateways encadeados, o que não é muito legal. Neste caso, o que podemos recomendar?

Se a lógica implica em uma combinação de execução de atividades “e-ou”, podemos usar o gateway inclusivo. Este tipo de gateway tem o propósito de gerenciar a divisão/unificação do fluxo de acordo com uma combinação de possibilidades. Como resultado, teríamos o processo modelado assim:

O gateway “Providências especiais” identifica se o processo precisa ser digitalizado, se precisa de verificação de autenticidade, de ambas as tarefas ou de nenhuma delas.

Veja que algumas boas práticas foram agregadas para dar ainda mais legibilidade ao processo:

  • Nomear os conectores que saem do gateway de acordo com a condição que leva àquela transição: Por exemplo, a seta de cima implica na necessidade de digitalização, e a de baixo na verificação de autenticidade. Evite usar verbos no infinitivo pois as setas não representam uma ação a ser realizada, e sim uma condição que deve existir para que o fluxo siga aquele caminho.
  • Transformar a transição do meio em “default” (ou padrão), que tem uma linha cruzada na origem do conector. Esta é a forma de se dizer em BPMN que, se o gateway não identificar nenhuma condição, então ele segue pela default.
Para entender mais sobre os diferentes tipos de gateways básicos da notação BPMN, confira também este artigo:
https://blog.iprocess.com.br/2012/11/um-guia-para-iniciar-estudos-em-bpmn-ii-gateways/

16 respostas

  1. Após a atualização do Bizagi (2.9) esta regra vem exigindo revisão de mapeamentos realizados. Tenho verificado, para facilitar inclusive a leitura pelas partes interessadas, a necessidade de incluir “marcador” (X) nos gateway de junção em razão da sequencia de elementos de decisão.

  2. Kelly, estou me iniciando no mundo da modelagem de processos e tenho uma dúvida. Qual a melhor forma de representar uma interface entre dois sistemas distintos? POr acaso já houve algum estudo de caso nesse sentido?

    1. Olá Fabrício,
      A UML é bastante focada na interação entre sistemas. Para isso o Diagrama de Sequência pode ser uma interessante ferramenta.
      Em BPMN, existe um tipo de diagrama específico para modelar a lógica do processo de interação entre participantes externos ao processo (sistemas podem ser vistos como participantes em BPMN). É o Diagrama de Coreografia. Temos dois artigos sobre esse tipo de diagrama (infezmente o Bizagi não modela esse tipo de diagrama, mas outras ferramentas como o Yaoqiang têm suporte a ela): https://blog.iprocess.com.br/2013/08/bpmn-2-0-novos-diagramas-e-elementos-introducao-a-coreografia/

    1. Olá Caroline, isto acontece porque você está tentando utilizar um fluxo de sequência para conectar elementos de pools diferentes, e isto não é uma representação válida. Na verdade, do seu gateway você tem que ter uma sequência para um evento de mensagem, e então a mensagem ter a seta para a outra pool. Cada pool é um processo diferente, e a comunicação entre eles se dá sempre por fluxo de mensagem (seta tracejada) e nunca por fluxo de sequência.

  3. Olá kelly, em primeiro lugar, quero agradecer por seu artigo, pois muito esclarecedor.
    Porém, ainda tenho uma dúvida, estou modelando um processo em uma empresa de logistica e, tenho uma dúvida quanto a Gateway que devo utilizar para uma opção que podem ter várias saídas, como por exemplo.

    Tenho que identificar o modelo e dependendo desse modelo, tenho vários tipos de ações que podem ser aplicadas, como por exemplo: Limpeza, dependendo pode ser um ou outro tipo de atualização etc…

    1. Olá Samuel, obrigada por sua visita ao nosso blog.
      Se o seu gateway pode prever a combinação de um ou mais caminhos de acordo com o modelo, então deve usar um gateway inclusivo.

  4. Nunca tive a prática de nomear os conectores de acordo com a condição (apenas SIM ou NÃO), pois nunca utilizei mais de duas variáveis. Me ajudou a olhar o fluxo de outra forma.
    Obrigada pela contribuição.

    1. Olá Elias, essa definição depende do editor que você está usando para modelar o processo. No Bizagi Modeler geralmente ao acionar a função de validação, se houver algum problema detectado, ele automaticamente abre uma janela de apoio com todas as mensagens de erro de modelagem (conectores soltos, elementos incorretos, etc).
      Se ainda tiver dificuldades, sugiro consultar o manual da ferramenta na versão específica em que você está usando (pode ser diferente da minha).

  5. Bom dia!
    Alguém pode me ajudar com a questão abaixo?
    Não estar aparecendo a tela de detalhes após clicar em “Propriedades” sobre uma box dentro do fluxo. Antes abria uma tela de opções onde eu editava.

    1. Oi Georges, isso pode variar dependendo da ferramenta que você está usando. Se for no Bizagi, você pode ter acidentalmente movido a seção de propriedades transformando-a em uma janela móvel. Ela pode estar por baixo da janela principal do Bizagi, ou se você trabalha com telas estendidas, ela pode estar perdida fora da área de visão das telas que você tem da área de trabalho. Infelizmente não conheço uma configuração específica para colocá-la no lugar, quando tive esse problema fui tentando mover, abrir, realocar, até o componente voltar para o lugar.
      Se ainda tiver dificuldades, sugiro consultar o manual da ferramenta na versão específica em que você está usando (pode ser diferente da minha).

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MAIS VISTOS

Torne-se um líder em iniciativas em RPA, a próxima turma inicia em agosto!... (continuar lendo)
Participe deste evento exclusive e gratuIto e se prepare para as transformações que IA irá... (continuar lendo)
Veja agora as ações que foram realizadas através das doações de todos os participantes deste... (continuar lendo)

Inscreva-se na nossa Newsletter

seers cmp badge