BPMN: Modelando processos de negócio com elementos avançados (Parte III)

Prosseguindo com nosso estudo de elementos avançados, neste terceiro artigo da série abordaremos um dos elementos mais utilizados no fluxo de um processo de negócio: os Gateways.

Gateways

Gateways são os elementos de BPMN responsáveis por controlar iterações do fluxo, criando caminhos alternativos ou paralelos no mapeamento do processo ou unificando fluxos para continuação em uma mesma sequência de atividades.

No artigo Um guia para iniciar estudos em BPMN (II): Gateways, vimos também que o gateway é conectado ao fluxo através de setas de fluxo de sequência e é representado visualmente por um losango. O símbolo interno do losango identifica a interpretação lógica representada. Para um estudo completo sobre os gateways indicamos a leitura deste artigo.

Com foco em elementos avançados falaremos sobre dois dos cinco diferentes gateways.

Exclusive Event-Based Gateway

O desvio condicionado por evento é semelhante ao Gateway exclusivo (Databased Exclusive Gateway): indica pontos do processo em que o gateway exclusivo não se baseia em dados de processo, mas sim sobre as mensagens ou eventos externos. Esta forma é usada para exercer controle sobre a execução de determinadas atividades que ficam disponíveis até que um dos eventos sejam executados.

Gateway exclusivo condicionado por eventos – decisão depende do resultado dos eventos imediatamente posteriores a ele.

No gateway condicionado por um evento específico, normalmente o recebimento de uma mensagem determina o caminho que será tomado. Basicamente a decisão é tomada por um outro participante, com base em dados que não são visíveis ao processo e, assim, exigindo o uso do gateway baseada em eventos.

Podemos imaginar: quando nosso processo chegou ao evento baseado em gateway, vamos esperar até que algo aconteça. O evento geralmente é disparado por terceiros (por exemplo, o nosso cliente envia o pagamento para nós). Abaixo é a porta baseada em eventos típicos. Enviamos uma cotação para o cliente, aguardando o cliente confirmar o pedido. Se o cliente envia a confirmação, vamos preparar as mercadorias para o cliente. Se não receber qualquer confirmação do cliente após 15 dias, o pedido é cancelado. Veja o processo abaixo.

Gateway exclusivo condicionado por eventos – O primeiro evento disparado cancela os demais eventos. No exemplo acima, ou o processo recebe a confirmação do pagamento e envia o pedido, ou o processo é cancelado pelo pelo cliente por não ter confirmado em até 15 dias.

Complex

Gateway complexo é usado para modelar o comportamento de sincronização complexa. É sempre indicado que antes de utilizar o gateway complexo, tente usar a combinação de tipos diferentes de gateways.

Gateway Complexo – Criado para dar maior flexibilidade ao BPMN.

Uma Activation Condition Expression (Expressão de ativação de condição) é usada para descrever o comportamento preciso do gateway complexo.

Por exemplo, essa expressão poderia especificar que os tokens em três dos cinco fluxos de sequência de entrada são necessários para ativar o gateway do processo abaixo.

Gateway Complexo – Quando a combinação do fluxo não pode ser utilizada por nenhum outro gateway utiliza-se o gateway complexo.

Obrigado a todos e até nosso próximo artigo!


Confira todos os artigos deste guia de BPMN: Modelando processos de negócio com elementos avançados:

9 ideias sobre “BPMN: Modelando processos de negócio com elementos avançados (Parte III)

  1. Prezado Bom dia, eu tenho uma dúvida.

    Eu tenho um processo de decisão aqui na empresa de qual modalidade escolher para seguir o processo, ou seja, vou solicitar uma análise de balancete mais para cada tipo de empresa eu tenho um subprocesso de análise é diferente.
    Ex. atividade analise de balancete, vem a pergunta regime da empresa, para cada regime eu tenho um sub processo de análise Simples, Lucro presumido, Lucro Real, Real mensal, Real Trimestral. É escolhido um e os outros são cancelados.

    Qual Gateway eu poderia usar antes e depois?

    Obrigado,

  2. Olá Cleiton,

    Primeiramente gostaria de agradecer por sua participação em nosso blog e também pedir desculpas pela demora na resposta.

    Bom, vamos lá!

    Supomos que o Processo de Análise de Balancete inicie com a verificação e/ou cadastro dos dados da empresa em questão, nesta atividade deverá ser informada o tipo de empresa (Ex. categoria jurídica ou porte da empresa). Esta informação será utilizada para que o gateway, que virá na sequência do fluxo, possa interpretar o caminho que o fluxo seguirá no processo.

    É importante entender que este gateway indiferente do seu tipo NUNCA toma decisões, como falamos no artigo, ele apenas aponta a direção que o fluxo deverá seguir levando em conta a informação que lhe foi passada. No caso deste processo poderia ser a informação do porte da empresa (por exemplo).

    Levando em conta sua informação, que apenas um sub-processo é executado, temos a representação de um gateway exclusivo (Databased Exclusive Gateway), representando uma condição de fluxo exclusiva, em que apenas um dos caminhos criados a partir do gateway será seguido, de acordo com uma informação a ser testada (porte da empresa). Este gateway é representado visualmente por um losango vazio ou com um marcador de “x”.

    Este gateway realiza a leitura do porte da empresa e direciona para o sub-processo indicado.
    Poderíamos dizer que se o porte da empresa é “Super Simples” o gateway direcionaria para o “Sub-Processo de Análise Simples”, descartando todas as outras alternativas.

    Além de realizar separação dos fluxos, o gateway também pode unificar fluxos distintos em uma única sequência de atividades. Neste caso, o gateway exclusivo implica no entendimento que, dos caminhos que convergem a ele, o primeiro que chegar dará continuidade no fluxo do processo.

    Portanto teríamos no fluxo do seu processo dois gateways exclusivos, um divergente e outro convergente.

    Espero ter ajudado e caso ainda tenha dúvidas fico a disposição.

    Grande abraço!

  3. Olá, em primeiro lugar, parabéns pelo blog, os artigos são objetivos e muito úteis para o aprendizado.
    Tenho algumas dúvidas, poderia ajudar, por favor?

    1) Uma das últimas tarefas ao final de um processo é enviar uma pesquisa de satisfação para o cliente. Se ele responder, prossigo o fluxo registrando comentários do cliente e encerrando o processo. Se ele não responder em 1 semana, encerro o processo. Qual gateway utilizar? Fiquei em dúvida porque pode ocorrer um caminho e/ou outro caminho, mas qualquer combinação prossegue o fluxo. Teria que ser um gateway inclusivo baseado em eventos… Existe?
    2) No caso citado anteriormente, digamos que após seis meses o cliente responda a pesquisa de satisfação. Pela condição imposta, o prazo de uma semana terá se esgotado e o processo encerrado. Mas é preciso registrar o resultado da pesquisa. Como represento isso no diagrama?
    3) Não entendi a explicação sobre o gateway complexo. Seria possível dar um exemplo?
    Muito obrigado.

  4. Boa tarde.
    Gostaria de saber se o gateway exclusivo baseado em eventos pode ser usado também para convergência de fluxos. Tenho uma situação em que meu processo aguarda por uma manifestação externa, que pode ocorrer em um determinado limite de prazo, e segue quando a mesma chega ou quando o prazo é expirado. Em ambos os casos, o fluxo é seguido com uma atividade de avaliação de cenário. Representei a ramificação com o gateway exclusivo baseado em eventos, dividindo o fluxo para um evento de recebimento e um de tempo. Preciso convergir para a atividade Avaliar Cenário. Devo usar o mesmo gateway?

  5. Olá Rafael. Para esclarecer sua dúvida: o gateway exclusivo baseado em eventos é usado apenas para divergência de fluxos. Para unificá-los, você pode usar um gateway exclusivo comum, já que a lógica de convergência de fluxo é a mesma: fluxo exclusivo.

  6. Lendo a documentação do Bizagi(http://help.bizagi.com/processmodeler/en/index.html?gateways.htm), o símbolo aqui apresentado lá encontra-se com nome “event based gateway”, sendo outro o símbolo para “exclusive event based gateway”. A tradução para português do nome do símbolo está adequada?

  7. Olá Dario.
    Para sua pergunta 1), ao que você descreve o ideal seria mesmo usar um gateway baseado em eventos. Entretanto, não é um comportamento inclusivo. Ele é exclusivo: espera a resposta do cliente ou uma semana, o que ocorrer primeiro, certo? Se o cliente responder dentro do período de uma semana, ele seguirá por este fluxo e encerrará o processo. Senão, a outra opção será exclusivamente o esgotamento do prazo, que também encerrará o processo.
    Para a pergunta 2) infelizmente não há na notação um elemento para representar a reativação de um processo que já foi encerrado. se há mais trabalho do que o registro da pesquisa em seu processo, talvez tenha que considerar a criação de um processo ativado pela chegada da pesquisa preenchida.
    Quanto ao gateway complexo, ele é de fato difícil de exemplificar. Entendemos que a equipe que criou a notação BPMN o inventou como um “coringa”, que possa ser usado quando nenhum dos outros for aplicável. A ideia por trás dele é que a lógica para decidir qual (ou quais) fluxos de saída serão executados é muito complexa para ser representada com os demais. Digamos que o gateway mapeie as saídas A, B, C e D e você pode ter combinações (o que o caracterizaria como inclusivo) porém não qualquer tipo de combinação. Por exemplo: poderia ter as combinações “A e B”, “A e C”, A e D”, A, B e D”, e “A, C e D” mas nunca uma combinação que envolva as saídas B e C juntas. Na prática até hoje não identificamos situação em que tivesse que ser usado este gateway.

  8. Abelardo, a especificação BPMN oficial é apenas em inglês, e as traduções para português são livres. Por isso, podem variar entre autores e ferramentas.
    Mesmo nos termos em inglês, algumas ferramentas fazem adaptações. Na dúvida, recomendamos sempre pesquisar o elemento na especificação oficial pelo seu nome original (em inglês).

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>