Expression language
Operators
See how arithmetic, comparison and logical operators are picked, how they appear in the formula bar, and in which order they are calculated.
Operators are the functions that combine or compare values: add two amounts, check whether a value is greater than a threshold, require two conditions at once. You pick an operator by its label, such as Is Greater Than, and the formula bar shows it in a familiar short form, such as Amount > 1000. This page is a quick reference; each operator links to its full description.
Arithmetic
Section titled “Arithmetic”Picked from Math Functions. Each takes two or more numbers, except Modulo and Raise to Power, which take exactly two.
| Picker label | Formula bar | Example | Result |
|---|---|---|---|
| Add | a + b |
totallineitemamount + freightamount |
Sum |
| Subtract | a - b |
totalamount - discountamount |
Difference, left to right |
| Multiply | a * b |
quantity * priceperunit |
Product |
| Divide | a / b |
actualvalue / estimatedvalue |
Quotient, left to right |
| Modulo | a % b |
SequenceNumber % 2 |
Remainder |
| Raise to Power | a ^ b |
GrowthFactor ^ Years |
Power |
The result uses the widest number type involved, and dividing two Whole Numbers drops the fraction. See Mixing number types.
Comparison
Section titled “Comparison”Picked from Binary Logical Functions. Each compares two values and returns Yes/No. In the outline, their slots read First value and Second value (or Compared with).
| Picker label | Formula bar | Works with | Case |
|---|---|---|---|
| Is Equal To | a = b |
Any type | Text is case-sensitive |
| Is Not Equal To | a ≠ b |
Any type | Text is case-sensitive |
| Is Greater Than | a > b |
Numbers, dates | |
| Is Greater Than Or Equal To | a ≥ b |
Numbers, dates | |
| Is Less Than | a < b |
Numbers, dates | |
| Is Less Than Or Equal To | a ≤ b |
Numbers, dates | |
| Contains / Does Not Contain | a contains b |
Text | Ignores case |
| Starts With / Does Not Start With | a starts with b |
Text | Ignores case |
| Ends With / Does Not End With | a ends with b |
Text | Ignores case |
| Contains Item / Does Not Contain Item | list includes item |
A list and one item |
Two related functions live in Choice Functions: Is One Of (value in (a, b, c)) and Is Between (both ends included).
Full details, including how empty values compare: Comparisons.
Logical
Section titled “Logical”| Picker label | Category | Formula bar | Result |
|---|---|---|---|
| And | Boolean Logical Operators | And(a, b, …) |
Yes when every condition is Yes |
| Or | Boolean Logical Operators | Or(a, b, …) |
Yes when at least one condition is Yes |
| If Condition | Control | If(condition, then, else) |
One of two values |
Checks
Section titled “Checks”Picked from Unary Logical Functions. Each checks one value and returns Yes/No.
| Picker label | Reads as | True when |
|---|---|---|
| Null | is empty | The value is empty |
| Not Null | is not empty | The value is not empty |
| Null Or Empty String | is empty | The text is empty or "" (text with only spaces is not empty) |
| Not Null Or Empty String | is not empty | The text has at least one character |
| Is True | is Yes | The value is Yes |
| Is False | is No | The value is No or empty |
| Any | The list has at least one item |
Full details: Checks.
Order of calculation
Section titled “Order of calculation”You cannot type parentheses, and you do not need them. The order is set by nesting in the outline: whatever sits inside a slot is calculated before the function that holds it.
For example, to calculate a discounted line total of (quantity * priceperunit) - discount:
- Pick Subtract.
- In its first slot, pick Multiply and fill it with
quantityandpriceperunit. - In its second slot, pick
discount.
The formula bar shows quantity * priceperunit - discount, and the outline shows Multiply nested inside Subtract. When you are unsure how a formula reads, check the outline: nesting there is what counts.
And, Or, Switch and First Non-Empty only calculate what they need. And stops at the first No, Or stops at the first Yes. Put an “is not empty” check before a condition that relies on the value, for example And(Not Null(parentcustomerid), parentcustomerid.creditonhold = Yes).