Customizing Business Central with AL Language: Basics
Customizing Microsoft Dynamics 365 Business Central
is done using AL (Application Language) in Visual Studio Code.
Unlike older versions of Dynamics NAV (which used C/AL
and directly modified core system code), Business Central uses an extension-based
model. This means core Microsoft code is never modified directly;
customizations sit on top as modular apps.
Core Development Concepts
1. Extension Model
Customizations exist as self-contained .app packages.
When Microsoft updates Business Central, your custom extensions remain intact
and continue functioning without breaking standard functionality.
2. Key AL Objects
Everything in Business Central is defined as an
object:
Tables (table): Define the database structure, schema, fields, and basic
validation logic.
Table Extensions (tableextension): Add new custom fields or logic to
standard Business Central tables (e.g., adding a "Customer Loyalty
Points" field to the core Customer table).
Pages (page): The user interface (UI) layouts (Cards, Lists, Worksheets)
through which users view and enter data.
Page Extensions (pageextension): Add new fields, buttons, or modify
layouts on standard Business Central pages.
Codeunits (codeunit): Containers for business logic and
custom functions.
Reports & Queries: Used for document printing, data
extraction, and business intelligence (BI) integration.
Basic Environment Setup
Install Tools: Install Visual Studio Code and the AL Language
extension from the VS Code Marketplace.
Create a Project: Open the Command Palette (Ctrl+Shift+P) in VS Code
and run AL: Go! to generate a new project structure.
Configure Connection: Update the launch.json file to point
to your Business Central Sandbox environment or local Docker container.
Download Symbols: Run AL: Download Symbols from the Command Palette to
download standard Business Central metadata to your project.