Workflow - Manual do Usuário > Modelador > Modelagem > BPMN > Escopos dos elementos

Escopo dos elementos

 

A Engine processará os elementos de acordo com o escopo em que estão inseridos:

Em geral, cada elemento é visível apenas no escopo em que está inserido, tendo as seguintes exceções:

 

Atividades

Determina um passo ou tarefa a ser realizado para andamento do processo e precisa de um participante. Geralmente, um usuário final ou uma aplicação.

A atividade (activity) pode conter zero ou mais SequenceFlow de entrada e de saída, considerando os seguintes critérios:

Também será utilizado o subprocesso embutido que é uma atividade que contém outras atividades e são dependentes do processo pai, não podendo ser iniciados fora deste processo.

  Propriedades da flowNode suportadas pelas atividades
SINCHRONIZATION false;
INCOMING Um ou mais;
OUTGOING Um ou mais.

 

Gateways

Para o Workflow foram utilizados os gateways dos tipos: exclusivo, inclusivo e paralelo (ou exclusive, inclusive e parallel). Abaixo seguem suas definições:

Gateways Linhas de execução convergentes Linhas de execução divergentes
>Exclusivo - Exclusive São utilizados para juntar caminhos alternativos sem sincronização. Quando um SequenceFlow de entrada atinge o gateway , ele é direcionado para o SequenceFlow de saída. Quando divergentes, são utilizados para criar caminhos alternativos no fluxo de um processo, sendo que apenas um deles pode ser seguido. Os caminhos são representados por SequenceFlow de saída do gateway , cada qual associado a uma expressão condicional. Durante a execução, o primeiro caminho que tiver a expressão avaliada como verdadeira é seguido e os demais são descartados. O gateway pode conter um SequenceFlow de saída padrão, o qual não está associado a uma expressão. Quando nenhuma das expressões do gateway for verdadeira, se existir um SequenceFlow padrão, este é seguido. Caso contrário, é gerado um erro de execução.
Inclusivo - Inclusive Quando convergentes, os gateways tipo inclusivo direcionam o fluxo de entrada para o fluxo de saída de forma sincronizada, esperando por todos os caminhos tomados a partir do gateway divergente correspondente. Os gateways tipo inclusive, quando divergentes, diferem do tipo exclusive apenas pelo fato de suportar paralelismo. Todas as expressões dos SequenceFlow de saída são avaliadas, e todas que forem verdadeiras tem o caminho correspondente seguido.
Paralelo - Parallel No gateway convergente, os caminhos são combinados e direcionados para o SequenceFlow de saída após todos os SequenceFlow de entrada atingi-lo. No gateway divergente, todos os caminhos de saída são executados paralelamente sem validar nenhuma expressão.

Abaixo encontram-se os exemplos de cada gateway utilizado:

Exclusivo: Gateways exclusivos são utilizados para a tomada de decisão onde um caminho pode ser seguido.

- Propriedades da FlowNode :

  • synchronization : false;
  • incoming - define o conjunto de SequenceFlows de entrada do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode : um ou mais;
  • outgoing - define o conjunto de SequenceFlows de saída do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode: um ou mais.

- Utiliza a expression dos SequenceFlows de saída para validá-los;

- Segue por apenas um caminho de saída;

- O primeiro SequenceFlow cuja expression for verdadeira define o caminho de saída, os demais caminhos são ignorados. Caso nenhuma expressão for verdadeira e houver um SequenceFlow definido como default o fluxo segue por ele, senão, é gerado erro informando que o processo não foi definido corretamente;

Inclusivo:são utilizados para a tomada de decisão onde um ou mais caminhos podem ser seguidos.

- Propriedades da FlowNode :

  • synchronization : true;
  • incoming - define o conjunto de SequenceFlows de entrada do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode : UM ou mais;
  • outgoing - define o conjunto de SequenceFlows de saída do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode: UM ou mais.

- Utiliza a expression dos SequenceFlows de saída para validá-los;

- Segue por um ou mais caminhos de saída;

- Todos os SequenceFlows cuja expression for verdadeira são usados como caminhos de saída paralelos. os demais caminhos são ignorados. Caso nenhuma expressão seja verdadeira, ocorre o seguinte:

  • se houver um SequenceFlow definido como default o fluxo segue por ele,senão, é gerado erro informando que o processo não foi definido corretamente;

Paralelo - Gateways paralelos possuem duas utilidades:

1. convergência de caminhos paralelos para sincronizá-los antes de continuar o fluxo;

2. divergência de um caminho simples em “ n ” caminhos paralelos.

- Propriedades da FlowNode :

  • synchronization : true;
  • incoming - define o conjunto de SequenceFlows de entrada do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode : UM ou mais;
  • outgoing - define o conjunto de SequenceFlows de saída do nó, e a quantidade e a disponibilidade depende da especialização do FlowNode: UM ou mais.

- Segue por todos os caminhos de saída definidos (não utiliza a expression para validá-los).

Apesar da especificação da BPMN não limitar o uso de expressões condicionais nos SequenceFlow pelos tipos de elemento conectados, no Workflow as expressões condicionais só podem ser utilizadas em SequenceFlow cujo elemento de origem é um gateway do tipo exclusive ou inclusive .

 

Eventos

Eventos acontecem durante um processo do negócio e afetam o seu fluxo. Geralmente possuem uma causa (trigger) ou um impacto (result) . São representados um círculo.

 

Inicial - Start Event

 

Intermediário - Intermediate Event

Trata-se de qualquer evento intermediário que está no fluxo de um processo ou subprocesso. É utilizado para indicar algumas mudanças de estado no processo.

 

Final - End Event

Os eventos de fim terminam a instância do processo. Usado para indicar o final de um processo e também para indicar o final de um subprocesso neste caso a execução do fluxo é retomada para o fluxo pai.

Abaixo são descritas as propriedades da flowNode suportadas por eventos, bem como as propriedades suportadas quando se tratar de um processo e/ou subprocesso:

  Propriedades do flowNode Quando o escopo for um processo Quando o escopo for um subprocesso
Eventos iniciais - Start events synchronization:true;
incoming: nenhum;
outgoing: somente um;
Single: ponto onde o processo é iniciado;
Parallel: dois ou mais pontos onde o processo é iniciado, cada Start é um caminho paralelo.
Há somente um start event para cada subprocesso. Os tipos suportados são:
Single: inicia o subprocesso;
Error: subprocesso para tratamento de erros;
Compensation:subprocesso para compensação;
Message: subprocesso para processamento de mensagem.
Eventos intermediários - Intermediate event synchronization:false;
incoming: um ou mais quando for throw e nenhum quando for catch;
outgoing: nenhum quando for throw e um ou mais quando for catch.
Link: Representa uma quebra em um SequenceFlow. A relação entre throw e catch é de um para um;
Message: representa uma mensagem enviada de um ponto do processo para outro. A relação entrethrow e catch é de N para N ;
Timer: indica uma pausa no fluxo do processo, não afeta caminhos paralelos, apenas o caminho no qual foi inserido. É throw ecatch ao mesmo tempo;
Error: é suportado como boundary event em qualquer Activity (exceto de compensação) . Funciona apenas como catch;
Compensation: é usado para compensação de qualquer atividade. A relação entrethrow e catch é de um para um, o throw é definido no fluxo normal do processo, ocatch herda o nome da atividade e é definido de acordo com o tipo dela:
- para a tarefa é definido como boundary event ;
- para subprocesso é implícito.
IDEM ao processo.
Eventos finais - End events synchronization:false;
incoming: um ou mais;
outgoing: nenhum.
Simple: indica que o caminho em questão terminou com sucesso. Caminhos paralelos continuam executando;
Error: faz throw para disparar um erro ocorrido no fluxo normal do escopo em que está inserido:
- se o nome for nulo, o catch é feito pelo tratador de erro padrão, caso contrário o catch é feito pelo subprocess que contém o Error Start Event de mesmo nome;
- caminhos paralelos do escopo em questão são abortados;
Terminate: indica que a instância do processo deve ser terminada imediatamente com status de erro. Caminhos paralelos são abortados e não executa compensação e nem tratamento de erros.
Message: é processado como um Intermediate Event do escopo pai do escopo pai do subprocess;
Error: se utilizado em um subprocesso de tratamento de erro. Termina o subprocesso em que está inserido (o de tratamento de erro), e refaz o throw do erro para o escopo pai.

Este artigo ajudou você?