Beslissing expressie syntax (FEEL)
Comments
Binnen je expressie kan je gebruik maken van een comment regel of comment block.
// dit is een comment regel
/*
* 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
Meer uitgebreide info over binnen FEEL ondersteunde unary tests vind je terug via de Camunda documentatie site.
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 Indien je louter | Eender welk |
< | Inputwaarde kleiner dan gestelde waarde, levert | Number, date, time, date-time |
<= | Inputwaarde kleiner dan of gelijk aan gestelde waarde, levert | Number, date, time, date-time |
> | Inputwaarde groter dan gestelde waarde, levert | Number, date, time, date-time |
>= | Inputwaarde groter dan of gelijk aan gestelde waarde, levert | Number, date, time, date-time |
[ x .. y ] | Inputwaarde in de range van gestelde waardes x en y (x en y inclusief), levert | Number, date, time, date-time |
] x .. y [ | Inputwaarde in de range van gestelde waardes x en y (x en y exclusief), levert | 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 | Eender welk |
not() | NOT-operator die één van bovenstaande expressies kan inverteren, d.w.z. de expressie zal | Eender welk |
Booleaanse expressie | Binnen een beslissingstabel inputkolom kan je gebruik maken van eender welke booleaanse expressie, d.w.z. een expressie die | 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 |
|
!= | Niet gelijk aan |
|
| Null-check |
|
< | Kleiner dan |
|
<= | Kleiner of gelijk aan |
|
> | Groter dan |
|
>= | Groter of gelijk aan |
|
between [value] and [value] | Checkt of waarde zich tussen twee andere waardes bevindt |
|
and | Dubbele conditie, beiden moeten |
|
or | Van zodrag één conditie |
|
instance of | Checkt of een waarde behoort tot een bepaald data type |
|
in | Checkt of een waarde zich in een gepredefinieerde lijst van waardes bevindt |
|
contains | Checkt of een string een specifieke substring bevat |
|
String data type
Functie of operator | Beschrijving | Voorbeeld |
---|---|---|
| Conversie van getal, datum … naar een string. |
|
+ | Concatenatie van strings. Elke waarde moet van het type string zijn. |
|
Numeric data type
Functie of operator | Beschrijving | Voorbeeld |
---|---|---|
| Conversie van string naar een getal. Indien niet mogelijk, zal de functie |
|
+ | Optellen |
|
- | Aftrekken |
|
* | Vermenigvuldigen |
|
/ | Delen |
|
** | Exponentieel |
|
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 |
|
Filter | Retourneert vanuit een lijst de items die voldoen aan de gestelde conditie. Je kan werken met de speciale variabele |
|
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. |
|
Filter | Retourneert vanuit een context de key-value pairs die voldoen aan de gestelde conditie. |
|
Temporal data type
Functie | Beschrijving | Voorbeeld |
---|---|---|
| Retourneert de huidige datum-tijd met de tijdzone inbegrepen |
|
| Retourneert de huidige datum |
|
| Retourneert de dag van de week als string |
|
| Retourneert de dag van het jaar als getal |
|
| Retourneert de week van het jaar als getal |
|
| Retourneert de maand van het jaar als string |
|
| Retourneert absolute waarde van een tijdsduur (bijvoorbeeld mocht die negatief zijn). |
|
+ | Optelling, enkel specifieke combinaties werken, anders retourneert de expressie Voorbeelden:
|
|
- | Aftrekken, enkel specifieke combinaties werken, anders retourneert de expressie Voorbeelden:
|
|
* | Vermenigvuldigen, enkel specifieke combinaties werken, anders retourneert de expressie Voorbeelden:
|
|
/ | Delen, enkel specifieke combinaties werken, anders retourneert de expressie Voorbeeld:
|
|
Get properties | Specifieke eigenschap van een date, time of date-time ophalen. Retourneert een getal.
Specifieke eigenschappen van een duration (tijdsduur). Retourneert een getal.
|
|
Logical statements
If conditions
if x then y else z
Voorbeelden
if "Piet" in ["Jan","Paul","Mieke"] then true else false
geeftfalse
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"]