Eventos

Evento Intermediário de Mensagem(Intermediate Message Event)

Um evento intermediário que pausa o fluxo até que uma mensagem específica chegue (captura) ou que envia uma mensagem ao seguir adiante (lançamento). Representa a comunicação entre participantes ao longo do processo.

O Evento Intermediário de Mensagem (Intermediate Message Event) modela a troca de mensagens durante a execução do processo — diferente do Evento de Início de Mensagem, que apenas dispara uma nova instância.

Ele tem duas variações:

  • Captura (catch): o token aguarda no evento até que a mensagem correspondente seja recebida. O marcador de envelope aparece vazado (contorno).
  • Lançamento (throw): ao ser alcançado, o evento envia uma mensagem e o token segue imediatamente. O marcador de envelope aparece preenchido (sólido).

A mensagem sempre cruza a fronteira de um Pool (chega de outro participante) e é normalmente ligada a um Fluxo de Mensagem (Message Flow).

Quando usar e evitar

Quando usar

  • Quando o processo precisa esperar por uma comunicação externa antes de continuar (ex.: aguardar a confirmação de pagamento de um cliente).

  • Para modelar handshakes assíncronos entre dois Pools (participantes distintos).

  • Quando o recebimento não deve iniciar uma nova instância, mas sim retomar uma já em andamento.

Quando NÃO usar

  • Para iniciar o processo a partir de uma mensagem — use o Evento de Início de Mensagem (Message Start Event).

  • Quando o recebimento é a primeira coisa que a atividade faz e você quer semântica de tarefa: prefira uma Tarefa de Recebimento (Receive Task), que pode ter marcadores de loop e anexos de borda.

  • Para comunicação dentro do mesmo Pool — mensagens representam troca entre participantes; dentro do mesmo processo use Fluxo de Sequência.

Exemplo de negócio

Aguardar confirmação de pagamento do cliente

Diagrama BPMN: Aguardar confirmação de pagamento do cliente
Aguardar confirmação de pagamento do cliente

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

Abrir no editor HEFLO →

Passo a passo

O diagrama mostra o Pool do fornecedor processando um pedido.

  1. O processo inicia quando o pedido é registrado.
  2. A tarefa Emitir fatura gera a cobrança e a envia ao cliente.
  3. O Evento Intermediário de Captura de Mensagem (destacado) pausa o fluxo: o token fica parado aqui até que a mensagem de confirmação de pagamento chegue do cliente.
  4. Assim que a mensagem é recebida, o token avança para Liberar envio e o processo termina.

Observe que sem esse evento o fornecedor liberaria o envio antes de confirmar o pagamento — o evento de captura impõe o ponto de sincronização.

Diferenças

Diferença entre Evento Intermediário de Lançamento de Mensagem e Tarefa de Envio

Ambos enviam uma mensagem, mas a Tarefa de Envio (Send Task) é uma atividade: consome tempo de trabalho, pode ter marcadores de loop/multi-instância e aceita eventos de borda. O Evento de Lançamento de Mensagem é atômico e instantâneo — apenas dispara a mensagem e o token segue. Use a tarefa quando o envio é um trabalho modelável; use o evento quando é só uma notificação em trânsito.

Diferença entre Sinal e Mensagem

A Mensagem (Message) é direcionada a um destinatário específico (comunicação ponto a ponto entre dois participantes). O Sinal (Signal) é uma transmissão (broadcast): quem estiver ouvindo reage, sem destinatário definido. Prefira Mensagem para conversas 1-para-1 entre Pools; prefira Sinal para eventos de difusão como “promoção lançada”.

FAQ

Qual a diferença visual entre captura e lançamento de mensagem?

O evento de captura mostra o envelope apenas com o contorno (vazado); o de lançamento mostra o envelope preenchido (sólido). A borda do círculo é dupla e fina em ambos, pois são eventos intermediários.

Posso usar um evento intermediário de mensagem anexado à borda de uma tarefa?

Sim. Um evento de mensagem anexado à borda (Boundary Message Event) reage a uma mensagem enquanto a atividade está em execução. Se for interrompente, cancela a atividade; se não-interrompente, dispara um caminho paralelo sem interromper.

Elementos relacionados