Atividades

Subprocesso de Transação(Transaction Sub-Process)

Um subprocesso com semântica tudo-ou-nada: ou todos os passos concluem e a transação confirma, ou ela é cancelada e os passos concluídos são compensados. Desenhado com borda dupla.

O Subprocesso de Transação (Transaction Sub-Process) embrulha passos que devem ter sucesso como unidade — a clássica reserva de viagem: voo + hotel + pagamento. Seu protocolo tem três desfechos: sucesso (sai pelo fluxo normal), cancelamento (um Fim de Cancelamento dispara dentro → tratadores de compensação desfazem os passos concluídos → saída pela Borda de Cancelamento) e falha do protocolo (algo quebrou no meio; saída por borda de erro).

Quando usar e evitar

Quando usar

  • Para unidades de negócio tudo-ou-nada: reservas multi-itens, lançamentos coordenados, pedidos em pacote.

  • Quando os passos concluídos têm tratadores de compensação declarados, tornando o desfazer automático no cancelamento.

  • Quando o negócio distingue explicitamente confirmar / cancelar / falhar.

Quando NÃO usar

  • Para agrupamento comum sem semântica transacional — subprocesso embutido.

  • Quando os passos não podem ser compensados — o protocolo não teria com que desfazer.

  • Para transações ACID técnicas de banco — este é um protocolo de *negócio*, de vida muito mais longa.

Exemplo de negócio

Reservando uma viagem como transação

Diagrama BPMN: Reservando uma viagem como transação
Reservando uma viagem como transação

Abra este exemplo no editor de processos da HEFLO e explore o diagrama por dentro.

Abrir no editor HEFLO →

Passo a passo

  1. A Transação (destacada, borda dupla) reserva voo e hotel como unidade.
  2. Se o cliente desistir, o Fim de Cancelamento interno dispara: as reservas concluídas são compensadas automaticamente.
  3. O token sai pela Borda de Cancelamento para o caminho de reembolso — jamais deixando meia viagem reservada.

Diferenças

Transação vs. Subprocesso Embutido

Ambos contêm fluxo; só a transação carrega o protocolo cancelar-e-compensar (borda dupla, Fim/Borda de Cancelamento, compensação automática). Se nada precisa ser desfeito, o embutido comum basta.

FAQ

O que dispara a compensação dentro da transação?

Alcançar um Fim de Cancelamento dentro dela (ou um cancelamento externo). O motor então roda os tratadores das atividades concluídas em ordem reversa.

O que é o desfecho de 'falha do protocolo'?

Uma falha da própria transação (modelada com borda de erro) — nem sucesso limpo, nem cancelamento ordeiro.

Elementos relacionados