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:

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

A notação BPMN (Business Process Model and Notation), atualmente na versão 2.0, reúne um conjunto de elementos intuitivos e robustos, que auxiliam usuários técnicos e de negócio na documentação de seus processos em diferentes níveis de detalhes, de maneira que possam mapear, de maneira padrão, todos os processos de negócios de sua organização.

A lista de elementos gráficos de BPMN apresenta desde elementos essenciais para a modelagem dos processos, utilizados em uma documentação simples, até elementos avançados, requeridos para desenhar modelos de processos complexos.

Dedicaremos os artigos semanais de janeiro para contribuir com o estudo dos elementos avançados, requeridos para a compreensão de uma modelagem complexa.

Marcadores de Atividades

Abordaremos neste primeiro artigo os marcadores de atividades, conhecidos também como atributos especiais.

Os marcadores de atividades ou atributos especiais tem o objetivo de indicar o comportamento específico de uma atividade durante sua execução.

Marcadores de Atividades

Marcadores de Atividades

No artigo “Um guia para iniciar estudos em BPMN”, vimos que atividades (activities) representam um trabalho realizado em uma etapa do processo de negócio e podem ser do tipo “Tarefa” (task) ou “Subprocesso” (subprocess).

Subprocesso

Um subprocesso representa um conjunto de atividades realizadas dentro de um processo de negócio. São representados graficamente de duas formas, contraído ou expandido.

A Imagem acima demostra o subprocesso contraído (collapsed), representado pelo símbolo “+” indicando a existência de outro nível de detalhe, que pode ser expandido (expanded).

Subprocesso contraído

subprocesso contraído

Subprocesso contraído (Busca de informações): No exemplo acima o processo inicia-se com a execução da tarefa de solicitação de reembolso, após sua execução o fluxo segue dando início ao subprocesso que buscará as informações das despesas. Após a análise destas informações, o subprocesso é finalizado voltando ao fluxo do processo principal da solicitação de reembolso e partindo para a tarefa da aprovação do gestor.

Subprocesso Expandido

O mesmo subprocesso pode ser representado de forma expandida (expanded), apresentando o seu conjunto de detalhes no próprio processo “pai”.

Subprocesso Expandido

Exemplo de subprocesso expandido: O mesmo fluxo do subprocesso contraído é executado, porém o subprocesso de busca de informações apresenta o detalhamento de suas atividades visíveis no processo “pai”.

Atenção: O fluxo do processo “pai” não pode atravessar de forma alguma a fronteira do subprocesso.

subprocesso Expandido fronteira atravessada

Uma regra importante no BPMN é que um subprocesso nunca pode ter sua fronteira cruzada pelo fluxo de sequência. O fluxo de sequência apresenta a ordem de execuções das atividades em um processo e nunca entre processos. Os fluxos de sequência de entrada e saída devem ser ligados no limite do subprocesso (sua borda), e não deve iniciar e terminar os eventos no nível de expansão dentro do retângulo arredondado (subprocesso expandido), conforme mostra a figura acima.

Loop – Atividade cíclica

Representado por uma linha circular com seta (conforme imagem abaixo), atributo em atividades que simula a operação “do-while”, uma atividade pode ser executada várias vezes em ciclo.

Utilizada quando o número de repetições não é conhecido;
A atividade de repetição será repetida enquanto a condição do loop for atendida.

Loop

Loop – Atividade cíclica

Uma atividade de loop terá uma expressão booleana que é avaliada para cada ciclo. Se a expressão for verdadeira, então irá continuar. O loop irá avaliar a expressão após a realização da atividade, isto significa que atividade será realizada pelo menos uma vez.

Loop subprocesso

No exemplo acima, o subprocesso “Seleção de Candidato” avalia candidatos a serem selecionados para entrevista. A expressão booleana para este loop poderia ser “O candidato não passou na seleção?” se a resposta for “verdadeira” então a atividade será realizada novamente e se for “falsa” o processo seguirá seu fluxo.

Em nosso próximo artigo:
Continuaremos o estudo sobre os Marcadores de Atividades, iniciado neste primeiro artigo.


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