Skip to main content
Skip table of contents

Beslissing expressie syntax (FEEL)

Algemeen

Comments

Binnen je expressie kan je gebruik maken van een comment regel of comment block.

// dit is een comment regel

CODE
/*
 * dit is een comment block
 * deze bevat meerdere regels
 */

Haakjes

Om structuur aan te brengen in complexe expressies kan je gebruik maken van parentheses of haakjes.

if (x < 10) then true else false retouneert true wanneer x bijvoorbeeld 5 is.

2 - 1 * 2 - 1 retourneert -1

(2 - 1) * (2 - 1) retourneert 1

Unary tests voor business regels

Deze tests pas je toe in de business rule cellen. Ze evalueren steeds naar true of false. Evaluatie gebeurt door de inputwaarde te vergelijken met een gestelde waarde. Indien alle tests in een business rule naar true evalueren, dan matcht de regel.

Voor het opbouwen van deze tests is user interface ondersteuning voorzien (klik op het potlood icoon naast de cel waar je de expressie wil opbouwen).

Inputwaarde en gestelde waarde moeten van hetzelfde data type zijn. Indien dit niet het geval is, krijg je een error terug.

Functie of operator

Beschrijving

Data types + voorbeeld

Geen

Inputwaarde exact gelijk aan gestelde waarde, levert true op, anders false.

Indien je louter - gebruikt als gestelde waarde, dan retourneert de expressie altijd true.

Eender welk

<

Inputwaarde kleiner dan gestelde waarde, levert true op, anders false.

Number, date, time, date-time

<=

Inputwaarde kleiner dan of gelijk aan gestelde waarde, levert true op, anders false.

Number, date, time, date-time

>

Inputwaarde groter dan gestelde waarde, levert true op, anders false.

Number, date, time, date-time

>=

Inputwaarde groter dan of gelijk aan gestelde waarde, levert true op, anders false.

Number, date, time, date-time

[ x .. y ]

Inputwaarde in de range van gestelde waardes x en y (x en y inclusief), levert true op, anders false.

Number, date, time, date-time

] x .. y [

Inputwaarde in de range van gestelde waardes x en y (x en y exclusief), levert true op, anders false.

Number, date, time, date-time

,

OR-operator die toelaat om twee of meerdere van bovenstaande expressies met elkaar te combineren. Van zodra één lid van de expressie true retourneert, retourneert de volledige expressie naar true, anders false.

Eender welk

not()

NOT-operator die één van bovenstaande expressies kan inverteren, d.w.z. de expressie zal false retourneren waar je true verwacht, en vice versa.

Eender welk

Booleaanse expressie

Binnen een beslissingstabel inputkolom kan je gebruik maken van eender welke booleaanse expressie, d.w.z. een expressie die true of false retourneert.

Eender welk

Expressies, methods, functies & operatoren

Deze expressies pas je toe om een specifieke waarde uit te rekenen. Onderstaande lijst biedt een beknopt overzicht van de mogelijkheden binnen FEEL-expressies.

Boolean expressies

Expressies die naar true of false evalueren.

Functie of operator

Beschrijving

Voorbeeld

=

Gelijk aan

1 = 2 geeft false

!=

Niet gelijk aan

1 != 2 geeft true

= null

!= null

Null-check

1 = null geeft false

1 != null geeft true

<

Kleiner dan

1 < 2 geeft true

<=

Kleiner of gelijk aan

1 <= 2 geeft true

date("2020-01-01") <= date("2030-01-01") geeft true

>

Groter dan

1 > 2 geeft false

>=

Groter of gelijk aan

1 >= 2 geeft true

between [value] and [value]

Checkt of waarde zich tussen twee andere waardes bevindt

3 between 1 and 2 geeft false

time("12:00:00") between time("08:00:00") and time("12:00:01") geeft true

and

Dubbele conditie, beiden moeten true zijn opdat het geheel true zou retourneren.

1 < 2 and 1 > 2 geeft false

or

Van zodrag één conditie true geeft, zal het geheel ook true retourneren.

1 < 2 or 1 > 2 geeft true

instance of

Checkt of een waarde behoort tot een bepaald data type (boolean, date, string, number).

true instance of boolean geeft true

@"2020-01-01" instance of date geeft true

"Hello, World!" instance of string geeft true

“Hello, World!” instance of number geeft false

in

Checkt of een waarde zich in een gepredefinieerde lijst van waardes bevindt

Checkt of een waarde zich in een context (map of key-value pairs) bevindt

0 in [1,2,3] geeft false

“a” in [“a”,”b”,”c”] geeft true

String data type

Functie of operator

Beschrijving

Voorbeeld

string()

Conversie van getal, datum … naar een string.

string(5) retourneert "5"

+

Concatenatie van strings. Elke waarde moet van het type string zijn.

"Hello," + " " + "World" + "!" retourneert "Hello, World!"

"Bestelling" + " - " + string(50) retourneert "Bestelling - 50"

Numeric data type

Functie of operator

Beschrijving

Voorbeeld

number()

Conversie van string naar een getal. Indien niet mogelijk, zal de functie null retourneren.

number("5") retourneert 5

number("tekst") retourneert null

modulo(getal,modulus)

Retourneert de rest na deling van het getal door de modulus.

modulo(20,6) geeft 2

abs(getal)

Retourneert de absolute waarde van het getal.

abs(-5) geeft 5

floor(getal)

Rondt het getal af naar beneden en retourneert de dichtsbijzijnde integer.

floor(4.11) geeft 4
floor (-4.11) geeft -5

floor(getal,y)

Rondt het getal af naar beneden en retourneert het dichtsbijzijnde getal met y decimalen.

floor(4.11,1) geeft 4.1

floor(-4.11,1) geeft -4.2

ceiling(getal)

Rondt het getal af naar boven en retourneert de dichtsbijzijnde integer.

ceiling(4.11) geeft 5
ceiling(-4.11) geeft -4

ceiling(getal,y)

Rondt het getal af naar boven en retourneert het dichtsbijzijnde getal met y decimalen.

ceiling(4.11,1) geeft 4.2

ceiling(-4.11,1) geeft -4.1

+

Optellen

1 + 1 geeft 2

-

Aftrekken

1 - 1 geeft 0

*

Vermenigvuldigen

2 * 3 geeft 6

/

Delen

8 / 2 geeft 4

**

Exponentieel

2 ** 3 geeft 8

List data type

Het is mogelijk om een lijst door te geven als input waarde voor de beslissing.

Wat binnen FEEL aangeduid wordt als een List, wordt binnen andere programmeer- of expressietalen aangeduid met Array, enzovoort. Het is een oplijsting van waardes.

Functie of operator

Beschrijving

Voorbeeld

Select

Retourneert specifieke waarde uit de lijst op basis van positie. De eerste waarde heeft positie [1], de laatste waarde heeft positie [-1].

[0,1,2,3][1] geeft 0

[0,1,2,3][-1] geeft 3

[0,1,2,3][5] geeft null

[“a”,”b”,”c”][1] geeft “a”

Filter

Retourneert vanuit een lijst de items die voldoen aan de gestelde conditie. Je kan werken met de speciale variabele item.

[0,1,2,3][item<2] geeft [0]

[“a”,”b”,”c”][item!=”b”] geeft [“a”,c”]

some i in x satisfies y

Geeft true vanaf dat één item in de lijst aan de conditie voldoet.

some i in [0,1,2,3] satisfies i > 2 geeft true

every i in x satisfies y

Geeft trueindien alle items in de lijst aan de conditie voldoen.

every i in [0,1,2,3] satisfies i > 2 geeft false

Context data type

Het is mogelijk om een map door te geven als input waarde voor de beslissing.

Wat binnen FEEL aangeduid wordt als een Context, wordt binnen andere programmeer- of expressietalen aangeduid met Map, Dictionary, enzovoort. Het is een opsomming van key-value pairs.

Functie of operator

Beschrijving

Voorbeeld

Select

Retourneert specifieke waarde uit de context op basis van key.

{"naam":"John","leeftijd":50}.leeftijd geeft 50

Filter

Retourneert vanuit een context de key-value pairs die voldoen aan de gestelde conditie.

[{"naam":"John","leeftijd":50},{"naam":"James","leeftijd":60}].["leeftijd" > 55] geeft {"naam":"James","leeftijd":60}

Projectie

Retourneert een lijst met specifieke waardes uit een lijst met verschillende contexten.

[{"naam":"John","leeftijd":50},{"naam":"James","leeftijd":60}].leeftijd geeft [50,60]

Temporal data type

Functie

Beschrijving

Voorbeeld

now()

Retourneert de huidige datum-tijd met de tijdzone inbegrepen

now() retourneert

"2025-08-08T07:41:55.663782293@Etc/UTC"

today()

Retourneert de huidige datum

today() retourneert

"2025-08-08"

day of week(date)

Retourneert de dag van de week als string

day of week (date("2024-12-19")) retourneert "Thursday"

day of year(date)

Retourneert de dag van het jaar als getal

day of year (date("2025-01-01")) retourneert 1

week of year(date)

Retourneert de week van het jaar als getal

week of year (date("2024-12-19")) retourneert 51

month of year(date)

Retourneert de maand van het jaar als string

month of year (date("2024-12-19")) retourneert “December"

abs(duration)

Retourneert absolute waarde van een tijdsduur (bijvoorbeeld mocht die negatief zijn).

abs(duration("-PT5H")) retourneert "PT5H"

years and months duration (date1, date2)

Berekent het tijdsinterval uitgedrukt in jaren en maanden tussen twee datums.

years and months duration(date("1975-08-09"),today()) geeft "P49Y11M"

+

Optelling, enkel specifieke combinaties werken, anders retourneert de expressie null

Voorbeelden:

date + duration geeft date
time + days-time-duration geeft time
date-time + duration geeft date-time

date("2024-12-19") + duration("P1D") retourneert "2024-12-20"

-

Aftrekken, enkel specifieke combinaties werken, anders retourneert de expressie null

Voorbeelden:

date - date geeft days-time-duration
date - duration geeft date

date("2024-12-19") - duration("P1D") retourneert "2024-12-18"

*

Vermenigvuldigen, enkel specifieke combinaties werken, anders retourneert de expressie null

Voorbeelden:

days-time-duration * number geeft days-time-duration

years-months-duration * number geeft years-months-duration

duration("P1D") * 2 retourneert "P2D"

/

Delen, enkel specifieke combinaties werken, anders retourneert de expressie null

Voorbeeld:

days-time-duration / number geeft days-time duration

years-months-duration / number geeft years-months-duration

duration("P2D") / 2 retourneert "P1D"

Get properties

Specifieke eigenschap van een date, time of date-time ophalen. Retourneert een getal.

.year
.month
.weekday
.hour

Specifieke eigenschappen van een duration (tijdsduur). Retourneert een getal.

.months
.days
.minutes

today().year retourneert 2025

today().month retourneert 1

duration("P5D10H50M10S").days retourneert 5

duration("P5D10H50M10S").minutes retourneert 50

Logical statements

If conditions

if x then y else z

Voorbeelden

  • if "Piet" in ["Jan","Paul","Mieke"] then true else false geeft false

  • if prijs > 500 then "duur" else "goedkoop" geeft "duur" wanneer pijs 600 is en "goedkoop" wanneer prijs is 400.

For loops

for a in b return c

Voorbeeld

for x in [100,101,102,103] return "Order: " + string(x) geeft ["Order: 100", "Order: 101", "Order: 102", "Order: 103"]

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.