Slide 1

Slide 1 text

DMN for Developers by Guilherme Carreiro (DMN tooling lead) karreiro.com / / / KIE Live #11 October 20th

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Everyone

Slide 4

Slide 4 text

string "123" 300 Everyone

Slide 5

Slide 5 text

string "123" 300 Everyone DMN engine

Slide 6

Slide 6 text

string "123" 300 Everyone DMN engine

Slide 7

Slide 7 text

string "123" 300 User DMN engine DMN editor in 4 steps

Slide 8

Slide 8 text

1. Installation 1

Slide 9

Slide 9 text

2. Visual notation 2

Slide 10

Slide 10 text

2 learn-dmn-in-15-minutes.com/learn/visual-notation

Slide 11

Slide 11 text

3. Data Types 3

Slide 12

Slide 12 text

3 Vioaltion Type String Actual Speed Number Speed Limit Number Fine Amount Number Name Number String Driver Age Number Name String Points Number

Slide 13

Slide 13 text

3

Slide 14

Slide 14 text

3

Slide 15

Slide 15 text

3

Slide 16

Slide 16 text

4. Decision logic 4

Slide 17

Slide 17 text

4

Slide 18

Slide 18 text

learn-dmn-in-15-minutes.com/learn/decision-logic http:/ /learn-dmn-in-15-minutes.com/learn/the-feel-language 4

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

Bonus step

Slide 21

Slide 21 text

. Execution

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

def create @violation = Violation.new(violation_params) respond_to do |format| if @violation.save result = DmnModel.execute(@violation) # Execute via REST API driver = @violation.driver driver.points += result['Fine']['Points'] driver.suspended = result['Should be suspended?'] == 'YES' driver.save! format.html { redirect_to @violation, notice: 'Violation was successfully created.' } else format.html { render :new } end end end

Slide 27

Slide 27 text

def create @violation = Violation.new(violation_params) respond_to do |format| if @violation.save result = DmnModel.execute(@violation) # Execute via REST API driver = @violation.driver driver.points += result['Fine']['Points'] driver.suspended = result['Should be suspended?'] == 'YES' driver.save! format.html { redirect_to @violation, notice: 'Violation was successfully created.' } else format.html { render :new } end end end

Slide 28

Slide 28 text

https:/ /github.com/karreiro/dmn-on-rails-example

Slide 29

Slide 29 text

Review

Slide 30

Slide 30 text

Installation

Slide 31

Slide 31 text

Visual notation Installation

Slide 32

Slide 32 text

Visual notation Data Types Installation

Slide 33

Slide 33 text

Visual notation Decision logic Data Types Installation

Slide 34

Slide 34 text

https:/ /bit.ly/dmn-cookbook

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

string "123" 300 Thank you! karreiro.com/talks