# Lab 11.2 — DMN & Low-Code: Exercícios Práticos Guiados

### DMN: Exercícios Guiados

<p align="right">Credits to:<img src="/files/3dNI8Wu9TT20EDWS3SHT" alt="" data-size="line"> </p>

Pratique e experimente a criação de decisões utilizando **Decision Model and Notation – DMN**, através de exercícios práticos orientados:

* **Dias de Férias**: um exercício de nível intermédio. Vai criar um modelo de raiz, utilizar tabelas de decisão, trabalhar com diferentes políticas de acerto (*hit policies*), diferentes construções e expressões **FEEL**. Finalmente, irá implementar (*deploy*) e testar o modelo.

<figure><img src="/files/r3TtelRjUE1Lr2hxHd4E" alt=""><figcaption></figcaption></figure>

**Call Center**: um exercício de nível avançado. Vai criar um modelo de raiz, definir tipos de dados, consumir serviços de decisão DMN a partir de nós de decisão e utilizar mais construções e expressões **FEEL**. Finalmente, irá implementar e testar o modelo.

<figure><img src="/files/1Q01zqSR6bkUnaWNGbF1" alt=""><figcaption></figcaption></figure>

> Estes são exercícios guiados independentes, pelo que não precisa de realizar o caso de uso anterior para poder avançar para o seguinte.

***

### Introdução ao DMN

**O que é o DMN**\
Consulte a explicação do [DMN](http://omg.org/dmn) no site da OMG:

> “O DMN é uma linguagem e notação de modelação para a especificação precisa de decisões de negócio e regras de negócio. O DMN é facilmente legível pelos diferentes tipos de pessoas envolvidas na gestão de decisões. Estes incluem: profissionais de negócio que especificam as regras e monitorizam a sua aplicação; analistas de negócio.
>
> O DMN foi concebido para funcionar em conjunto com o **BPMN** e/ou **CMMN**, fornecendo um mecanismo para modelar a tomada de decisão associada a processos e casos. Embora BPMN, CMMN e DMN possam ser utilizados de forma independente, foram cuidadosamente concebidos para serem complementares. De facto, muitas organizações necessitam de uma combinação de modelos de processos para os seus fluxos de trabalho prescritivos, modelos de casos para as suas atividades reativas e modelos de decisão para as suas regras de negócio mais complexas e multicritério. Essas organizações beneficiarão da utilização dos três padrões em conjunto, selecionando o mais adequado para cada tipo de modelação de atividade. É por isso que BPMN, CMMN e DMN constituem realmente a “tríplice coroa” dos padrões de melhoria de processos.”

***

#### Red Hat Process Automation Manager e Red Hat Decision Manager

Estes fornecem um conjunto de ferramentas gráficas que permitem criar decisões utilizando DMN e um motor leve que pode executar essas decisões. O motor e as ferramentas de criação são desacoplados, podendo ser escalados de forma independente.

***

#### Conjunto de Ferramentas

Sob a égide do **KIE**, encontra várias ferramentas disponíveis para a criação de decisões:

* **Business Central** (no RHPAM) ou **Decision Central** (no RHDM)
  * Uma interface mais orientada para utilizadores de negócio.
* [**Business Automation VSCode Extension**](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-extension-red-hat-business-automation-bundle)
  * Extensão para IDE de programadores (**Visual Studio Code**) que permite visualizar e editar BPMN, DMN e Cenários de Teste diretamente no VSCode.
* [**GitHub Chrome Extension**](https://chrome.google.com/webstore/detail/bpmn-dmn-test-scenario-ed/mgkfehibfkdpjkfjbikpchpcfimepckf)
  * Extensão de navegador que permite visualizar e editar ficheiros BPMN, DMN e Cenários de Teste diretamente no GitHub.
* [**KIE Sandbox**](https://kiegroup.github.io/kogito-online/#/)
* [**BPMN.new**](http://bpmn.new) – Editor online gratuito para processos de negócio.
* [**DMN.new**](http://dmn.new) – Editor online gratuito para modelos de decisão.
* [**PMML.new**](http://pmml.new) – Editor online gratuito para *scorecards*.
* [**Learn DMN in 15 minutes**](https://learn-dmn-in-15-minutes.com/)
  * Um percurso guiado num site sobre os elementos do DMN.

***

#### O Editor DMN

O editor DMN é composto por vários componentes:

* **Decision Navigator**: mostra os nós usados no *Decision Requirements Diagram* (DRD, o diagrama) e as decisões por trás desses nós. Permite navegação rápida no modelo.
* **Decision Requirements Diagram Editor**: a área de trabalho onde o modelo pode ser criado.
* **Palette**: contém todos os elementos de construção DMN que podem ser usados num DRD (ex.: Nó de Entrada, Nó de Decisão, etc.).
* **Expression Editor**: editor no qual podem ser criadas expressões em caixas DMN, como tabelas de decisão e expressões literais.
* **Property Panel**: fornece acesso às propriedades do modelo (nome, *namespace*, etc.), dos nós, etc.
* **Data Types**: permite ao utilizador definir tipos de dados (complexos).

<figure><img src="/files/4cTKKP3EMUeuQ7quwmHX" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1Gbm3zMUoW18Xli9QnKf" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/SklA2fI3BdiSN2iJv9VR" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ulht-jcb.gitbook.io/fundamentals-of-information-systems/lab-11/lab-11.2-dmn-and-low-code-exercicios-praticos-guiados.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
