Field Settings
Beyond the basic field definition, Simple Object Designer provides additional settings to customize field behavior and appearance. This page covers all available field settings.
Accessing Field Settings
- Open the Add Fields page
- Select a field row
- Click Field Settings in the action bar
- The Field Settings Card opens
General Group
Table Name
Read-only display of the target table name.
Field No.
The auto-assigned field ID. This is set automatically based on your Start Object Number.
The Field No. matters more than it first appears: Business Central matches "the same" field across related tables by number, so field transfers and standard transfer behaviour depend on it. See Field Transfers for the rules and for how to add the Field No. column to the fields list.
Caution when renumbering a FlowField: FlowField configuration (Calculation Type, Related Table, Related Field and especially Filters) does not follow the field when you change its Field No. The settings stay bound to the original position, so a filter intended for one field can end up applied to another. For example, with FlowFields numbered 50511, 50512 and 50514, changing 50511 to 50514 left the filter meant for 50511 attached to the field now numbered 50514. After changing any FlowField's number, re-open its Field Settings and verify every setting before publishing.
Name
The internal field name. Can be edited here if needed.
Rules:
- Must be unique within the table
- SOD adds prefix and suffix automatically
- Avoid special characters
Field Caption
The user-visible label for the field.
Best practices:
- Use proper capitalization
- Include units where relevant ("Weight (kg)")
- Keep concise but descriptive
- Consider translation needs
Applies to your own fields. Changing the Field Caption works for fields you create in SOD. Overriding the caption of an existing standard or system field may not take effect after publishing — Business Central can ignore the caption override even though SOD generates correct code. See Customize Existing Pages.
Type
The field data type. Changing type may reset other settings.
Size
For Text and Code fields, the maximum length.
| Type | Maximum | Default |
|---|---|---|
| Text | 2000 | 100 |
| Code | 2000 | 20 |
A Size of zero on a Lookup field means the field is not correctly connected to the looked-up field, and publishing will fail with an "incomplete field" error. See Lookup Fields.
Properties Group
Extended Data Type
Optional metadata that affects field behavior. Available values:
| Value | Effect |
|---|---|
| (blank) | Standard behavior |
| PhoneNo | Phone number formatting |
| URL | Clickable hyperlink |
| E-mail link | |
| Masked | Displays as asterisks (passwords) |
When to use:
- PhoneNo: Telephone numbers with formatting
- URL: Web addresses that should be clickable
- EMail: E-mail addresses (mailto link)
- Masked: Sensitive data like passwords
Making a field render as a clickable hyperlink does not require AL code or VS Code — set Extended Data Type to URL and publish.
Edit mode and clickability. Link-style extended data types (URL, EMail, PhoneNo) only render as clickable outside edit mode. While the row is being edited, a URL field shows as plain text. To get the link behaviour:
- Switch the record out of edit mode (the pencil/edit toggle at the top of the page), or
- Set the field to not editable, which is the reliable choice for a field that is only ever meant to be a link.
If a URL field does not look clickable, check the page's edit state before changing any settings.
Decimal Places
For Decimal and FlowField types, controls precision display.
Format: Minimum:Maximum (e.g., "2:5")
Examples:
- "2:2" - Always show 2 decimal places
- "0:5" - Show 0 to 5 decimal places as needed
- "2:5" - Show at least 2, up to 5 decimal places
The setting applies to FlowFields as well as Decimal fields. A defect once caused Decimal Places to be ignored on FlowFields — the field always displayed 2 decimals regardless of the configured value. This was fixed in SOD 12.0.0.552; if you see it, update SOD (see Updating SOD).
Enum
For Enum type fields, select the enumeration to use.
- Click the dropdown
- Select from available enumerations
- The field will use that enum's values
Limitation: the dropdown lists only enumerations that already exist in the environment. SOD cannot create a new enumeration. For a custom, self-defined choice list, use the Option field type and define the values in Option Members.
Enum Name
Read-only display of the selected enum name.
Option Members
For Option type fields, define the available values.
Format: Comma-separated list
Example: "Pending,In Progress,Completed,Cancelled"
Guidelines:
- Keep values concise
- Use consistent capitalization
- Order logically (chronological, alphabetical, or by frequency)
- First value is the default
ToolTip
Help text shown when users hover over the field.
Best practices:
- Explain what the field is for
- Include any important rules or formats
- Keep under 250 characters
- Start with "Specifies" for consistency with BC standard
Example: "Specifies the discount percentage applied to this customer's orders."
Add to Search Drop Down
This setting is frequently misunderstood, so it is worth being precise about what it does.
When enabled, SOD adds the field to the source table's FieldGroup — the group Business Central uses for:
- the drop-down list shown when a user selects a record from that table in a lookup context, and
- the Brick / tile layout used on the phone and mobile client.
Example: when picking an item on a sales order, the drop-down that lists items is what this setting affects. Enabling it makes your field a visible, searchable column in that drop-down.
| Value | Effect |
|---|---|
| Yes | Field is part of the lookup drop-down / Brick field group |
| No | Field excluded |
What it does not do: it does not make the field searchable as a column on a standard list page, and it does not add the field to list-page filtering or search. If you enable it expecting list-page search behaviour, you will not see a change.
Notes:
- The setting is per field and can be toggled at any time.
- The extension must be republished for a change to take effect.
- It only controls whether your field belongs to the Brick group. It does not let you author or curate the whole Brick field group (for example listing standard identifying fields alongside yours).
- Requires SOD 12.0.0.562 or later. If the setting is not present, update SOD.
When to enable:
- Key identifier fields
- Frequently searched values
- Reference codes
When to disable:
- Large text fields
- Internal system fields
- Fields with sensitive data
Lookup Configuration
For Lookup type fields, configure the table relationship.
Related Table
Select the table this field references.
- Click the lookup
- Select the target table
- The field will validate against that table
Filters
Optionally filter which records are valid for the lookup.
Example: For a lookup to Item, filter to only show items of a specific type.
Filters can only reference fields that exist in the current table — see Lookup Fields for the full rules and workarounds.
Columns Shown in the Lookup Drop-Down
The columns a user sees in a lookup drop-down come from the fields the related table designates to show on its list (its lookup field group). To have both a code and its description appear, those fields must be marked to show on the list in the related table.
SOD populates these columns from version 12.0.0.495 onward. In earlier versions only the code column appeared even when other fields were designated. After updating, republish your fields for the behaviour to take effect.
If the related table defines no lookup field group at all, only the primary key is selectable and SOD cannot change that — see Lookup Fields.
Lookup Field Transfers
The Lookup Field Transfers action on the Field Settings Card transfers additional fields at the moment a lookup is performed on a Lookup type field.
Example: a field looks up a Customer; a Lookup Field Transfer also copies the Customer's Name into another field on your record.
This is a separate mechanism from the Field Transfers feature:
| Lookup Field Transfers | Field Transfers | |
|---|---|---|
| Where | Field Settings card, for Lookup fields | Add Fields > select field > Field Transfers |
| When it runs | When the user performs the lookup | When a record is created along a supported BC relationship |
| What it moves | Extra fields from the looked-up record | The custom field's own value to a related table |
See Lookup Fields for behaviour details and Field Transfers for the relationship-based mechanism.
FlowField Configuration
For FlowField type fields, configure the calculation. See FlowFields for the full guide.
Calculation Type
| Type | Result |
|---|---|
| Count | Number of related records |
| Sum | Total of a numeric field |
| Average | Average of a numeric field |
| Min | Minimum value |
| Max | Maximum value |
| Lookup | Value from related record |
| Exist | Boolean if related records exist |
Related Table
The table to aggregate from.
Related Field
For Sum/Average/Min/Max, the field to aggregate.
Filters
Conditions that filter which related records to include.
Filters use two forms: field(...) binds a source-table field to the current record's value, and const(...) pins it to a fixed constant. Const is used mostly for Boolean and Option/Enum fields.
Language-safe date formulas
Date formulas in filter values are interpreted in the current Business Central language unless you make them explicit. A formula written in one language crashes the page where the FlowField is placed when BC is switched to another — a Norwegian [t-2å..] breaks in English, and an English [t-2y..] breaks in Norwegian.
Wrap the formula in angle brackets to force English interpretation regardless of display language:
<-2Y..>
Use this form for every date formula in a FlowField filter.
If a filter cannot be edited
If a FlowField filter references a field number that no longer exists, SOD may not be able to open the filter details (a read error appears). The workaround is to delete the affected FlowField, publish with Force Sync, then re-create the field with the correct filter and publish again.
Lookup Calculation Type — Bringing a Value from a Related Table
The Lookup calculation type returns a single value from one related record. It is the standard way to display a related table's value — a description belonging to a code field, a name, a phone number — on a page or in a report dataset.
Configure:
- Calculation Type: Lookup
- Related Table: the table holding the value (e.g. Salesperson/Purchaser, Company Information)
- Related Field: the field to display (e.g. Description, Name, Phone No.)
- Filters: relate it to the current record (e.g. filter the related table's Code to the document header's Purchaser Code)
This also works for surfacing a single company-wide value, such as a footer message stored on Company Information or Purchases & Payables Setup. Note that it only helps where the report element is bound to a real table the FlowField can be added to — it does not solve elements bound to the Integer table.
Behaviour vs. a field transfer: a Lookup FlowField always reflects the current value of the related record, so it updates when the referencing lookup field changes or is cleared. A field transfer copies once at selection time and does not update or clear afterwards.
Making a Lookup FlowField Click Through to a Card
A Lookup FlowField can navigate the user to the related record:
- Create a Lookup FlowField that pulls a value (e.g. the customer name) through an existing lookup field on the record (e.g. a Customer No. field).
- Specify the target card page (e.g. Customer Card) as the field's Drilldown page.
Without the Drilldown page setting, the click-through will not open the intended page. Note this works with a Lookup FlowField, not with a plain Lookup field.
Worked Example: Sum from Detailed Cust. Ledg. Entry
To show a Customer's Balance Due, a plain Lookup is not enough — use a Sum FlowField:
- Related Table: Detailed Cust. Ledg. Entry
- Related Field:
Amount(Balance Due) orAmount (LCY)(Balance Due in local currency) - Filters:
Customer No.= the Customer'sNo.Initial Entry Due Date= upperlimit ofDate FilterInitial Entry Global Dim. 1=Global Dimension 1 FilterInitial Entry Global Dim. 2=Global Dimension 2 FilterCurrency Code=Currency Filter
These correspond to standard Customer fields 66 (Balance Due) and 67 (Balance Due (LCY)); the exact CalcFormula definitions are listed in FlowFields.
Worked Example: Document Total on Every Line
To show a per-document total on each line — for example the total of a custom weight field across all lines of the same order:
- Add the FlowField to the Sales Line table itself (not to the header)
- Calculation Type: Sum
- Related Table: Sales Line
- Related Field: the numeric field to sum
- Filters:
Document TypeandDocument No., so only lines of the same document are included
Every line then displays the document-level total.
Worked Example: Reserved Quantity from Reservation Entry
FlowFields can aggregate Reservation Entry to surface reserved quantities elsewhere. To show reserved quantity for an item on the Item Journal Line:
- Sum("Reservation Entry"."Quantity (Base)" WHERE("Item No." = FIELD("No."),
"Source Type" = CONST(37),
"Source Subtype" = CONST("1"),
"Reservation Status" = CONST(Reservation),
"Location Code" = FIELD("Location Filter"),
"Variant Code" = FIELD("Variant Filter"),
"Shipment Date" = FIELD("Date Filter")))
Reading the filters:
"Source Type" = CONST(37)restricts to Sales Line reservations (37 is the Sales Line table ID)"Source Subtype" = CONST("1")restricts to Sales Order documents"Reservation Status" = CONST(Reservation)restricts to entries with reservation status Reservation- The leading minus sign negates the Sum so reserved quantities display as a positive figure
- The
FIELD(...)references map the target table's own fields and flowfilters into the aggregation
Limitation: Sum Only Works on Stored Fields
A Sum FlowField can only aggregate a stored field that physically exists on the related table. It cannot sum a value that is itself computed — a per-line Unit Cost (LCY) × Quantity, for instance — because that product is not a stored field.
SOD provides no tool to create a stored line field holding the product of two other line fields; computing such a value is outside the scope of "Simple". See Limitations.
Feature Functions on Fields
A field in a feature can reference a custom Function through a FunctionID.
- Feature Functions on field settings work only within a Document Template Feature.
- They do not work in a Data Table Feature, Related Table, Data Query, or API publishing. Publishing a Data Table Feature that references a FunctionID on a field fails with an error that the FunctionID does not exist.
- The FunctionID must match the ID of an existing Function on the Simple Object, and the match is case-sensitive.
Feature Functions reference custom Functions — they are not a mechanism for simple built-in field calculations. There is currently no supported way to write a computed value (such as quantity × unit price) directly into a field in a Data Table Feature.
Validation
SOD's Field Settings does not expose per-field validation properties (Not Blank, numeric ranges, regex patterns). To enforce that a user-facing field has a value or matches a rule, create a Mandatory Field rule against an action on the page where the field appears — see Mandatory Fields Overview.
Saving Changes
Field settings save automatically as you modify them. Click Close to return to the Add Fields page.
Common Configuration Patterns
Reference Code Field
Type: Code
Size: 20
Add to Search Drop Down: Yes
ToolTip: Specifies the external reference code for integration purposes.
Notes Field
Type: Text
Size: 500
Add to Search Drop Down: No
ToolTip: Specifies additional notes or comments.
Percentage Field
Type: Decimal
Decimal Places: 2:2
ToolTip: Specifies the percentage value.
Clickable Link Field
Type: Text
Size: 250
Extended Data Type: URL
Editable: No
ToolTip: Specifies the web address for this record.
Personal Data Field
Type: Text
Size: 100
Add to Search Drop Down: No
ToolTip: Specifies personal contact information.