Skip to main content

Last updated: May 2026

Practice Exam

MB-820Dynamics 365 Business Central Developer Associate

Test your knowledge with official exam-style questions

Questions25Passing700Exam time120 min

Questions and options are shuffled each attempt

Microsoft Certified: Dynamics 365 Business Central Developer AssociatePractice Set 1: All Questions & Explanations

Full question text, answer options, and explanations for this practice set — a spoiler-free alternative is the interactive quiz above for scored, shuffled practice.

  1. 1. You are a Dynamics 365 Business Central developer explaining the platform to a new team member. Which statement best describes the core solution and extensions approach in Microsoft Dynamics 365 Business Central?

    • A. All customizations must be made directly in the base application source code
    • B. Extensions are layered on top of the base application without modifying its source code(correct)
    • C. Each customer receives a separate deployment of the base application with their customizations merged
    • D. Customizations are stored in separate SQL databases that override base application tables

    Explanation: Microsoft Dynamics 365 Business Central uses an extension model where customizations are packaged as extensions (.app files) that run on top of the unmodified base application. This approach ensures upgrades do not break customizations and allows for clean separation of ISV and customer-specific code.

  2. 2. Your organization is evaluating Microsoft Dynamics 365 Business Central deployment options. What is a key difference between Business Central online and Business Central on-premises?

    • A. Business Central online supports AL extensions, while on-premises uses C/AL modifications only
    • B. Business Central online is managed by Microsoft with automatic updates, while on-premises requires the customer to manage updates(correct)
    • C. Business Central on-premises supports more users than Business Central online
    • D. Business Central online does not support per-tenant extensions

    Explanation: Business Central online is a SaaS offering managed by Microsoft, including automatic minor and major updates. Business Central on-premises gives customers control over their infrastructure and update schedule. Both support AL extensions, but online has additional AppSource requirements.

  3. 3. You are preparing to publish an extension for Microsoft Dynamics 365 Business Central on AppSource. Which requirement must your app meet before it can be listed on AppSource?

    • A. The app must be written in C/AL and converted to AL before submission
    • B. The app must pass technical validation, including code analysis, and meet business requirements set by Microsoft(correct)
    • C. The app must be deployed to at least 10 production tenants before AppSource listing
    • D. The app must use only tables from the System App and cannot extend base app tables

    Explanation: To publish an app on AppSource, the extension must pass Microsoft's technical validation process, which includes automated code analysis using AppSourceCop, and must meet business and technical requirements defined by Microsoft. There is no requirement for prior production deployments.

  4. 4. You are setting up a development environment for Microsoft Dynamics 365 Business Central. Which tool is the primary development environment used to write AL code for Business Central extensions?

    • A. Microsoft Visual Studio 2022
    • B. Visual Studio Code with the AL Language extension(correct)
    • C. Microsoft Dynamics NAV Development Environment (C/SIDE)
    • D. Microsoft Azure DevOps Pipelines editor

    Explanation: The primary development environment for Microsoft Dynamics 365 Business Central AL extensions is Visual Studio Code with the AL Language extension provided by Microsoft. C/SIDE (C/AL) has been deprecated. Visual Studio 2022 is not used for AL development.

  5. 5. You are developing a Microsoft Dynamics 365 Business Central extension and need to debug an issue that occurs when a user posts a sales order. The issue only reproduces in the sandbox environment. What is the most appropriate approach to debug this extension?

    • A. Add Text message outputs throughout the code and review the event log
    • B. Use the Visual Studio Code debugger to set breakpoints and attach to the Business Central sandbox session(correct)
    • C. Export the extension as a .txt file and review the code statically
    • D. Enable verbose logging in the Business Central administration center and download logs

    Explanation: Visual Studio Code provides integrated debugging for Business Central AL extensions. You can set breakpoints in AL code and attach the debugger to a Business Central sandbox environment session. This allows you to step through code execution, inspect variables, and identify the root cause of issues.

  6. 6. You are managing multilanguage development for a Microsoft Dynamics 365 Business Central extension that needs to support English, German, and French. Which approach should you use to implement multilanguage support in AL?

    • A. Create separate AL extension files for each language
    • B. Use XLIFF translation files to translate captions and messages defined in the AL objects(correct)
    • C. Store translations in a custom table and load them at runtime using AL code
    • D. Set the Language property on each AL object to specify its target language

    Explanation: Business Central supports multilanguage development using XLIFF (.xlf) files. The AL compiler generates a base XLIFF file from the captions and messages in your AL objects. You then create translated versions of the XLIFF file for each supported language. These translation files are included in the extension package.

  7. 7. You are extending Microsoft Dynamics 365 Business Central and need to add a new field to an existing page and table to store a custom approval date. You must not modify the base application. What should you create?

    • A. A new table and a new page that replaces the existing page
    • B. A table extension object and a page extension object targeting the existing table and page(correct)
    • C. A codeunit that dynamically adds fields to the table at runtime
    • D. A report that displays the approval date from a related table

    Explanation: In Business Central AL development, table extensions allow you to add fields to existing tables without modifying the base application. Page extensions allow you to add controls to existing pages. Together, they are the correct approach to non-destructively extending Business Central objects.

  8. 8. You are designing a Role Center page in Microsoft Dynamics 365 Business Central for a sales manager. Which page type should you use to create the Role Center?

    • A. CardPage
    • B. RoleCenter(correct)
    • C. ListPage
    • D. WorksheetPage

    Explanation: The RoleCenter page type in AL is specifically designed for Role Center pages. Role Centers provide a personalized home page experience for users, containing parts such as Headlines, Cues, and embedded lists. Other page types such as Card, List, and Worksheet serve different purposes.

  9. 9. You are developing reports in Microsoft Dynamics 365 Business Central using AL. Which two options describe valid report layout types you can use? Choose 2.

    • A. RDLC layout using SQL Server Reporting Services
    • B. Word layout using Microsoft Word document templates(correct)
    • C. Excel layout using Microsoft Excel workbooks(correct)
    • D. PDF layout rendered directly from AL code
    • E. HTML layout rendered in the Business Central web client

    Explanation: Business Central supports multiple report layout types. Word layouts use Microsoft Word templates and are ideal for printed documents. Excel layouts use Microsoft Excel workbooks and are suited for data analysis reports. RDLC layouts are also supported but use the built-in Business Central rendering engine, not SQL Server Reporting Services directly. PDF and HTML are not standalone layout types.

  10. 10. You are creating an XMLport in Microsoft Dynamics 365 Business Central to import data from an external XML file. The XML file has a nested structure where each Order element contains multiple OrderLine elements. How should you configure the XMLport to handle this relationship?

    • A. Create a single node for all elements and use AL code to parse the nested structure manually
    • B. Define a parent node for Order and a child node for OrderLine, linking them in the XMLport object(correct)
    • C. Use separate XMLport objects for Order and OrderLine, then merge the data in a codeunit
    • D. Set the Indentation property on each node to define the parent-child relationship

    Explanation: XMLport objects in Business Central support nested XML structures by defining parent and child nodes hierarchically. You define a node for Order and then define OrderLine as a child node under it. The XMLport engine handles the nesting during import/export. Using separate XMLport objects would be inefficient and error-prone.

  11. 11. You are developing a Microsoft Dynamics 365 Business Central extension. You need to run custom AL code when the extension is first installed on a tenant and also when it is upgraded from a previous version. Which codeunit subtype should you use for each scenario?

    • A. Use a Subtype of Normal for installation and a Subtype of Upgrade for upgrades
    • B. Use a Subtype of Install for installation and a Subtype of Upgrade for upgrades(correct)
    • C. Use the OnAfterCompanyOpen trigger in a codeunit with Subtype set to Management for both
    • D. Use a single codeunit with Subtype set to InstallAndUpgrade for both scenarios

    Explanation: Business Central AL provides two special codeunit subtypes for lifecycle management. A codeunit with Subtype = Install contains the OnInstallAppPerCompany and OnInstallAppPerDatabase triggers that run when the extension is first installed. A codeunit with Subtype = Upgrade contains the OnUpgradePerCompany and OnUpgradePerDatabase triggers that run when upgrading to a new version. There is no combined InstallAndUpgrade subtype.

  12. 12. You are designing a query object in Microsoft Dynamics 365 Business Central that needs to return the total sales amount grouped by customer. Which property or function should you use on the Amount field to aggregate the data?

    • A. Set the ColumnFilter property on the Amount column
    • B. Set the Method property to Sum on the Amount column in the query object(correct)
    • C. Use the CALCFIELDS function in a codeunit after running the query
    • D. Set the GroupBy property on the Amount column

    Explanation: In Business Central query objects, aggregation is configured by setting the Method property on a column. Setting Method = Sum on the Amount column will aggregate the total sales amount. The GroupBy grouping is defined by columns that do not have an aggregation method. CALCFIELDS is used for FlowFields and is not a query aggregation technique.

  13. 13. You need to create a permission set object in your Microsoft Dynamics 365 Business Central extension to control access to a new custom table. Which AL object type should you use?

    • A. Entitlement
    • B. PermissionSet(correct)
    • C. Profile
    • D. SecurityFilter

    Explanation: The PermissionSet AL object type is used to define a named set of permissions that can be assigned to users. It specifies which objects users can access and what operations (read, insert, modify, delete, execute) they can perform. Entitlement objects are used for licensing-based access control, not for defining object-level permissions.

  14. 14. You are designing a codeunit in Microsoft Dynamics 365 Business Central and need to implement the publisher-subscriber pattern. Which two elements must be defined to use events correctly? Choose 2.

    • A. An event publisher procedure marked with the [IntegrationEvent] or [BusinessEvent] attribute(correct)
    • B. An event subscriber procedure marked with the [EventSubscriber] attribute in any codeunit(correct)
    • C. A trigger procedure in the same codeunit as the publisher
    • D. A dedicated Events table to store event registrations
    • E. An interface that the subscriber codeunit must implement

    Explanation: Business Central uses a publisher-subscriber event model. The publisher is a procedure marked with [IntegrationEvent] or [BusinessEvent] that raises the event. The subscriber is a procedure in any codeunit marked with [EventSubscriber] that specifies which event to listen to. No Events table or interface is required for standard event handling.

  15. 15. You are building a report in Microsoft Dynamics 365 Business Central that requires a request page so users can specify filters before the report runs. Which AL element should you define to add a request page to your report?

    • A. A RequestPage section within the report object(correct)
    • B. A separate Page object of type RequestPage linked to the report
    • C. A Codeunit that opens a modal page before the report triggers fire
    • D. The UseRequestPage property set to true on the report object

    Explanation: In Business Central AL, you add a request page to a report by defining a RequestPage section directly within the report object. The RequestPage section acts like a page and can contain fields and filters. The UseRequestPage property controls whether the request page is displayed, but the RequestPage section defines its content.

  16. 16. You are writing AL code in Microsoft Dynamics 365 Business Central and need to handle an error gracefully without crashing the current transaction. Which AL construct should you use to catch runtime errors?

    • A. IF NOT GUIALLOWED THEN
    • B. IF NOT Codeunit.Run() THEN
    • C. TryFunction marked with [TryFunction] attribute(correct)
    • D. ASSERTERROR statement

    Explanation: In Business Central AL, the [TryFunction] attribute marks a procedure as a try function. If an error occurs inside the try function, the error is caught and the function returns false instead of rolling back the transaction. This allows you to handle errors gracefully. ASSERTERROR is used in test code to verify that an error occurs. IF NOT Codeunit.Run() can catch errors but requires running a full codeunit.

  17. 17. You are developing a Microsoft Dynamics 365 Business Central extension and need to onboard new users with contextual guidance when they first open a key page. You want to display a short tooltip-like popup that explains a field when a user hovers over it. Which AL feature should you implement?

    • A. Create a tour using assisted setup wizards
    • B. Add teaching tips to the relevant page controls using the AboutTitle and AboutText properties(correct)
    • C. Create a custom notification bar that appears when the page loads
    • D. Add a factbox panel with help text displayed next to the page

    Explanation: Business Central's user assistance model includes teaching tips, which are contextual popups that provide guidance on specific controls. You implement teaching tips by setting the AboutTitle and AboutText properties on page controls. These appear as tooltip-style overlays when users interact with the control, supporting in-context learning.

  18. 18. In Microsoft Dynamics 365 Business Central AL development, which data type should you use to manipulate JSON data received from an external REST API response?

    • A. XmlDocument
    • B. JsonObject(correct)
    • C. Dictionary of [Text, Text]
    • D. Variant

    Explanation: Business Central AL provides built-in JSON data types including JsonObject, JsonArray, JsonToken, and JsonValue for working with JSON data. JsonObject is used to represent a JSON object and provides methods like Get(), Add(), and ReadFrom() to manipulate JSON. XmlDocument is for XML data, not JSON.

  19. 19. You are implementing a custom profile in Microsoft Dynamics 365 Business Central using AL to configure a role-based UI layout. Which two elements must you include in the profile definition? Choose 2.

    • A. A RoleCenter property pointing to the Role Center page for this profile(correct)
    • B. A Caption property to define the display name of the profile
    • C. A UserName property to bind the profile to a specific user
    • D. A ProfileID property that uniquely identifies the profile(correct)
    • E. A Permissions property that defines access rights for the profile

    Explanation: A Profile object in Business Central AL requires a ProfileID (the unique identifier for the profile) and a RoleCenter property (which specifies the Role Center page displayed when users with this profile log in). The Caption is optional. UserName is not a property of a Profile object — profiles are assigned to users in the UI or via permission sets, not within the object definition.

  20. 20. You are developing a test codeunit in Microsoft Dynamics 365 Business Central to validate the behavior of a posting routine. Which attribute must you apply to a procedure to mark it as a test function within a test codeunit?

    • A. [Test](correct)
    • B. [TestFunction]
    • C. [IntegrationTest]
    • D. [UnitTest]

    Explanation: In Business Central AL, test codeunits have Subtype = Test. Within a test codeunit, individual test procedures are marked with the [Test] attribute. This tells the test runner to execute these procedures as test cases. The other attributes listed are not valid AL test attributes.

  21. 21. You are managing telemetry for a Microsoft Dynamics 365 Business Central extension deployed to Business Central online. You need to monitor custom events generated by your extension in Azure Application Insights. What must you do to emit custom telemetry signals from AL code?

    • A. Use the LogMessage procedure in a codeunit with Subtype set to Telemetry
    • B. Use Session.LogMessage() with a custom event ID, message, verbosity, and data classification(correct)
    • C. Write events to a custom Business Central table and export them to Azure via a scheduled job
    • D. Enable the Telemetry toggle in the Business Central admin center and all AL code is automatically tracked

    Explanation: To emit custom telemetry from AL code in Business Central, you use the Session.LogMessage() procedure. You provide a custom event ID, a message, a verbosity level, and a data classification. These events are then sent to the Azure Application Insights resource configured for the environment or extension. A dedicated Telemetry codeunit subtype does not exist.

  22. 22. You are configuring telemetry for a Microsoft Dynamics 365 Business Central extension. You want to send telemetry data to your own Azure Application Insights resource rather than the environment's default resource. What should you configure?

    • A. Set the applicationInsightsConnectionString in the extension's app.json file(correct)
    • B. Register your Application Insights key in the Business Central admin center under the tenant settings
    • C. Set the TelemetryScope property in each codeunit to ExtensionPublisher
    • D. Configure a Power Automate flow to forward Business Central logs to Azure Monitor

    Explanation: Extension publishers can direct telemetry to their own Azure Application Insights resource by specifying the applicationInsightsConnectionString (or applicationInsightsKey for older versions) in the extension's app.json manifest file. This routes the extension's telemetry to the publisher's Application Insights resource, separate from the environment telemetry.

  23. 23. You are integrating Microsoft Dynamics 365 Business Central with an external system using REST. You need to call an external REST API endpoint from AL code and parse the JSON response. Which AL objects should you use to make the HTTP request and read the response?

    • A. HttpClient and JsonObject(correct)
    • B. WebServiceClient and XmlDocument
    • C. HttpRequestMessage and DataStream
    • D. RestClient and JsonToken

    Explanation: In Business Central AL, you use the HttpClient data type to make outbound HTTP requests to external REST services. The response body can then be read into a JsonObject, JsonArray, or JsonToken to parse the JSON response. There is no WebServiceClient or RestClient in AL. XmlDocument is for XML, not JSON.

  24. 24. You are creating a custom API page in Microsoft Dynamics 365 Business Central to expose sales order data to an external application. Which page type should you use to define this API endpoint?

    • A. ListPage
    • B. API(correct)
    • C. CardPage with IsAPI property set to true
    • D. WebServicePage

    Explanation: Business Central AL supports a dedicated page type of API specifically for exposing data as RESTful API endpoints. API pages are configured with properties such as APIPublisher, APIGroup, APIVersion, EntityName, and EntitySetName to define the endpoint structure. They do not render in the Business Central UI but are accessible via the OData/API URL.

  25. 25. You are designing the data model for a Microsoft Dynamics 365 Business Central extension. You need to define an enum in AL that can be extended by other extensions. Which two attributes or properties must you include to allow other extensions to add values to your enum? Choose 2.

    • A. Set the Extensible property to true on the enum object(correct)
    • B. Mark the enum with the [AllowExtensions] attribute
    • C. Publish an event from the enum to notify subscribers of new values
    • D. Use enumextension objects in other extensions to add new values(correct)
    • E. Set the scope of the enum to Public

    Explanation: To create an extensible enum in Business Central AL, you must set the Extensible property to true on the enum definition. Other extensions can then add new values by creating enumextension objects that target the extensible enum. The [AllowExtensions] attribute does not exist in AL. Publishing events and setting scope to Public are not required for enum extensibility.