Place Fields on Pages
Placing fields on pages makes them visible to users. This page explains how to add both new custom fields and existing system fields to Business Central pages.
Accessing Field Placement
There are multiple ways to access field placement — and which one you use depends on whether the field is new or already exists.
A newly created custom field is not placed from "Add existing fields to pages and reports". That task lists only fields that already exist in Business Central; your new field will not appear there. Place it from the Placed on pages column on the Add Fields page instead. This applies to every field type, including Option fields intended as drop-downs.
From Add Fields Page — for fields you just created
- Open Tasks > Create new fields
- Find the row for your new field
- Click the Not Placed value in the Placed on pages column
- Select where the field should appear
From Existing Fields Page — for fields that already exist
- Open Tasks > Add existing fields to pages and reports
- Browse all fields from all tables
- Select fields and configure placement
From Page Customization
- Open Inspect > Pages
- Select a page and click Customize Page
- Add fields from the Fields part
The Existing Fields Page
The Existing Fields page shows all fields that can be placed on pages:
Columns
| Column | Description |
|---|---|
| Table No. | Source table ID |
| Table Name | Source table name |
| Field No. | Field ID |
| Field Name | Field name |
| Type | Data type |
| Field Class | Normal, FlowField, FlowFilter |
| Properties Exists | Has additional settings |
| Placed on pages | Count of page placements |
| Field Transfers | Has transfer configurations |
Filtering
Use filters to find specific fields:
- Filter by Table Name to see one table's fields
- Filter by Type to find specific data types
- Filter by "Placed on pages" = 0 to find unplaced fields
Four columns cannot be filtered because they are calculated:
- Properties changed / Properties Exists
- Placed on pages
- Field Transfers
- Placed on reports
This is a known limitation of the page.
Creating a Page Placement
Step 1: Select the Field
- Find the field you want to place
- Note the source table
Step 2: Choose the Target Page
- Click Place on Page or navigate to Page Placements
- Select the target page
- The page must have a source table compatible with your field
Step 3: Configure Placement Position
Set the placement type and anchor:
| Placement Type | Description |
|---|---|
| AddFirst | Add at the beginning of a group |
| AddLast | Add at the end of a group |
| AddBefore | Add before a specific field |
| AddAfter | Add after a specific field |
Step 4: Select the Anchor
For AddBefore/AddAfter, select the anchor field:
- Click the Anchor Field lookup
- Select the field or group to position relative to
- Your field will appear before or after this anchor
For AddFirst/AddLast, select the container:
- Select the group, repeater, or section
- Your field appears first or last in that container
The Page Placements Page
The Page Placements page shows all configured placements:
Columns
| Column | Description |
|---|---|
| Page No. | Target page ID |
| Page Name | Target page name |
| Page Type | Card, List, Document, etc. |
| Field No. | Placed field ID |
| Field Name | Placed field name |
| Placement Type | AddFirst, AddLast, AddBefore, AddAfter |
| Anchor Field | Reference point for placement |
| Placement Index | Order within the anchor |
| Hidden | Whether field is hidden |
| Readonly | Whether field is read-only |
| Multiline | Enable multiline editing |
| Field Style | Visual styling |
Placement Properties
Hidden
Set to Yes to add the field to the page but keep it hidden from users.
Use cases:
- Fields needed for logic but not display
- Fields to show conditionally
- Preparation for future visibility
Readonly
Set to Yes to display the field but prevent editing.
Use cases:
- Calculated or derived values
- Reference information
- Fields that shouldn't be changed from this page
Multiline
For text fields, enables multiline editing.
Use cases:
- Long descriptions
- Notes and comments
- Address fields
This is the mechanism for making a large text field render as a taller, multi-line box instead of one small single-line edit box. Set Multiline = Yes on the field's page placement — not on the field definition — from the Page Placements page.
Two clarifications:
- "Multiline" means multiple text lines. It does not change the field's data type or how it is stored. To show a long text, use a Text field (up to 2000 characters) with Multiline on its placement — not a Blob.
- Multiline does not enable multi-select. Setting it on an Option or Enum field does not allow choosing more than one value; the field still forces a single selection. SOD has no multi-select field — see Field Types.
Field Style
Apply visual styling to highlight the field. Available styles and the rendering documented in the enum:
| Style | Appearance |
|---|---|
| None | Standard appearance |
| Standard | Standard |
| StandardAccent | Blue |
| Strong | Bold |
| StrongAccent | Blue + Bold |
| Attention | Red + Italic |
| AttentionAccent | Blue + Italic |
| Favorable | Bold + Green |
| Unfavorable | Bold + Italic + Red |
| Ambiguous | Yellow |
| Subordinate | Grey |
Understanding Anchors
Anchors are critical for correct field placement.
What Can Be an Anchor
- Fields - Place relative to existing fields
- Groups - Place in specific groups
- Repeaters - Place in list views
- Parts - Place relative to FactBoxes
Finding Valid Anchors
- Open the page in Business Central
- Note the field or group you want to place near
- Use the Anchor Field lookup to find it
- Select the appropriate anchor
Anchor Selection Tips
- For Card pages, anchor to fields in the same section
- For List pages, anchor to column headers
- For Document pages, anchor to header or line fields appropriately
Placement on Different Page Types
Card Pages
Card pages show individual records with grouped fields.
Strategy:
- Place related fields in appropriate groups
- Use AddAfter to position near related fields
- Consider creating new groups for multiple custom fields
List Pages
List pages show multiple records in columns.
Strategy:
- New columns appear in the grid
- Position matters for initial visibility
- Use AddAfter to place near related columns
Worked example — showing a value in the list, not just inside the document. To display the sales order number on the Posted Sales Shipments list, use Add existing fields to pages and reports and place field 44 ("Order No.") on page 142.
The distinction matters: adding a field to a Card or Document header page shows it only once the document is open. Adding the same table's field to the corresponding List page shows it as a column in the overview, before anything is opened.
Repeaters (line lists)
A page whose rows come from a repeater needs the field placed inside the repeater, or it lands at the bottom of the page instead of in the list of rows.
Two ways to do it:
- AddAfter targeting a field that is inside the repeater —
AddAfter Description, for example - AddLast targeting the repeater control container itself. On the Planning Worksheet page the repeater control is named
Control1.
Worked example — Planning Worksheet. The worksheet lines are based on the Requisition Line table (246), so custom fields (including FlowFields) must be added to that table. The Planning Worksheet Line List page is 99000860 and the Planning Worksheet page is 99000852. Extend the line list page and place the field with AddAfter Description or AddLast in Control1. A typical reason to do this is to let users filter worksheet rows before carrying out action messages.
Document Pages
Document pages have header and lines sections.
Strategy:
- Header fields go in header groups
- Line fields go in the lines subpage
- Match field placement to data location
If a line field lands in the Totals part, set the Placement Type to AddAfter and choose an existing line field as the anchor.
Remember that placement only positions the field — it does not fill it. When the value comes from the record the line references (the Item on a Purchase Line, for example), the field must also be populated by a Field Transfer or a FlowField.
Role Centers
Role centers have cues, parts, activities, and actions.
Strategy:
- Add to appropriate cue groups
- Consider adding FactBox parts
- Use the RoleCenter feature template to add actions (Embedding, Creation, Processing, Reporting) that open pages or run reports
- Embed page parts (ListParts and CardParts) for inline content
Placing Multiple Fields
To place multiple fields efficiently:
- Open Existing Fields page
- Filter to your table
- Select multiple fields
- Use bulk placement options
Or use Page Customization:
- Open Inspect > Pages
- Select the target page
- Click Customize Page
- Add multiple fields from the Fields part
Verifying Placements
After configuring placements:
- Publish your extension
- Open the target page in Business Central
- Verify fields appear in correct positions
- Check hidden/readonly settings work correctly
Displaying Data From Another Table
A page is based on a single source table. To show a value stored in a different table you have two options:
- FlowField — looks up or calculates the value through a defined table relationship. This requires a logical key relationship between the page's source table and the target table that identifies exactly one record. See FlowFields.
- Field Transfer — copies and stores the value onto the record when it is created. See Field Transfers.
If neither applies, the remaining option is a code-based solution — a global variable plus AL code — which is beyond field configuration.
Whether cross-table display is achievable in SOD depends entirely on whether a valid relationship exists for the specific record being matched. With no logical key linking one source record to one target record, a FlowField is impossible.
Worked limitation. Adding the Approval for Payment field — stored in Purch. Inv. Header (122) — to the Purchase Credit Memo page (9309), which is based on Purchase Header (38), cannot be done cleanly. There is no reliable one-to-one relationship between a live Purchase Header and a posted Purch. Inv. Header; the link between credit memos and posted invoices is very loose, so no logical key matches the right record. A FlowField will not work and a plain lookup will not either — this needs custom code.
General rule: relationships between live documents and posted documents are typically not one-to-one, and generally cannot be bridged with FlowFields.
Which Table Relationships SOD Can See
SOD does not automatically discover every table connection.
- It does know the relationships in standard Microsoft Business Central objects. Those connections were examined by hand and mapped into SOD manually.
- It cannot discover connections that exist in third-party or partner extensions — custom fields, custom lookup or relation tables added by a partner. No such mapping exists for them.
Consequence: when a field on a page — a custom "Type" field on the Fixed Asset Card, say — relates to a table added by a partner, SOD will not offer that related page or its fields for placement, because it has no knowledge of the connection.
A field showing as Code in Page Zoom may well have an underlying table relation, but that does not help SOD detect it if the relation comes from a partner extension.
If SOD does not show the page you expect when placing a related field, this is why. Contact the partner who implemented the custom field or table — only they hold the connection details for their extension.
Custom Fields and the Mobile (Brick) View
On mobile, Business Central renders list rows with the Brick (tile) view, which shows fields by importance rather than every field on the page.
The behaviour to know: if a table does not define a Brick (or DropDown) field group in standard BC, and an extension adds a field to that group, Business Central creates the group dynamically containing only that field.
Consequence: adding a single custom field with Add to search drop down enabled to such a table makes the mobile tile view show only that custom field, hiding No., Description, Quantity, Posting Date and everything else — which renders the list unusable on mobile.
Known tables with no standard Brick/DropDown group: Assembly Header (900) and Posted Assembly Header (910), whose list pages are Assembly Orders (902) and Posted Assembly Orders (924).
Fix: disable Add to search drop down for the field(s) and republish. Business Central then falls back to its default mobile rendering.
Hidden is not a workaround. If placements are set to Hidden on a page whose Brick group has exactly one member that is no longer displayable, the tile view goes completely blank rather than falling back to the repeater's first columns.
Limitation: SOD's Add to search drop down governs only whether your field belongs to the Brick group. There is currently no way to author a complete Brick field group listing the standard identifying fields alongside a custom one — that requires a hand-written table extension. Doing it from SOD is a potential future enhancement.
Lookup Drop-Down Columns
Adding a custom field to the visible columns of an existing lookup drop-down — the list shown when picking a Customer No., with Name, City, Post Code and so on — is not currently supported.
The reason is that Microsoft only allows a field to be appended to the end of the lookup column list; inserting one at an arbitrary position is not permitted. This is on the product to-do list but is not available today.
Note this is entirely distinct from placing a field on a page as a visible field or column, which is supported and documented above. See also Lookup Fields.
Common Issues
Field Not Appearing
Check:
- Is the placement configured?
- Is the anchor valid?
- Is the field marked as Hidden?
- Is the extension published?
- Browser cache — open the page in an Incognito / private window. The Business Central client caches aggressively, which is why a field can appear for one user and not another.
- Page personalization — stale personalization can prevent a newly added field from displaying. Clear personalization for that page.
If none of these resolve it, send the generated .app file to support@hougaard.com, renamed to .txt so it passes mail filters.
Field in Wrong Position
Check:
- Is the anchor correct?
- Is the placement type correct (Before vs After)?
- Are there multiple fields competing for the same position?
- On a page with a repeater, does the anchor sit inside the repeater?
Field on Wrong Page
Check:
- Verify the Page No. in placement settings
- Check if field should be on subpage vs main page
Placement Lost After Changing a Field No.
Symptom: after changing a custom field's Field No., its placement on pages — and on subtable/subpage lists — disappears.
Cause: the placement and subtable configuration filter on the Field No., so changing the number disconnects them.
The data is not deleted. It remains in the table; it is only detached from the placement until a new field reuses the original number.
Action: re-verify and reconfigure page placement after changing any field's Field No. SOD does not currently update placement data automatically when a number changes; this is known behaviour under investigation.
The Target Page Does Not Appear
If you cannot find the page you want — a document line subform, for instance — when using "Add existing fields to pages and reports", the field probably needs to reach that table first.
Getting a master-table field onto a document line is not a page-placement problem: use a Field Transfer into the line table, or a Lookup FlowField on the line table. Once the field exists on the line table it can be placed normally.
Best Practices
Group Related Fields
Place related custom fields near each other:
- Customer fields near customer information
- Date fields near other dates
- Amount fields near totals
Maintain Page Organization
Respect the page's existing organization:
- Don't scatter fields randomly
- Follow the page's logical grouping
- Consider user workflow
Consider Mobile Views
Some placements may affect mobile experience:
- Critical fields should be easily accessible
- Test on different devices if relevant
Document Your Placements
Track where you've placed fields:
- Use consistent naming
- Keep records of anchor choices
- Note any special configurations