Material educativo

Referência BPMN 2.0

Participantes

Pool
Participant
Raia (Lane)
Lane

Pool

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.

Atendimento de pedidosVendasArmazémExpediçãoPedido feitoConfirmarpedidoEmbalarpedidoEntregarpedidoPedido entregue
Abrir no BP1 Modeler →
Um pool, um processo: o pedido passa de Vendas para Armazém e para Expedição — o pool coordena o trabalho
ClienteLoja onlineProdutonecessárioFazer pedidoPacote recebidoDesembalarprodutosPedidoconcluídoPedidorecebidoSeparar eembalarEnviar pacotePedido enviadoPedidoPacote
Abrir no BP1 Modeler →
Colaboração: o cliente e a loja são pools separados — eles interagem apenas por mensagens

Raia

Uma faixa dentro do pool que indica quem executa as tarefas (cargo, papel, departamento ou sistema de TI).

Suporte ao clienteAgente de suporteEngenheiroNovo chamadoClassificarchamadoDúvida ou bug?ResponderdúvidaCorrigir bugChamadofechadoDúvidaBug
Abrir no BP1 Modeler →
Raias dividem um processo por papel: o agente classifica o chamado, e um bug vai para a raia Engenheiro

Atividades (Activities)

Tipos de tarefa

Abstrata
Task (None)
Manual
Manual
De usuário
User Task
Envio
Send Task
Recebimento
Receive Task
Script
Script Task
De serviço
Service Task
Regra de negócio
Business Rule

Abstrata (None Task)

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.

Tarefa de usuário (User Task)

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.

Exemplos: aprovar uma solicitação no sistema, preencher um formulário, revisar um documento no portal do cliente.

Tarefa manual (Manual Task)

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.

Exemplos: assinar fisicamente um documento, ligar para o cliente, realizar uma reunião presencial, entregar uma encomenda por mensageiro.

Tarefa de serviço (Service Task)

Executada automaticamente por um programa ou serviço. Nenhuma pessoa está envolvida. É o tipo mais comum em processos executáveis.

Exemplos: uma requisição HTTP a uma API, uma gravação no banco de dados, uma chamada de microsserviço, executar um cálculo.

Tarefa de envio (Send Task)

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».

Exemplos: enviar um e-mail ao cliente, publicar um evento em uma fila de mensagens, enviar uma notificação via webhook.

Tarefa de recebimento (Receive Task)

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).

Exemplos: aguardar a resposta de uma contraparte, aguardar um callback do gateway de pagamento, aguardar a confirmação de entrega.

Tarefa de script (Script Task)

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.

Exemplos: converter um formato de dados, calcular um prazo, montar uma string para um e-mail, verificar uma condição.

Tarefa de regra de negócio (Business Rule Task)

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.

Exemplos: determinar um desconto pela categoria do cliente, calcular um prêmio de seguro, verificar uma solicitação contra uma política, classificar um chamado.
TarefaTarefamanualTarefa deusuárioTarefa derecebimentoTarefa deenvioTarefa descriptTarefa deserviçoTarefa deregra denegócio
Abrir no BP1 Modeler →
Tipos de tarefa: a forma é a mesma, só o ícone no canto indica como o trabalho é feito

Marcadores de tarefa

Pequenos ícones na parte inferior central do retângulo da tarefa. Indicam o comportamento — não o seu tipo.

Loop
Loop
Múlt. inst. ∥
Parallel MI
Múlt. inst. ≡
Sequential MI
Compensação
Compensation
Ad-hoc ~
Ad-hoc
Subprocesso +
Subprocess
MarcadorSignificadoExemplo
↻ LoopA 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 paraleloSão iniciadas N instâncias ao mesmo tempo — uma por item da coleçãoEnviar a notificação a todos os aprovadores ao mesmo tempo
≡ Múlt. inst. sequencialAs mesmas N instâncias, mas uma após a outraEntrevistar cada candidato em sequência
⏪ CompensaçãoTarefa 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-hocAs 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 dentroEscolha livre de passos durante uma consultoria ao cliente
+ SubprocessoAtividade composta com uma sequência interna oculta; os fluxos não atravessam sua borda«Processamento do pedido» oculta 10 passos internos
Contrato redigidoNegociartermosAssinarcontratoContratoassinadoAté ambos concordarem
Abrir no BP1 Modeler →
Loop: uma tarefa se repete — «Negociar termos» roda de novo até que as duas partes concordem
ComprasolicitadaPedirorçamentoEscolherfornecedorFornecedorescolhidoPor fornecedor
Abrir no BP1 Modeler →
Múltiplas instâncias em paralelo (três barras): «Pedir orçamento» roda uma vez por fornecedor ao mesmo tempo; o processo segue quando todos os orçamentos chegam
ViagemsolicitadaReservarhotelReservar vooVoo reservado?ViagemreservadaViagemcanceladaReversãosolicitadaCancelarreserva dehotelSimNão
Abrir no BP1 Modeler →
Compensação: «Cancelar reserva de hotel» só roda se a viagem for cancelada depois de o hotel ser reservado — ela é ligada por um evento de borda de compensação, não por um fluxo

Subprocesso

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.

Pedido recebidoPagar pedidoCobrarcartãoEnviar reciboEnviar pedidoPedido enviado
Abrir no BP1 Modeler →
Um subprocesso encapsula seus próprios passos: expandido, «Pagar pedido» os mostra com início e fim próprios; recolhido, «Enviar pedido» os oculta atrás do marcador «+»

Atividade de chamada (Call Activity)

Borda grossa. Referencia um subprocesso global (p. ex. «Compras») reutilizado em diferentes processos.

Diferença para um subprocesso embutido: no embutido os dados ficam acessíveis diretamente (escopo compartilhado com o pai). Já uma Call Activity é um processo separado — entradas e saídas exigem mapeamento de dados explícito: o que se passa na chamada e o que se recolhe no retorno.
VendasLeasingPedido feitoVerificarcréditoConfirmarpedidoPedidoconfirmadoLeasing solicitadoVerificarcréditoAssinarleasingLeasingassinado
Abrir no BP1 Modeler →
Call Activity (borda grossa): «Vendas» e «Leasing» chamam o mesmo processo global «Verificar crédito»

Subprocesso Ad-hoc

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.

Oferta aceitaPreparar primeiro diaPedirnotebookCriar contasEmitir cracháDesignarmentorPosto pronto
Abrir no BP1 Modeler →
Subprocesso Ad-hoc (~): as tarefas não têm fluxos — são feitas em qualquer ordem, repetidas ou puladas

Subprocesso por eventos

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.

Loja onlinePedido recebidoEmbalarpedidoEnviar pedidoPedido enviadoAlterar endereçoEndereçoalteradoAtualizarendereçoEndereçoatualizado
Abrir no BP1 Modeler →
Subprocesso por eventos (borda pontilhada): sem fluxo de entrada — a mensagem «Endereço alterado» o inicia enquanto o pedido está em andamento; o início tracejado não interrompe o fluxo principal

Gateways

Controlam ramificação e convergência. Um gateway não executa trabalho: apenas direciona o fluxo; a decisão é preparada pela tarefa anterior.

Exclusivo XOR
Ou um ou outro
Paralelo AND
E/E
Inclusivo OR
Um ou mais
Por eventos
Event-based
Complexo
Complex
Vazio
None

Gateway exclusivo (XOR)

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.

Exemplos: «Pedido pago? → Sim / Não», «Valor > 10 000? → Sim / Não».
Recomendação: formule a pergunta antes do gateway e coloque as respostas nas setas de saída.
Pedido pagoEscolherentregaTipo de entrega?Entregar aomensageiroPrepararpara retiradaEnviar pelocorreioPedidodespachadoMensageiroRetiradaCorreio
Abrir no BP1 Modeler →
Gateway XOR: exatamente um ramo é seguido; o XOR de convergência passa o pedido adiante sem esperar

Gateway paralelo (AND)

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.

Exemplos: envio do produto e emissão da fatura em paralelo; revisão simultânea de documentos por diferentes departamentos.
Antipadrão: não convirja com AND ramos que foram divididos por XOR ou que são percorridos apenas uma vez. O AND ficará esperando para sempre tokens em todas as entradas — o processo trava (deadlock). Após um XOR, convirja com um XOR (ou um losango vazio).
Pedido pagoEnviarmercadoriaEmitir faturaPedido concluído
Abrir no BP1 Modeler →
Gateway AND: envio e faturamento começam juntos; o AND de convergência espera pelos dois

Gateway inclusivo (OR)

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.

Exemplos: o cliente escolheu entrega e/ou retirada e/ou embalagem para presente — execute as opções selecionadas e aguarde a conclusão de todas.
Atenção: Gateways OR são mais difíceis de analisar. Em diagramas ramificados as regras de sincronização podem não ser óbvias. Nem todos os motores os suportam corretamente.
Pedido pagoO que contém?Enviar pacoteEnviar link dedownloadPedido concluídoBens físicosBens digitais
Abrir no BP1 Modeler →
Gateway OR: bens físicos, digitais ou ambos — um ou os dois ramos rodam, e o OR de convergência espera apenas pelos ramos ativados

Gateway baseado em eventos

É 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ê envia uma proposta a um candidato e espera: se ele responder, você segue; se passar uma semana sem resposta, passa ao próximo candidato.

Exemplos: aguardar o pagamento com um temporizador (não pago em 3 dias → cancelar o pedido); aguardar a resposta do cliente ou um prazo.
Pedido feitoEnviar faturaPagamentorecebidoEnviar pedidoPedido enviado3 diasCancelarpedidoPedido cancelado
Abrir no BP1 Modeler →
Gateway baseado em eventos: vence o que vier primeiro — o pagamento faz o pedido ser enviado, 3 dias sem ele o cancelam

Gateway complexo

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»).

Na prática: raramente usado e nem todos os motores BPM o suportam. Se uma combinação de XOR / AND / OR for suficiente, prefira-a.

Vazio (None / Exclusivo por padrão)

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.

Eventos (Events)

Conceitos-chave

Um evento é algo que ocorre (um fato), ao contrário de uma tarefa (ação ativa). Representados por círculos.

Início
Círculo fino
Intermediário
Círculo duplo
Fim
Círculo grosso

Catching (marcador sem preenchimento) — espera. Throwing (preenchido) — dispara. Eventos de borda: interrompem (sólido) e não interrompem (tracejado).

Tabela resumo de eventos

«—» = não definido pelo padrão.

TipoInícioIntermediárioFim
NormalSubpr. ev.Não int.CapturaBordaBorda não int.Dispara
Vazio (None)—————
✉ Mensagem
⏱ Temporizador——
⚡ Erro—————
▲ Sinal
📋 Condicional——
↗ Escalação——
⬤ Terminar———————
⏪ Compensação————
✖ Cancelar——————
➡ Link——————
⬠ Múltiplo
➕ Mult. paralelo——

Mensagem (Message)

Troca com um destinatário específico: e-mail, chamada, HTTP, push. Disponível em todas as posições.

Loja onlineTransportadoraPedido pagoEmbalarpacoteColeta solicitadaSolicitaçãorecebidaEntregarpacotePacote entreguePedido de coleta
Abrir no BP1 Modeler →
Mensagem: o evento de fim de mensagem da loja envia um pedido de coleta, e o evento de início de mensagem da transportadora inicia um novo processo

Temporizador (Timer)

Data/hora, intervalo, contagem regressiva (prazo). Apenas catching.

Segundas, 9:00PrepararrelatóriosemanalAprovarrelatórioRelatórioaprovado1 diaLembraraprovadorLembreteenviado2 diasEscalar aogerenteRelatórioescalado
Abrir no BP1 Modeler →
Temporizadores: um início programado, um lembrete não-interruptivo após 1 dia e um prazo interruptivo após 2 dias

Erro

Falha grave. Catching — apenas em borda. Throwing — apenas final.

Pedido feitoCobrarcartãoEnviar pedidoPedido enviadoPagamentorecusadoCancelarpedidoPedido cancelado
Abrir no BP1 Modeler →
Erro: se a cobrança no cartão falhar, o erro de borda interrompe a tarefa e o pedido segue para o cancelamento

Condicional (Conditional)

Espera de uma condição externa («o estoque fica abaixo do mínimo»). Apenas catching.

Pedido recebidoConfirmarpedidoItem emestoqueEnviar pedidoPedido enviado
Abrir no BP1 Modeler →
Condicional: após a confirmação, o processo espera até o item estar em estoque e então envia o pedido

Sinal (Signal)

Difusão (em oposição a uma mensagem endereçada). Qualquer assinante reage.

MatrizLojaDefeitoconfirmadoPrepararrecolhimentoProduto recolhidoProduto recolhidoRetirar dasprateleirasPrateleirasvazias
Abrir no BP1 Modeler →
Sinal: a matriz difunde «Produto recolhido»; cada loja que escuta esse sinal inicia seu próprio processo — sem precisar de fluxo de mensagens

Terminar (Terminate)

Encerra imediatamente toda a instância do processo. Apenas final.

ChamadoabertoAchar causa(45 min)CausaencontradaTentarajuste rápido(30 min)Ajustetestado
Abrir no BP1 Modeler →
Sem Terminate: cada ramo paralelo chega ao seu próprio fim; a instância só termina depois do mais longo, aos 45 minutos

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:

ChamadoabertoAchar causa(45 min)CausaencontradaTentarajuste rápido(30 min)AjustetestadoResolvido?ChamadoresolvidoNãoSim
Abrir no BP1 Modeler →
Com Terminate: se o ajuste rápido resolver o chamado, o fim Terminate encerra a instância inteira na hora, incluindo «Achar causa», ainda em execução
Pedido pagoEmbalarpedidoEnvioEnvioEnviar pedidoPedido enviado
Abrir no BP1 Modeler →
Link: o link throwing «Envio» encerra uma linha e o catching continua na seguinte — em vez de uma seta longa atravessando o diagrama

Compensação (Compensation)

Reverte uma ação já executada. A tarefa compensatória é vinculada por uma associação.

Pedido feitoCobrarcartãoTem estoque?PedidoconfirmadoPedido canceladoValor estornadoReembolsarpagamentoSimNão
Abrir no BP1 Modeler →
Compensação: o evento de fim de compensação aciona o evento de borda de «Cobrar cartão», já concluída, e seu handler reembolsa o pagamento

Escalação (Escalation)

Vai do subprocesso para o pai, sem ser um erro. Pode ser não interruptora.

PedidoembaladoEntregar pedidoIr até oclientePacote entregue2 horasEntrega tardiaPedido entregueEntrega tardiaAvisar oclienteCliente avisado
Abrir no BP1 Modeler →
Escalação: o subprocesso de entrega lança «Entrega tardia»; a borda não-interruptiva a captura e avisa o cliente enquanto a entrega continua

Cancelar (Cancel)

Apenas no contexto de transações. Final — rollback. Borda — catch.

Dados, artefatos, fluxos

Objeto de dados
Data Object
Repositório
Data Store
Entrada de dados
Data Input
Saída de dados
Data Output
Anotação
Text Annotation
Grupo
Group
Fluxo
Sequence Flow
Fluxo de mens.
Message Flow
Condicional
Conditional Flow
Padrão
Default Flow
Transação
Transaction

Objeto de dados (Data Object)

«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.

Exemplos: uma solicitação de cliente, um rascunho de contrato, um relatório montado ao longo do processo.

Repositório de dados (Data Store)

Um cilindro. Armazenamento persistente que sobrevive à instância do processo: banco de dados, registro, repositório de arquivos. As tarefas leem e escrevem nele.

Exemplos: CRM, ERP, base de dados de pedidos, arquivo de documentos.

Entrada / Saída de dados (Data Input / Output)

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.

Exemplos: na entrada do subprocesso «Compras» — uma lista de itens; na saída — uma fatura.

Anotação de texto (Text Annotation)

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.

Grupo (Group)

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.

Fluxo de sequência (Sequence Flow)

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.

Fluxo de mensagens (Message Flow)

Seta tracejada com ponta vazada. Conecta pools diferentes — uma mensagem trocada entre participantes independentes. Não é usado dentro de um mesmo pool.

Exemplos: o cliente envia o pedido para a loja online; o banco envia a confirmação de pagamento.

Transação (Transaction)

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.

Exemplos: reservar um pacote «voo + hotel + carro» — se algo falhar, tudo é cancelado.

Pronto para colocar o BPMN em prática?

Fale com a nossa equipe: mapeamos o seu processo e mostramos o BP1.ai executando BPMN com os seus próprios dados.

Contatar Vendas
Todos os diagramas foram desenhados no BP1 Modeler, um editor BPMN 2.0 gratuito — abra qualquer um para editar. Compilado por BP1.AI.