Skip to main content
Skip table of contents

Beslissing expressie syntax (FEEL)

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

2 - 1 * 2 - 1 retourneert -1

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

Booleaanse expressies voor inputwaardes

Deze types expressies zijn specifiek bedoeld voor de evaluatie van inputwaardes binnen beslissingstabellen. Evaluatie gebeurt door de inputwaarde te vergelijken met een gestelde waarde. De expressie evalueert steeds in true of false. Voor het opbouwen van deze expressies 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

Geen

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

Indien je louter - of ? gebruikt als gesteld 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. De inputwaarde wordt voorgesteld met het speciale, voorbehouden karakter ? Zie de pagina met voorbeelden.

Eender welk

Expressies, methods, functies & operatoren

Onderstaand overzicht bevat een aantal nuttige expressies, methods, functies & operatoren. Meer uitgebreide info over binnen FEEL ondersteunde expressions, methods, functions & operators vind je terug via de Camunda documentatiesite.

Boolean data type

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

true instance of boolean geeft true

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

"Hello, World!" instance of string geeft true

in

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

0 in [1,2,3] geeft false

contains

Checkt of een string een specifieke substring bevat

contains ("Hello, World!", "Wor") 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

+

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

Wat binnen FEEL aangeduid wordt als een List, wordt binnen andere programmeer- of expressietalen aangeduid met Array, enz.

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

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,1]

Context data type

Wat binnen FEEL aangeduid wordt als een Context, wordt binnen andere programmeer- of expressietalen aangeduid met Map, Dictionary, enz. Het is een opsomming van key-value pairs. Kan zowel een enkelvoudige als een complexe structuur (lijst) aannemen.

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}

Temporal data type

Functie

Beschrijving

Voorbeeld

now()

Retourneert de huidige datum-tijd met de tijdzone inbegrepen

now() retourneert

date and time ("2024-12-19T10:58:24@Europe/Brussels")

today()

Retourneert de huidige datum

today() retourneert

date("2024-12-19")

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 week (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"

+

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 date("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 date

*

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 duration("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 duration("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

date and time("2025-01-01TH10M30S20).year retourneert 2025

date and time("2025-01-01TH10M30S20).month retourneert 1

duration ("P5D10H50M10S").days retourneert 5

date and time("2025-01-01TH10M30S20).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.