Escolar Documentos
Profissional Documentos
Cultura Documentos
Guia Referencia bpmn20 dmn13 Mauricio Bitencourt v2021 09 20
Guia Referencia bpmn20 dmn13 Mauricio Bitencourt v2021 09 20
BPMN 2.0 – Business Process Model and Notation BPMN 2.0 – Business Process Model and Notation
Captura Acionamento
Tarefas (Tasks) são Transações Início Intermediários Fim Fluxos de Sequencia (Sequence Flows) definem a sucessão de transições
unidades atômicas (Transactions) são um de execução.
O subprocesso de evento é
O subprocesso de evento é
continua imediatamente.
Eventos condições não forem satisfeitas. Podem ser usados para representar o
sequencia do evento.
sequencia do evento.
caminho feliz (happy path) do processo.
o evento e conclui.
Atividades de Chamada
(Call Activity) são uma Subprocessos de Evento
processo pai.
Atividade de
referência síncrona a (Event Subprocess) são Fluxo Condicional (Conditional Flow) contém uma condição na qual define
Chamada
um processo reutilizado Subprocesso contidos num processo quando este fluxo será executado.
evento.
no processo atual. de Evento e ativados por um evento
de início, sendo
executado até o final ou
Subprocesso enquanto o seu contexto Posição
Compactado estiver ativo.
Elementos da notação e modelo BPMN 2.0 para documentação
Subprocesso (Collapsed Subprocess)
Compactado Simples (None):
são uma representação indicam pontos de início,
compactada do Subprocesso Expandido fim e mudanças de Fluxo de Mensagens
subprocesso onde (Expanded Subprocess) estado. (Message Flow) simboliza
Subprocesso
marcador (+) o torna Expandido são um agrupamento ou fluxos de informação que
Mensagem (Message): transpõem fronteiras
expandido. escopo de atividades recebimento e envio de
embutidas no processo. internas e externas de
mensagens.
uma organização. Podem
ser conectados a piscinas,
Temporal (Timer): ponto, tarefas e eventos de
Tipos de tarefas Marcadores instante, intervalo, e limite mensagem.
Enviar Subprocesso de tempo único ou cíclico.
www.projeler.com.br
Esta guia foi criada com a
Fontes de referência: Avenida Carlos Gomes, 222, 8º andar
ferramenta Camunda Modeler
www.bpmb.de/poster | www.omg.org/bpmn/ | www.omg.org/spec/DMN | learn-dmn-in-15-minutes.com Porto Alegre - RS Tel 51 2139 5920
DMN 1.3 – Decision Model and Notation FEEL – Friendly Enough Expression Language FEEL – Friendly Enough Expression Language
Fontes de Conhecimento (Knowledge Sources) possuem a string length(“Guia para Modelagem”) // 19 Tamanho
Fonte de Date Unidades temporais date and time("2019-08-12T22:22:22”)
Conhecimento sabedoria e regulação para a tomada de decisão, tais como, upper case(“Guia BPMN 2.0”) // GUIA BPMN 2.0 Caixa alta
normas, políticas, melhores práticas e conhecimento analítico.
lower case(“Guia BPMN 2.0”) // guia bpmn 2.0 Caixa baixa
Comparações
Exigências de Informação (Information Requirements) substring(“Guia BPMN 2.0”, 5, 4) // BPMN Parte da string
Exigência de representam uma obrigatoriedade de informação para as entradas Nome Operador Exemplo Descrição
Informação replace(“Guia BPMN 2.0”, “BPMN”, “DMN”) // Guia DMN 2.0 Substitui parte da string
de uma decisão. Testa se o valor de entrada é igual a
Igual ”iss”, ”pis”, ”cofins”
contains(“Guia BPMN 2.0”, “BPMN”) // true Verifica se contém a string um dos literais da lista.
Exigências de Conhecimento (Knowledge Requirements) são
string(123) // “123” Transforma em string Testa se o valor de entrada é menor
utilizadas para ligar a decisão a Conhecimento de Negócio Menor < < 10
Exigência de que o valor indicado.
Conhecimento quando necessário. Representam um refinamento dos requisitos
de lógica de decisão. Funções de Números Testa se o valor de entrada é menor
Menor ou igual <= <= 10
ou igual ao valor indicado.
Exemplo // Resultado Descrição
Exigências de Autoridade (Authority Requirements) demonstram Testa se o valor de entrada é maior
Exigência de Maior > > 10
onde ir para descobrir como tomar uma decisão. abs(-1) // 1 Valor absoluto que o valor indicado.
Autoridade
even(2) // true Número par Testa se o valor de entrada é maior
Maior ou igual >= >= 10
ou igual ao valor indicado.
odd(2) // false Número ímpar
Lógica de Decisão (Decision Logic)
sqrt(9) // 3.0 Raiz quadrada
Intervalos
E CONCLUSÃO
Início Fim Exemplo Descrição
Funções de Datas
Testa se o valor de entrada é maior ou igual ao
Tabela de Decisão (Decision Table) Exemplo // Resultado Descrição incluir incluir [1..10]
valor inicial e, se é menor ou igual ao valor final.
Entradas (Facts) Saídas (Results) day of week(date(“2020-12-31”)) // “Thursday” Dia da semana Testa se o valor de entrada é maior que o valor
Política excluir incluir ]1..10] ou (1..10]
de Anotações month of year(date(“2020-12-31”)) // “December” Mês do ano inicial e se é menor ou igual ao valor final.
Expressão Expressão de Nome da Nome da
Acerto de Entrada 1 Entrada 2..n Saída 1 Saída 2..n
week of year(date(“2020-12-31”)) // 53 Semana do ano Testa se o valor de entrada é maior ou igual que
incluir excluir [1..10[ ou [1..10)
o valor inicial e se é menor ao valor final.
Valor de Resultado Resultado
1
Entrada 2a 1a 2a Testa se o valor de entrada é maior que o valor
Valor de Funções de Listas excluir excluir ]1..10[ ou (1..10)
Entrada 1a inicial e menor que o valor final.
Valor de Resultado Resultado
OU 2 Exemplo // Resultado Descrição
Entrada 2b 1b 2b [date and time(“2015-03-16T12:00:00”) .. Testa se a data de entrada é maior ou igual a
(rules) date and time(“2016-03-16T12:00:00”)] data inicial e menor ou igual a data final.
Valor de Resultado Resultado concatenate([1, 2, 3], [4, 5]) // [1, 2, 3, 4, 5] Concatenar listas
3 –
Entrada 1c 1c 2c count([1, 2, 3, 4, 5]) // 5 Contar lista
Indiferente Disjunções
distinct values([1, 1, 2, 2, 3, 3, 4, 5]) // [1, 2, 3, 4, 5] Valores distintos
Expressão Descrição
flatten([1, [2, 3], [4, 5]]) // [1, 2, 3, 4, 5] Aplainar
2, 5, 7 Testa se o valor de entrada é 2, 5 ou 7.
max([1, 2, 3, 4, 5]) //5 Máximo
Políticas de Acerto (Hit Policy)
<2, >=7 Testa se o valor de entrada é menor que 2 ou maior ou igual a 7.
mean([1, 2, 3, 4, 5]) //3 Intermediário
U Unique Retorna somente um resultado (padrão quando implícito). 2, [5..7] Testa se o valor de entrada é 2 ou entre 5 e 7.
min([1, 2, 3, 4, 5]) / 1 Mínimo
Acerto A Any Muitas regras podem coincidir e terá a mesma saída. > date and time(“2016- Testa se a data de entrada é maior que a data fixa na regra da
Simples reverse([1, 2, 3, 4, 5]) // [5, 4, 3, 2, 1] Reverso 03-16T12:00:00”) tabela de decisão.
(Single Hit) P Priority Uma saída é selecionada por uma lista priorizada. sort([5, 4, 1, 2, 3]) // [1, 2, 3, 4, 5] Ordenação
F First A primeira saída é selecionada pela ordem das regras. sum([1, 2, 3, 4, 5]) // 15 Soma Negações
index of([“a”, “b”, “c”, “d”, “e”, “f”], “c”) // 3 Posição Expressão Descrição
O Output Resultados são ordenados a partir de uma lista de valores.
append([1, 2, 3, 4, 5], 6) // [1, 2, 3, 4, 5, 6] Adicionar not(3) A valor de entrada é qualquer valor numérico diferente de 3
Acertos R Rule Resultados são ordenados na ordem das regras.
Múltiplos list contains([1, 2, 3, 4, 5], 5) // true Contido not(>10) A entrada é qualquer valor numérico não maior que 10
(Multiple Hit) C Collect Lista de resultados é retornada em ordem arbitrária.
remove([“a”, “b”, “c”, “d”, “e”, “f”], 2) // [“a”, “c”, “d”, “e”, “f”] Remoção not(10, [20..30]) A entrada não é igual a 10 ou entre 20 ou 30
C+, C<, C>, C# Soma (sum), mínimo (min), máximo (max) e contador (count). sublist([1, 2, 3, 4, 5], 2, 3) // [2, 3, 4] Sublista not(“Aceito”) A entrada não corresponde à sequência de caracteres “Aceito”