This article provides a comprehensive guide on using all the range functions available in Decision Model and Notation (DMN). These functions are essential for modelling business decisions using DMN to perform mathematical operations within DMN models. The user can use these functions across any logic document such as Boxed expressions, Decision tables,and Decision requirement diagram (DRD).
DMN Range Functions Reference
| Function | Parameters | Example | Result | Purpose |
|---|---|---|---|---|
| after (A, B) | A and B. (Mandatory): Could be a point or a range. | Returns a Boolean value if the specified range 1 is met by the specified range 2. | true | Returns the Boolean value evaluating the given points and/or range. |
| before (A, B) | A and B. (Mandatory): Could be a point or a range. | before (1, (1..10)) | true | Returns the Boolean value evaluating the given points and/or range. |
| coincides (range/point 1, range/point 2) | Point or Range 1 and Range 2: (Mandatory) started by(range/point 1, range/point 2) | coincides( [1..5], [2..6]) | false | Returns a Boolean value if the specified range/point 1 is started by specified range/point 2. |
| during (range1/point, range 2) | Point or Range 1 and Range 2: (Mandatory) | during( [5..10), [1..10)) | true | Returns a Boolean value if the specified range/point 1 is during specified range 2. |
| finishes (range1 , range2) | Point or Range 1 and Range 2: (Mandatory) | finishes( [5..10), [1..10]) | false | Returns a Boolean value if the specified range/point 1 finishes with specified range 2. |
| finished by (range1 , range2/point) | Range1 and Range 2 or Point: (Mandatory) | finished by( [1..10], 10) | true | Returns a Boolean value if the specified range 1 finished by specified range/point 2. |
| includes (range1 , range2/point) | Range1 and Point or Range 2: (Mandatory) | includes( [1..10], 5) | true | Returns a Boolean value if the specified range 1 includes specified range/point 2. |
| meets (range1 , range2) | range1 and range2. (Mandatory) | meets ( [1..5) , [5..10]) | false | Returns the Boolean value if the specified range meets. |
| met by (range1 , range2) | range1, range2: (Mandatory) | met by( [5..10], [1..5)) | false | Returns a Boolean value if the specified range 1 met by specified range 2. |
| overlaps (range1 , range2) | range1, range2: (Mandatory) | overlaps ( [1..5] , [3..8]) | true | Returns a Boolean value if the specified ranges overlap. |
| overlaps before (range1 , range2) | range1, range2: (Mandatory) | overlaps before( [1..5], (1..5]) | true | Returns a Boolean value if the specified range 1 overlaps before the specified range 2. |
| overlaps after (range1 , range2) | range1, range2: (Mandatory) | overlaps after( [3..8], [1 ..5]) | true | Returns a Boolean value if the specified range 1 overlaps after the range 2 |
| starts (range1/point, range 2) | Point or Range 1 and Range 2: (Mandatory) | starts( [1..10), [1..10] ) | true | Returns a Boolean value if the specified range/point 1 starts with specified range 2. |
| started by (range1, range/point 2) | Point or Range 1 and Range2: (Mandatory) | started by( (1..10), (1..10) ) | true | Returns a Boolean value if the specified range/point 1 is started by specified range/point 2. |

