This document describes the expression syntax used in the application.
value - Current field valueval - a wrapped value in a monad that introduces additional operationsfield['fieldname'] - Access other fieldsfield.fieldname - Alternative syntax for accessing fields
- == - Equal
- === - Strict equal
- != - Not equal
- !== - Strict not equal
- < - Less than
- <= - Less than or equal
- > - Greater than
- >= - Greater than or equal
- and - Logical AND
- or - Logical OR
- not - Logical NOT
not (value contains '1970') - Negates the result of the contains operationnot, as it may lead to unexpected results!
- ~ - String concatenation
- contains - String contains
- matches - Regular expression matching
- condition ? true_value : false_value - Ternary conditional
val.upper() - Convert to uppercaseval.lower() - Convert to lowercaseval.split(delimiter) - Split string into arrayval.merge(delimiter) - Join array elements with delimiterval.eq(value) - Compare equalityval.from(value) - Transform valueval.value() - Return the final value from monadarray.value()[index] - Access array element by indexarray.last() - Get last element of arraytime.format(datetime, format, [timezone]) - Format datetimetime.format('2024-08-27T15:25:02.001Z', 'H:i')time.format('2024-08-27T15:25:02.001Z', 'H:i', 'Europe/Warsaw')time.formatSeconds(seconds, format, [default]) - Format seconds as durationtime.formatSeconds(value + 220, 'M:S')
val.upper() // Convert to uppercase
val.split('/').merge('|').upper() // Split, join with new delimiter, uppercase
field['null_val'] === null ? 'less 0' : 'more than 0' value !== null and not (value contains '1970') ? time.format(value, 'U') * 1000 : null
time.formatSeconds(value + 220, 'M:S') // Format seconds as minutes:seconds
time.format('2024-08-27T15:25:02.001Z', 'H:i', 'Europe/Warsaw') // Format with timezone
field['field2'] // Access other field field.all_tmp.b_string // Nested field access field.all_tmp.wrong ?? '' // With null coalescing