Extensibility
Extensibility in Business Central AL development: how to extend code flow, tables, pages, reports, enums, and permission sets without changing base code. It also covers events, requesting changes to Microsoft's code, client add-ins, Power BI embedding, and System Application modules.
Path: Development > Extensibility · tier official · system development · narrative reviewed (checked by Opus)
Overview
Extensibility is the section for AL developers who need to change or add to Business Central behavior without modifying base code. The overview page lists the options: extending code flow through events, adding table fields, modifying page layout, extending reports, creating permission sets, and extending enumerations. The extension objects overview explains how table, page, report, enum, and permission set extension objects add fields, actions, layout, and values to existing objects.
The subtopics go deeper. Extending AL objects covers page, table, report, enum, and permission set extensions, plus event types and application areas. Extending the base application is the largest subtopic, with 15 pages. Using events covers event types, publishing, raising, subscribing, isolated events, the Event Recorder, deprecating external business events, UI notifications, and a workflow events walkthrough. Extensibility requests explains how to ask Microsoft for changes to the AL codebase through the BCApps repository. It covers designing and justifying new events, including IsHandled events, and contributing a change directly. Developing client add-ins covers performance and styling of control add-ins. Embedding Power BI covers putting Power BI reports, scorecards, and dashboards on Business Central pages.
Start with the Extensibility overview, then the extension objects overview. Move to Using events when you need to hook into existing logic. Use Get started with modules if you want to build or change System Application modules in the open-source repository.
Key points
- Extension objects: table, page, report, enum, and permission set extensions add fields, actions, layout, and values to existing objects.
- Code flow is extended through events. The Using events subtopic covers publishing, raising, subscribing, isolated events, and the Event Recorder for finding events.
- Extensibility requests describes how to ask Microsoft for changes to the AL codebase through the BCApps repository. It covers how to justify new events, including IsHandled events, and how to contribute a change directly.
- Get started with modules covers System Application module development: AL requirements, Git, environment setup, and building or modifying modules.
- Client add-in guidance covers performance (AL trigger invocation, callbacks, payload size) and styling (colors, typography, CSS).
- Embedding Power BI covers embedding reports, scorecards, and dashboards in pages, including the embed framework and context handling.
- The extension objects overview covers the Extensible property, and Extending AL objects also covers application areas.
Subtopics
- Extensibility requests (5 pages)
- Extending AL objects (7 pages)
- Extending the base application (15 pages)
- Using events (10 pages)
- Developing client add-ins (2 pages)
- Embedding Power BI (2 pages)
More Learn pages
- Extensibility overview: How you can extend functionality in Dynamics 365 Business Central.
- Extension objects overview: Get an overview of the extension objects you can create in AL for Business Central.
- Get started with modules: Provides an overview of what you need to work with modules in the System Application.
Videos, posts and code changes
Linked by a Haiku matcher with a grounding quote from the item’s summary (link/topics.ts); machine-generated.
- #10058 [Master]-Withholding Tax Posting generates Unbalanced G/L Entries when Multiple Withholding Tax Rates are used on one Purchase Invoice. (code change): “Fixes unbalanced G/L entries when one purchase invoice uses several withholding tax rates”
- #8085 [MCP] Server Features in MCP configuration: API Tools, Dynamic Tool Mode, Data Query Tools (Preview) (code change): “Server Features surface to MCP configuration allowing admins to enable Data Query Tools”
- #8115 Subscription Billing: respect Default Dimension Priorities on Subscription Lines (code change): “Subscription Billing now respects Default Dimension Priorities when creating subscription lines”
- #8634 [MCP] Register MCP server as a Copilot capability (code change): “MCP server is now registered as a Copilot capability”
- #9272 Fix duplicate in-transit location in localized Contoso demo data (code change): “Replaced the warehousing module’s independent in-transit location definition”
- BC Friday Tips #75 Dynamics BC Excel Reports (community post): “Excel Reports objects in Business Central belong to the Dynamics BC Excel Reports extension”
- What’s New: Extending E-Documents with New Interface (2025 release wave 1) (video): “Extending E-Documents with New Interface; interfaces; api design”
- Let’s pass MB-820: Episode 19 - Extend ApplicationArea with custom areas (video): “Application Area extension; Enable custom area function; Application area validation”
Business Central pages and reports
The pages, reports and queries this hub’s Learn pages name (ms.search.form, API reference), joined to the code by exact object id (data/index/docs-objects.json); a page shows the table it runs on.
- Page 4500 “Current User Email Account” · on Table 4508 “Email - Outlook Account” · via Extending the base application
- Page 4503 “Microsoft 365 Email Account” · on Table 4508 “Email - Outlook Account” · via Extending the base application
- Page 4504 “Microsoft 365 Email Wizard” · captioned “Set up Microsoft 365 email account” · on Table 4508 “Email - Outlook Account” · via Extending the base application
- Page 4511 “SMTP Account Wizard” · captioned “Set up SMTP Account” · on Table 4511 “SMTP Account” · via Extending the base application
- Page 4512 “SMTP Account” · on Table 4511 “SMTP Account” · via Extending the base application
- Page 6103 “E-Document Services” · on Table 6103 “E-Document Service” · via Extending the base application
- Page 6133 “E-Document Service” · on Table 6103 “E-Document Service” · via Extending the base application
- Page 6316 “Sustainability Report Power BI” · captioned “Sustainability Report (Power BI)” · via Embedding Power BI
- Page 6317 “To Net Zero Carbon Power BI” · captioned “Journey to Net Zero Carbon (Power BI)” · via Embedding Power BI
Source: Microsoft Learn (CC BY 4.0). Descriptions are Learn’s own.
What Learn documents here 8 of 42 Learn pages
- learnContribute a change yourself2025-04-02
- learnControl add-in performance best practices2026-06-24
- learnControl Add-in Style Guide2021-04-01
- learnCreate an extensibility request2025-04-02
- learnDeprecate external business events2025-07-02
- learnEmbed Power BI reports in pages2025-05-12
- learnEvent example2021-04-01
- learnEvent types2025-05-21
Show 32 more
- learnEvents discoverability2025-05-21
- learnExtend Pages Based on the Date Virtual Table2026-08-24
- learnExtending Application Areas2025-01-10
- learnExtending currency exchange rate adjustments2023-12-28
- learnExtending Customer, Vendor, and Item Templates2021-10-14
- learnExtending Document Sharing and OneDrive for Business2021-10-01
- learnExtending Email2022-05-19
- learnExtending error messages with recommendations2025-11-17
- learnExtending G/L entry aggregations when posting invoices2024-01-03
- learnExtending Item Charges Distribution Methods2021-04-01
- learnExtending Price Calculations2021-04-01
- learnExtending Shopify2026-09-03
- learnExtending the Data Archive extension2023-12-21
- learnExtending the e-documents functionality2025-01-27
- learnExtensibility overview2026-07-02
- learnExtensible Enums2025-05-21
- learnExtension objects overview2024-03-11
- learnGet started with modules2024-03-01
- learnIntroduction to Business Central and Power BI2026-06-17
- learnIsolated events in AL2021-11-11
- learnMinimum requirements for new IsHandled events2025-08-29
- learnNotifications2025-01-21
- learnPage extension object2024-11-13
- learnPermission Set Extension Object2025-06-02
- learnPublishing a code-customized Base Application2021-04-01
- learnPublishing Events2021-04-01
- learnRaising Events2021-04-01
- learnReport extension object2024-11-11
- learnSubscribing to events2024-04-18
- learnTable extension object2024-04-17
- learnThe Microsoft_Application.app file2024-01-16
- learnTypes of events for extensibility2025-08-15