DMN Range Functions

◷ Reading Time: 8 minutes

after

Returns the Boolean value evaluating the given points and/or range.

 after (A, B)
  • A and B. (Mandatory): Could be a point or a range.

(a) after(point1, point2)

(b) after(range, point)

(c) after(range1,range2)

Example: after (10,5)
Result: true
Example: after ((11..20) , (8..10))
Result: true
Example: after ((11..20] , [1..11])
Result: true

before

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.

(a) before(point1, point2)

(b) before(range, point)

(c) before(range1,range2)

Example: before (1, 10)
Result: true
Example: before (1, (1..10))
Result: true
Example: before ([1..10), [10..20])
Result: true

coincides

Returns a Boolean value if the specified range/point 1 is started by specified range/point 2.

 coincides (range/point 1, range/point 2)
  • Point or Range 1 and Range2: (Mandatory)
  • started by(range/point 1, range/point 2)
Example: coincides( 5, 5 )
Result: true
Example: coincides( [1..5], [2..6] )
Result: false
Example: coincides( [1..5], [1..5] )
Result: true

during

Returns a Boolean value if the specified range/point 1 is during specified range 2.

 during (range1/point, range 2)
  • Point or Range 1 and Range2: (Mandatory)
  • during(point, range)
  • during(range1, range2)
Example: during( 5, [1..10] )
Result: true
Example: during( 1, (1..10] )
Result: false
Example: during( [5..10), [1..10) ) 
Result: true

finishes

Returns a Boolean value if the specified range/point 1 finishes with specified range 2.

 finishes (range1 , range2)
  • Point , range1 and 2: (Mandatory)
  • finishes (point, range)
  • finishes (range1, range2)

Evaluates to true if:
(a) range.end included and range.end = point
(b) range1.end included = range2.end included and range1.end = range2.end and (range1.start > range2.start or (range1.start = range2.start and (not(range1.start included) or range2.start included)))

Example: finishes( 10, [1..10] )
Result: true
Example: finishes( [5..10), [1..10] )
Result: false
Example: finishes( [1..10], [1..10] )
Result: true

finished by

Returns a Boolean value if the specified range 1 finished by specified range/point 2.

 finished by (range1 , range2/point)
  • Range1 and Range 2 or Point: (Mandatory)
  • finished by(range, point)
  • finished by(range1, range2)

Evaluates to true if:
(a) range.end included and range.end = point
(b) range1.end included = range2.end included and
range1.end = range2.end and
(range1.start < range2.start or (range1.start = range2.start and (range1.start included or not(range2.start included))))

Example: finished by( [1..10], 10 )
Result: true
Example: finished by( [1..10), 10 )
Result: false
Example: finished by( [1..10), [5..10) ) 
Result: true

includes

Returns a Boolean value if the specified range 1 includes specified range/point 2.

 includes (range1 , range2/point)
  • Range1 and Point or Range 2: (Mandatory)
  • includes (range, point)
  • includes (range1, range2)
Example: includes( [1..10], 5 )
Result: true
Example: includes( (1..10], 1 )
Result: false
Example: includes( [1..10), [5..10) ) 
Result: true

meets

Returns the Boolean value if the specified range meets.

 meets (range1 , range2)
  • range1 and range2. (Mandatory)

Evaluates to true if: range1.end included and range2.start included and range 1 .end = range2.start

Example: meets ( [1..5) , [5..10] )
Result: false
Example: meets ( [1..5] , [5..10] )
Result: true
Example: meets ( [1..5] , [6..10] )
Result: false

met by

Returns a Boolean value if the specified range 1 met by specified range 2.

 met by (range1 , range2)
  • range1, range2: (Mandatory)

Evaluates to true if: range1.start included and range2.end included and range 1 .start = range2.end

Example: met by( [5..10], [1..5] ) 
Result: true
Example: met by( [5..10], [1..5) )
Result: false
Example: met by( [6..10], [1..5] ) 
Result: false

overlaps

Returns a Boolean value if the specified ranges overlap.

 overlaps (range1 , range2)
  • range1, range2: (Mandatory)

Evaluates to true if: (range1.end > range2.start or (range1.end = range2.start and range1.end included and range2.start included)) and (range1.start < range2.end or (range1.start = range2.end and range1.start included and range2.end included))

Example: overlaps ( [1..5] , [3..8] )
Result: true
Example: overlaps ( [1..5] , [6..8] )
Result: false
Example: overlaps ( [5..8] , [1..5] )
Result: true

overlaps before

Returns a Boolean value if the specified range 1 overlaps before the specified range 2.

 overlaps before (range1 , range2)
  • range1, range2: (Mandatory)
Example: overlaps before( [1..5), (1..5] ) 
Result: true
Example: overlaps before( [1..5), [1..5] ) 
Result: false
Example: overlaps before( [1..5], (1..5] )
Result: true

overlaps after

Returns a Boolean value if the specified range 1 overlaps after the range 2

 overlaps after (range1 , range2)
  • range1, range2: (Mandatory)
Example: overlaps after( [3..8], [1 ..5]) 
Result: true
Example: overlaps after( [5..8], [1 ..5)) 
Result: false
Example: overlaps after( [1 ..5], [1 ..5] )
Result: false

starts

Returns a Boolean value if the specified range/point 1 starts with specified range 2.

 starts (range1/point, range 2)
  • Point or Range 1 and Range2: (Mandatory)
  • starts(point, range)
  • starts(range1, range2)
Example: starts( 5, [5..10] )
Result: true
Example: starts( 1, (1..10] )
Result: false
Example: starts( [1..10), [1..10] )
Result: true

started by

Returns a Boolean value if the specified range/point 1 is started by specified range/point 2.

 started by (range1, range/point 2)
  • Point or Range 1 and Range2: (Mandatory)
  • started by(range 1, point)
  • started by(range1, range2)
Example: started by( [1..10], 1 )
Result: true
Example: started by( [1..10], (1..5] )
Result: false
Example: started by( (1..10), (1..10) )
Result: true

 

 

Updated on September 12, 2025

Was this article helpful?

Related Articles