bcquality/microsoft/knowledge/performance/use-dedicated-lookup-pages-not-full-lists.md
Jesper Schulz-Wedde b6da405376 Improve partner onboarding and documentation navigation
Lead with a complete plugin quick start and add task-oriented usage, troubleshooting, customization, and contribution guides. Preserve the broader plugin framing, correct conflicting contract guidance, support Agents folder reviews, and align repository validation. Convert existing sample references to clickable links without changing knowledge rules.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
2026-09-09 17:25:29 +02:00

1.4 KiB

bc-version domain keywords technologies countries application-area
all
performance
lookuppageid
lookup-page
list-page
factbox
table-relation
dropdown
al
w1
all

Point lookups at a dedicated lookup page, not the full list

Contributions welcome — open a PR to refine or extend this article.

Description

A TableRelation lookup opens the table's LookupPageId. If that is the full list page, the lookup runs that page's triggers, FactBoxes, and calculated fields even though the dropdown never shows them. The base application added dedicated Customer, Vendor, and Item lookup pages for this reason. Agents set LookupPageId to the main list because it already exists.

Best Practice

Give master tables a slim lookup page (PageType = List, few columns, no FactBoxes, no heavy OnAfterGetRecord) and assign it to LookupPageId. Keep the full list for DrillDownPageId and the role-explorer entry.

See sample: use-dedicated-lookup-pages-not-full-lists.good.al.

Anti Pattern

LookupPageId = Page::"... List" on a table that already has (or should have) a lookup page. Opening a field lookup then pays list-page cost. The signal is LookupPageId pointing at a page that declares FactBoxes or a wide repeater.

See sample: use-dedicated-lookup-pages-not-full-lists.bad.al.