Type System
Overview
Any programming language presents a type system, and Logic Composer is no exception. However, rather than introducing a proprietary type system, Logic Composer leverages the Dataverse built-in type system. This means the types you work with in Logic Composer are the same types you already use when configuring Dataverse fields, relationships, and data.
For Dataverse functional consultants, this design choice is significant. You don't need to learn new data types or understand type conversion rules - the types in Logic Composer are the familiar types you work with every day when creating fields, configuring forms, and building views.
Supported Types
Logic Composer supports the following Dataverse data types:
| Type | Description | Example Values |
|---|---|---|
| Boolean | True or false value | true, false |
| DateTime | Date and time value | 2026-01-15 14:30:00 |
| Decimal | Precise numeric value with decimal places | 1234.56, 0.001 |
| Entity | A complete Dataverse record | An Account record, a Contact record |
| Entity Reference | A reference (lookup) to another record | A lookup to the parent Account |
| Option Set | A choice from a predefined list | Status: Active, Inactive |
| Float | Floating-point numeric value | 3.14159, 2.71828 |
| Integer | Whole number value | 42, -100, 0 |
| Money | Currency value with precision | $1,500.00, €2,340.50 |
| String | Text value | "Hello World", "Customer Name" |
Type Usage in Logic
Every input and output in Logic Composer has a name and a type. When you create a Logic Block, you define:
- Inputs: The data the block receives, each with a name and type
- Outputs: The data the block produces, each with a name and type
For example, a "Calculate Discount" block might have:
- Inputs:
OrderAmount(Money),CustomerTier(Option Set),IsNewCustomer(Boolean) - Output:
DiscountPercentage(Decimal)
The type system ensures that data flows correctly through your logic. You cannot connect a String output to a Money input - the system enforces type compatibility, catching errors at design time rather than runtime.
Working with Entity and Entity Reference
Two types deserve special attention: Entity and Entity Reference.
Entity Reference is a pointer to a record - like a lookup field in Dataverse. It contains just enough information to identify the record (entity type and record ID) but doesn't contain the record's data. Use Entity Reference when you need to reference a record but don't need its fields.
Entity is a complete record with all its fields and values. Use Entity when you need to access or manipulate the record's data. Logic Composer can retrieve Entity data from Dataverse when needed, allowing your logic to access fields from related records.