Expression language
Data types
Understand the value types expressions work with, how lists and date behaviours work, and what happens when you mix number types.
Every value in an expression has a type, and every slot expects one. The types follow Dataverse wording, so a Currency input in Logic Fabric behaves like a currency column in Dataverse. Knowing the types helps you pick the right constant, avoid surprising rounding, and understand why the editor reports a type mismatch.
Value types
Section titled “Value types”| Type (Dataverse) | On-premises label | Holds | Example |
|---|---|---|---|
| Text | Text | A piece of text | "Gold" |
| Whole Number | Whole Number | A number without decimals | 30 |
| Decimal Number | Decimal Number | An exact number with decimals | 0.15 |
| Floating Point Number | Floating Point Number | An approximate number, for scientific-style values | 2.5 |
| Currency | Currency | A money amount | 10000 |
| Yes/No | Two Options | True or false | Yes |
| Date and Time | Date and Time | A date, or a date and time | 2026-12-31 |
| Choice | Option Set | One option of a choice column | Preferred Customer |
| Lookup | Lookup | A reference to one record | The Contoso Ltd account |
| Row | Entity | A whole record with its columns | The case being processed |
| Unique Identifier | Unique Identifier | A record ID (GUID) | 3f2504e0-4f89-11d3-9a0c-0305e82c3301 |
You can give inputs any of these types except Unique Identifier. Results of functions, logic blocks and steps can also have types that you see in result badges, such as Unique Identifier, Object, Query Result, List or Any.
Choosing a number type
Section titled “Choosing a number type”- Use Whole Number for counts, days and sequence numbers.
- Use Decimal Number for rates, percentages and quantities that need exact decimals.
- Use Currency for money amounts, so they work with currency columns and Convert Currency.
- Use Floating Point Number only when you need very large or very small approximate values.
Any type can also hold a list of values. When you set a type, the Holds choice offers One value or List of values, and the editor describes your choice in a plain sentence, such as “Holds a list of whole numbers.” or “Holds a list of lookups to Account.” Lists are shown as List of Text, List of Whole Number, and so on.
Lists come from related records read by earlier steps, from multi-select choice columns, and from functions such as Split and Filter. Work with them using the list functions.
Date and Time behaviours
Section titled “Date and Time behaviours”A Date and Time value has one of three behaviours, the same as in Dataverse:
| Behaviour | What is stored | What to watch for |
|---|---|---|
| User Local | The moment in time, stored in UTC and shown to each user in their time zone | Date parts and date math work on the UTC value. Convert with Convert From Utc when you need the local date. |
| Date Only | A calendar date without a time | Used as entered. |
| Time Zone Independent | A date and time exactly as entered, without conversion | Used as entered. |
Now always returns the current time in UTC. See Time zones for worked examples.
Mixing number types
Section titled “Mixing number types”When a calculation combines different number types, the result uses the widest type involved:
Whole Number → Floating Point Number → Decimal Number / Currency
| Calculation | Result type |
|---|---|
| Whole Number + Whole Number | Whole Number |
| Whole Number + Decimal Number | Decimal Number |
| Floating Point Number + Currency | Currency |
| Decimal Number + Currency | The type of whichever value comes first |
| Currency + Decimal Number | Currency |
Decimal Number and Currency rank equally, so when you mix them, the result takes the type of the value in the first slot.
The same applies to Raise to Power and to functions that keep the type of their value, such as Round: with Whole Numbers, the result is always whole.
Type matching
Section titled “Type matching”Each slot accepts the types that make sense for it, and the whole expression must produce the type shown in Must result in. Common fixes when the editor reports a mismatch:
- You have text but need a number: use To Whole Number or To Decimal. See Conversion.
- You have a number or date but need text: use To String, or Concatenate, which accepts any type.
- You have a choice but need its label: use Option Label.
- You need a Yes/No from text such as
"yes"or"1": use To True/False.