Curta o BPMVision no Facebook! E saiba tudo sobre BPM!


  • Desenvolvido Por Iago Melanias

    Acompanhe o BPMVision!


    Cadastre seus dados para receber: A agenda semanal, promoções exclusivas e as notificações das novas publicações!

    Fique por dentro de todas as novidades e acompanhe tudo sobre BPM!




    quinta-feira, 9 de agosto de 2012

    Diferença entre Gateways de Evento!

    É muito comum ver pessoas se confundindo no momento em que vão utilizar um gateway de evento ou utilizando-os de forma incorreta para representar alguns fluxos do processo. Chegou o momento de acabar com todas as dúvidas relacionadas à eles!

    Existem 3 tipos de gateways baseados em eventos:

    • Event-Based Gateway:
    • Exclusive Event-Based Gateway:
    • Parallel Event-Based Gateway:

    O Event-Based Gateway(Gateway Baseado em Eventos) é utilizado para bifurcar o fluxo do processo baseado em um evento que ocorra antes de outro evento, ou seja, ao chegarmos em um fluxo de processo que aguarda por receber os documentos ou o prazo de expiração dos documentos, o evento que ocorrer primeiro inabilitará o outro evento. O fluxo seguirá a partir do evento que ocorreu primeiro.

    No fluxo abaixo, após solicitar os documentos o fluxo aguarda receber os documentos ou aguardar 5 dias. O evento que ocorrer primeiro impede o outro evento de ocorrer e o fluxo segue normalmente. Se "Receber Documentos" ocorrer antes de "Aguardar 5 dias" então a tarefa "Analistar Documentos" será realizada e o evento "Aguardar 5 dias" será abortado juntamento com o fluxo no momento da decisão.

    (Clique na imagem para ampliar)

    O Exclusive Event-Based Gateway e o Parallel Event-Based Gateway sempre são gateways utilizados para instanciar o processo, então sempre são utilizados no começo do processo sem o Start Event(Bolinha Verde).

    O Exclusive Event-Based Gateway funciona da mesma forma que o Event-Based Gateway mas só é utilizado quando se deseja deixar o Start Event implícito.

    O processo abaixo funciona da mesma maneira do processo acima. Porém este omite os Start Events e os End Events.

    (Clique na imagem para ampliar)

    O Parallel Event-Based Gateway também é somente utilizado no começo do processo por se tratar de um gateway instanciador.

    Quando utilizamos um Parallel Event-Based Gateway, para que o processo seja instanciado, é necessário que todos os eventos ligados ao gateway ocorram. Caso isto não aconteça o processo não é instanciado.

    Na processo abaixo o processo só será instanciado depois que os eventos "Receber Documentos" e "Receber Fotos" ocorrerem. Antes disso o processo não será instanciado!

    (Clique na imagem para ampliar)

    Espero que com este post os gateways de evento tenham ficado mais fáceis de entender. Embora os gateways de evento Exclusive e Parallel não sejam muito usados, é sempre interessante saber como eles funcionam!


    Se ficou ainda alguma dúvida, não deixe de perguntar nos comentários. Será um prazer responder!




    2 comentários:

    1. Opá! Estou usando a notação 1.2 BPMN. Usando ferramenta livre Oryx. Se eu colocar um evento de início para o Exclusive Event-Based Gateway e o Parallel Event-Based Gateway, por exemplo, recebimento de email de acionamento de suporte, está certo?

      ResponderExcluir
    2. Olá Marcus!

      Segundo a especificação BPMN 2.0 NÃO é correto! Pois este elemento é utilizado apenas para instanciar o processo, assim como descrito no artigo.

      Outro detalhe é que o Parallel Event-Based Gateway só surgiu na versão 2.0, então não deveria ter como você utiliza-lo no BPMN 1.2 ( peço a gentileza de conferir novamente a sua versão).

      Mas um detalhe éh que não vejo motivos para utilizar este fluxo que você descreveu. O que posso imaginar um cenário para você ter dois eventos paralelos depois de iniciar com o recebimento de uma mensagem encaminhada pelo suporte é:
      1) Tem um start event de mensagem (do suporte), logo após, tem um PARALLEL gateway (sem ser nenhum destes de eventos!) que bifurca em dois intermediate events! Mesmo assim isto não representaria eventos paralelos. Apenas se você sincronizasse a execução deles ao final!

      Espero ter esclarecido! Qualquer dúvida é só perguntar!

      Obrigado pela presença! Já curtiu o BPMVision no facebook? Tem uma caixinha ao lado no menu para curtir caso deseje!

      Um forte abraço!
      Bruno Barrios
      BPMVision

      ResponderExcluir

    Vamos disseminar as informações! Escreva seus comentários aqui e curta este artigo!