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

Este é o segundo artigo de uma série dedicada ao estudo de elementos avançados de BPMN.

No artigo anterior iniciamos o estudo dos marcadores de atividades, vimos que cada marcador tem uma função específica que determina o comportamento de uma atividade durante sua execução. Neste artigo daremos andamento a este estudo finalizando a explicação ao que diz respeito a estes atributos.

Atividades de Múltiplas Instâncias (Multi-Instace Activity)

Representado por um marcador de 3 barras paralelas verticais presente na parte inferior central da atividade, dispara múltiplas instâncias da mesma atividade.

O marcador de múltiplas instâncias pode ser aplicado a uma tarefa como em um subprocesso.

O atributo de múltiplas instâncias permite que uma atividade tenha “N” repetições, podendo ser instanciada em paralelo diversas vezes.

Neste exemplo, o processo demostra o fluxo do processo de “Cadastro de Orçamentos”, no qual há uma tarefa para cadastrar orçamento. Esta tarefa permite que um ou mais orçamentos sejam cadastrados ao mesmo tempo. Quando a tarefa de cadastro dos orçamentos finalizar, o processo enviará estes cadastros para a tarefa que avaliará os orçamentos para escolher o vencedor.

Subprocesso ad-hoc

Um subprocesso ad-hoc indica um conjunto de atividades desempenhadas sem uma sequência pré-definida pois suas tarefas (tasks) não são conectadas pelo fluxo de sequência (sequence flow).

Subprocesso ad-hoc

É importante ressaltar que não existe uma obrigatoriedade na execução de todas as tarefas de um processo ad-hoc.

Estas atividades estão relacionadas, geralmente, a atividades humanas onde a quantidade de vezes e a ordem são definidas pelo executor.

O exemplo acima trata de um subprocesso ad-hoc. Como o subprocesso não possui um fluxo de sequência, suas atividades podem ser executadas sem sequência ou obrigatoriedade.

Tarefa de Compensação (Compensation)

A tarefa de compensação é uma tarefa particular e não faz parte do fluxo normal de um processo. Em alguns momentos na modelagem de processos de negócios, precisamos “desfazer” uma atividade ou processo e em alguns casos, quando desfeito, precisamos gravar esta operação, o que requer uma etapa exclusiva representada por uma tarefa de compensação (compensation).
Este “desfazer” o processo poderia ser representado por um subprocesso, gerando um fluxo muitas vezes complexo. A tarefa de compensação resolve este problema com apenas uma tarefa.

A tarefa de compensação é representada como uma tarefa normal, mas com um pequeno símbolo que se parece com o botão de rebobinamento num leitor de áudio (dois pequenos triângulos apontando para a esquerda).

A tarefa de compensação é utilizada exclusivamente para executar a compensação de uma atividade já realizada no processo.

Sua conexão é realizada através da associação de compensação (compensation association) e ligado ao evento anexado a atividade já realizada. Este evento é conhecido como catch compensation.

No exemplo acima, por uma determinada condição do processo, a atividade “Reservar van”, já realizada, deverá ser compensada, levando ao seu cancelamento.

Subprocesso de Transação (Transiction)

Transação é um tipo de subprocesso que contém um conjunto de atividades, logicamente relacionadas, e pode seguir um protocolo transacional específico. Ele faz com que todas as suas atividades sejam completadas com sucesso ou canceladas (compensadas).

O subprocesso de transação é representado por um retângulo de bordas arredondadas e linha dupla e pode ser representado tanto na forma contraída (collapsed) como na forma expandida (expanded).
A fronteira da atividade será uma linha dupla que indicará que trata-se de uma transação.

Subprocesso de Transação (Transiction)

Para que o subprocesso de transação seja finalizado com sucesso todas as suas atividades devem ser completadas. Veja o exemplo abaixo que demostra a representação do subprocesso de transação.

O exemplo acima demostra que é necessário que a reserva da van e do passeio no parque sejam concluídos para que o processo de reservas seja concluído com sucesso, levando a atividade de faturar comprador. Caso a reserva da van seja concluída e do passeio não, a reserva da van é cancelada (e vice-versa). No caso de cancelamento, um evento intermediário de cancelamento (cancel), mostrará o caminho que o fluxo irá seguir (fracasso), levando a execução da atividade “Avisar da indisponibilidade”. Erro (error): quando isto ocorrer significa que nenhuma conclusão bem sucedida como também nenhuma conclusão fracassada ocorreu. Neste caso usa-se a exceção para mostrar o perigo. Quando um perigo é detectado, a atividade é interrompida (sem compensação) e o fluxo prossegue pelo evento intermediário de exceção (erro).

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:

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

  1. Fabiano, satisfação!

    Conforme o artigo, não há obrigatoriedade de execução das tarefas em Ad-hoc. Como poderei demonstrar, segundo a notação, um conjunto de atividades que necessitam de ser executadas sem que haja uma ordem lógica entre elas?

  2. Ola!, primeiramente parabéns pelo conteúdo, estou aprendendo BPMN e gostaria tirar uma duvida sobre o evento de compensação, tenho uma atividade, analisar cadastro, no meu entendimento, apos realizar a analise, o fluxo seguiria no caso de conformidade, no contrario eu penso em ativar um evento de compensação, cancelar solicitação, baseado na ideia da atividade analisar cadastro já ter sido executada e por algum motivo, não foi possível seguir em frente…

    não sei se ficou claro, muito obrigado pela atenção :)

  3. Olá João. A tarefa de compensação só pode ser utilizada em subprocessos transacionais. O que ela seja acionada é o evento de compensação relacionado à tarefa que foi realizada e precisa ser desfeita (compensada). Mas o evento de compensação só é acionado se houver algum erro durante a transação. Em geral, esse conjunto de elementos em BPMN só é utilizado em processos automatizados onde a transação é controlado pelo sistema.

  4. Paulo, sua questão é bastante interessante. Pesquisamos bastante e constatamos não há na notação visual um elemento ou marcador para este nível de especificidade da representação que você está buscando. Assim, nossa recomendação seria utilizar um subprocesso ad hoc e utilizar os parâmetros do elemento para registrar quais são as atividades obrigatórias. Se é muito importante que isso seja apresentado visualmente, há outros recursos como: associar anotações às tarefas obrigatórias, sinalizando que elas devem ser executadas, ou usar um código de cores diferenciado para estas tarefas.

  5. Primeiramente, gostaria de parabenizá-la pelos seus artigos eles veem me ajudando muito a entender o mundo BPMN.
    Eu tenho uma dúvida sobre múltiplas instancias. Se eu usar esse marcador em uma tarefa isso quer dizer que as outras tarefas que seguem também vão ser repetidas a quantidade de vezes que eu determinei?
    Agradeço desde já!
    Um abraço

  6. Olá Kellyane. O multi instanciamento vale apenas para a atividade que leva o marcador. Se uma atividade tem o marcador de múltiplas instancias, ele executará todas elas antes de dar a atividade como finalizada e passar para a próxima. Se você precisa que as demais atividades também sigam com o multi-instanciamento, há duas opções: colocar o marcador de multi instancia em cada uma (implicando no entendimento que será um lote que andará todo junto de uma atividade para a outra) ou colocá-las em um subprocesso e clocar o sinal de multi instancia no subprocesso (possibilitando que cada instancia do subprocesso possa estar em uma atividade diferente, mas que todas elas terão que ser concluídas para o término do subprocesso e o avanço para as etapas seguintes.

  7. Passei simplesmente para agradecer.
    Essa série de escritos sobre elementos avançados, será de muita valia em minha preparação para o Concurso Dataprev 2016

  8. Olá Nobre! tudo bem?

    Agradecemos seu comentário, é de grande valor.
    Ficamos muito felizes em saber que nosso conteúdo tem ajudado na capacitação e conhecimento de muita gente como você.
    Conte conosco sempre que precisar.
    Abraço.

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>