Contêiner para um processo. Participante de uma interação. A troca entre pools acontece apenas por fluxos de mensagens. Pode ser recolhido para ocultar detalhes.
Uma faixa dentro do pool que indica quem executa as tarefas (cargo, papel, departamento ou sistema de TI).
Tipo não especificado. Usado nas primeiras fases da modelagem, quando o método de execução ainda não foi definido ou quando ele não é relevante para o objetivo do diagrama. Em essência, um marcador que depois é refinado.
Executada por uma pessoa por meio de uma interface de software: um formulário no CRM, uma tela em um app web, uma tarefa em um gerenciador. A diferença chave em relação à tarefa manual é que a pessoa trabalha dentro do sistema que monitora o status da tarefa.
Executada por uma pessoa sem a participação do motor BPM. O sistema não consegue detectar automaticamente o início ou o fim desse trabalho.
Executada automaticamente por um programa ou serviço. Nenhuma pessoa está envolvida. É o tipo mais comum em processos executáveis.
Envia uma mensagem para um participante externo específico (outro processo ou sistema) e termina imediatamente, sem aguardar resposta. Padrão «atire e esqueça».
Aguarda uma mensagem recebida de um participante externo. O processo pausa nessa tarefa até a mensagem chegar.
Variante especial: a Receive instanciadora (instantiated): se essa tarefa for o primeiro passo do processo, a própria recepção da mensagem cria uma nova instância (alternativa ao evento de início por mensagem).
Executa um script embutido (código) definido diretamente dentro do modelo do processo. Diferente da tarefa de serviço, o código não chama nenhum sistema externo — ele roda dentro do motor BPM.
Invoca um motor de decisões (por exemplo uma tabela DMN). As entradas são avaliadas contra um conjunto de regras e uma decisão é retornada.
Pequenos ícones na parte inferior central do retângulo da tarefa. Indicam o comportamento — não o seu tipo.
| Marcador | Significado | Exemplo |
|---|---|---|
| ↻ Loop | A tarefa se repete enquanto a condição for verdadeira (uma instância, várias iterações) | Revisar o documento → enviar → se rejeitado, repetir |
| ∥ Múlt. inst. em paralelo | São iniciadas N instâncias ao mesmo tempo — uma por item da coleção | Enviar a notificação a todos os aprovadores ao mesmo tempo |
| ≡ Múlt. inst. sequencial | As mesmas N instâncias, mas uma após a outra | Entrevistar cada candidato em sequência |
| ⏪ Compensação | Tarefa de reversão: executa apenas quando a compensação é acionada, para desfazer uma ação já concluída | «Cancelar reserva» após «Reservar» já ter sido executado |
| ~ Ad-hoc | As tarefas dentro do subprocesso são executadas em qualquer ordem, podem se repetir ou ser puladas; eventos de início/fim não são permitidos dentro | Escolha livre de passos durante uma consultoria ao cliente |
| + Subprocesso | Atividade composta com uma sequência interna oculta; os fluxos não atravessam sua borda | «Processamento do pedido» oculta 10 passos internos |
Atividade composta marcada com «+». Contém sua própria sequência de passos. Os fluxos não podem atravessar sua borda. Eventos intermediários são anexados à borda.
Borda grossa. Referencia um subprocesso global (p. ex. «Compras») reutilizado em diferentes processos.
Marcador «~». As atividades internas podem ser executadas em qualquer ordem, repetir-se ou ser puladas. Eventos de início/fim não são permitidos dentro.
Borda tracejada dentro de um processo. Disparado por um evento de início enquanto o pai está ativo. Interrompe — cancela o pai. Não interrompe — executa em paralelo.
Controlam ramificação e convergência. Um gateway não é uma tarefa! A decisão é tomada antes do gateway.
O gateway mais comum. Ao dividir, ativa exatamente um caminho de saída — aquele cuja condição é satisfeita primeiro. Se nenhuma condição é atendida, o processo falha com erro (por isso é boa prática sempre definir uma ramificação «padrão»). Ao convergir, deixa cada token que chega passar imediatamente, sem esperar os demais.
Analogia: uma bifurcação na estrada onde você segue apenas em uma direção.
Ao dividir, ativa todos os caminhos de saída simultaneamente, sem condições — sem verificações. Ao convergir, aguarda tokens em todos os caminhos de entrada e somente quando todos chegam é que passa um único token adiante.
Analogia: um gerente distribui tarefas a cinco funcionários e aguarda até que todos os cinco terminem.
Híbrido entre XOR e AND. Ao dividir, ativa um ou mais caminhos conforme as condições — cada condição é avaliada de forma independente. Ao convergir, aguarda tokens apenas nos caminhos que foram realmente ativados (não em todos, como o AND).
Analogia: um bufê — você pega um prato, dois ou todos, mas nunca zero.
É fundamentalmente diferente dos demais: roteia não pelos dados, mas pelo evento que ocorrer primeiro. Após o gateway são colocados eventos intermediários de espera (temporizador, mensagem, condição, sinal). Assim que um dispara, os demais são cancelados.
Analogia: você pediu uma pizza — se não chegar em 60 minutos, ligue para a pizzaria; se chegar antes, você come.
Usado quando a lógica de ramificação não pode ser expressa pelos gateways padrão. A condição de convergência é definida por uma expressão (por exemplo, «continuar quando 3 de 5 ramos tiverem finalizado» ou «quando chegar a primeira resposta e tiverem se passado 10 minutos»).
Um losango sem marcador. Semanticamente equivalente ao exclusivo (XOR) — o padrão BPMN permite omitir a cruz. Alguns metodologistas consideram má prática, pois prejudica a legibilidade: não fica claro se o autor esqueceu o marcador ou escolheu XOR de propósito.
Um evento é algo que ocorre (um fato), ao contrário de uma tarefa (ação ativa). Representados por círculos.
Catching (marcador sem preenchimento) — espera. Throwing (preenchido) — dispara. Eventos de borda: interrompem (sólido) e não interrompem (tracejado).
Ícones de bpmn-font (Camunda). «—» = não definido pelo padrão.
| Tipo | Início | Intermediário | Fim | |||||
|---|---|---|---|---|---|---|---|---|
| Normal | Subpr. ev. | Não int. | Captura | Borda | Borda não int. | Dispara | ||
| Vazio (None) | — | — | — | — | — | |||
| ✉ Mensagem | ||||||||
| ⏱ Temporizador | — | — | ||||||
| ⚡ Erro | — | — | — | — | — | |||
| ▲ Sinal | ||||||||
| 📋 Condicional | — | — | ||||||
| ↗ Escalação | — | — | ||||||
| ⬤ Terminar | — | — | — | — | — | — | — | |
| ⏪ Compensação | — | — | — | — | ||||
| ✖ Cancelar | — | — | — | — | — | — | ||
| ➡ Link | — | — | — | — | — | — | ||
| ⬠ Múltiplo | ||||||||
| ➕ Mult. paralelo | — | — | ||||||
Troca com um destinatário específico: e-mail, chamada, HTTP, push. Disponível em todas as posições.
Data/hora, intervalo, contagem regressiva (prazo). Apenas catching.
Falha grave. Catching — apenas em borda. Throwing — apenas final.
Espera de uma condição externa («o forno aqueceu»). Apenas catching.
Difusão (em oposição a uma mensagem endereçada). Qualquer assinante reage.
Encerra imediatamente toda a instância do processo. Apenas final.
E se depois de a tarefa 3 terminar já não fizer sentido continuar a tarefa 2? Aplica-se então o padrão abaixo:
«Teletransporte» do fluxo. Um par throw + catch substitui uma seta longa. Apenas intermediário.
Reverte uma ação já executada. A tarefa compensatória é vinculada por uma associação.
Vai do subprocesso para o pai, sem ser um erro. Pode ser não interruptora.
Apenas no contexto de transações. Final — rollback. Borda — catch.
«Folha de papel» com o canto dobrado. Representa informação que é criada, consumida ou transferida entre tarefas dentro de uma instância do processo. Só existe enquanto a instância estiver viva.
Um cilindro. Armazenamento persistente que sobrevive à instância do processo: banco de dados, registro, repositório de arquivos. As tarefas leem e escrevem nele.
Parâmetros do processo ou subprocesso na sua borda. Entrada — o que é fornecido externamente; saída — o que é retornado. Seta com triângulo vazado/preenchido.
Um comentário ligado a qualquer elemento por uma linha tracejada. Não afeta a execução — serve apenas para esclarecer o diagrama ao leitor.
Retângulo tracejado de cantos arredondados. Agrupamento visual de elementos (por exemplo, «todas as tarefas de logística»). Não possui semântica de execução; os fluxos podem atravessar sua borda livremente.
Seta sólida com ponta preenchida. Define a ordem de execução dentro de um mesmo pool. Não pode atravessar bordas de pool.
Fluxo condicional (com um pequeno losango na origem) — só dispara se a condição for verdadeira. Usado em setas de saída de uma tarefa sem gateway.
Fluxo padrão (com um traço na origem) — caminho de reserva de um gateway XOR/OR ou de uma bifurcação condicional, ativado quando nenhuma das condições é satisfeita.
Seta tracejada com ponta vazada. Conecta pools diferentes — uma mensagem trocada entre participantes independentes. Não é usado dentro de um mesmo pool.
Subprocesso com borda dupla. Semântica ACID: ou todas as ações internas são confirmadas com sucesso, ou toda a transação é revertida via um evento Cancel (com compensações). Usada para manter consistência em operações distribuídas.
Crie seu primeiro diagrama BPMN grátis — sem cadastro nem cartão de crédito.
Começar a gerar fluxogramas BPMN com IA