Free Microsoft MB-820 Practice Test & Real Exam Questions

  • Exam Code/Number: MB-820
  • Exam Name/Title: Microsoft Dynamics 365 Business Central Developer
  • Certification Provider: Microsoft
  • Corresponding Certification: Microsoft Dynamics 365
  • Exam Questions: 173
  • Updated On: Oct 06, 2026
Drag and Drop Question
You create the following Vendor table and Item table in Business Central.
Vendor:

Item:

You require the following data set to assign vendors to items.

You need to create a query to assign the vendors.
Which three code blocks should you use to develop the solution? To answer, move the appropriate code blocks from the list of code blocks to the answer area and arrange them in the correct order.
NOTE: More than one order of answer choices is correct. You will receive credit for any of the correct orders you select.
Correct Answer:

Explanation:
To create a query that assigns vendors to items in Business Central, use the following code blocks in sequence:
dataitem(Vendor; Vendor)
dataitem(Item; Item)
DataItemLink = "Vendor No." = Item.Vendor_No;
Creating a query:
In Business Central, a query object is used to combine data from multiple tables. You start by specifying each table as a data item. In this case, you would start with the Vendor table and then the Item table. After specifying the data items, you need to link them together. The DataItemLink property is used to establish a relationship between two data items based on a common field.
Here, you are linking the Vendor and Item tables on the "Vendor No." field, which is present in both tables. This link ensures that the query will return a dataset that includes related records from both tables based on the vendor number. The order of the code blocks ensures the logical flow and relationships between tables as required for the query.
You must expose data from three related tables in a single, read-optimized, joined result set that can be used in a report and published as an OData web service.
Which object type should you create?
Correct Answer: A Vote an answer
Explanation: Only visible for Pass4Leader members. You can sign-up / login (it's free).
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution.
After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen.
A company plans to optimize its permission sets.
The company has the following permission sets:

You need to provide the following implementation for a third permission set:
- Create a new Permission Set C that is a composite of Permission Set A and Permission Set B.
- Assign Permission Set C to a user.
You need to ensure that the user has only read access to the Job table.
Solution: Set the IncludedPermissionSets property to Permission Set A.
Does the solution meet the goal?
Correct Answer: A Vote an answer
Explanation: Only visible for Pass4Leader members. You can sign-up / login (it's free).
Case Study 1 - Contoso, Ltd
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies.
The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals.
All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications.
The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process.
Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations.
Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process.
An AL extension must be created for handling archived issues.
Business Central development guidelines must be followed when implementing modules.
A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue.
Code modifications will be required over time.
The Issue Management process must be split into two extensions:
ISSUE BASE: main extension
ISSUE EXT: second extension with dependency from ISSUE BASE
In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal.
In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:

The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:

In the ISSUE EXT extension, you create a tableextension object of the Issue table.
The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:

Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
The API must have the lowest possible impact on the production environment when used during working hours.
The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:

You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd.
The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint.
The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:

Each order no. must be retrieved.
Hotspot Question
You need to parse the API JSON response and retrieve each order no. in the response body.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:

Explanation:
Box 1: JToken.ReadFrom(Data)
In Dynamics 365 Business Central (AL language), the standard way to parse a JSON string into a usable JSON object or token is by calling the static method ReadFrom on a JsonToken variable.
Because a JsonToken is a base container that can hold either a JsonObject, JsonArray, or a primitive value, it safely reads the incoming payload into your JTOKEN variable using JTOKEN.ReadFrom(Data); Box 2: JObject.SelectToken('results', JToken); In Microsoft Dynamics 365 Business Central (AL language), the JsonObject.SelectToken method takes two arguments: the path string (e.g., 'results') and an out variable of type JsonToken to store the result. It returns a boolean indicating whether the token was found. Since JObject and JToken are already declared in your variables, this properly retrieves the results array token.
Box 3: If JObject.SelectToken(TokenValue, JToken) then
If JObject.SelectToken(TokenValue, JToken) then is the correct code to substitute for the placeholder X.
In Microsoft Dynamics 365 Business Central (AL language), the JsonObject.SelectToken method is used to find a nested token by its path.
Syntax: JsonObject.SelectToken(Path: Text, var Token: JsonToken): Boolean Behavior: It takes the path string (in this case, the parameter TokenValue which holds 'order_no') as the first argument, and stores the found result in the JToken variable passed by reference as the second argument. It returns a boolean (true if the token is found), making it perfect for an if conditional check before extracting its value.
Case Study 1 - Contoso, Ltd
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies.
The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals.
All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications.
The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process.
Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations.
Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process.
An AL extension must be created for handling archived issues.
Business Central development guidelines must be followed when implementing modules.
A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue.
Code modifications will be required over time.
The Issue Management process must be split into two extensions:
ISSUE BASE: main extension
ISSUE EXT: second extension with dependency from ISSUE BASE
In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal.
In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:

The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:

In the ISSUE EXT extension, you create a tableextension object of the Issue table.
The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:

Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
The API must have the lowest possible impact on the production environment when used during working hours.
The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:

You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd.
The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint.
The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:

Each order no. must be retrieved.
You need to determine why the extension does not appear in the tenant.
What are two possible reasons for the disappearance? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
Correct Answer: A,D Vote an answer
You have a query object named Items Query.
You write code using an Items Query query variable.
You need to export the Items Query query data to a file.
Which SaveAs function should you use?
Correct Answer: D Vote an answer
Explanation: Only visible for Pass4Leader members. You can sign-up / login (it's free).
A company has a test application.
A user observes the following error messages when running the test:
- "Unhandled UI: Message"
- "Unhandled UI: Confirm"
You need to resolve the errors.
Which action should you take?
Correct Answer: D Vote an answer
Explanation: Only visible for Pass4Leader members. You can sign-up / login (it's free).
Drag and Drop Question
A company is examining Connect apps and Add-on apps for use with Business Central.
You need to describe the development language requirements for Connect apps and Add-on apps.
How should you describe the app language requirements? To answer, move the appropriate app types to the correct descriptions. You may use each app type once, more than once, or not at all.
You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Correct Answer:
Case Study 3 - Fabrikam Inc
Company background and technical environment
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages.
The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements:
- Development
- Control
- Accounting
- Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table
Description: A short description of a received document
Document: A media type that has the document
Comments: Comments about the document
Date: When the document was imported
Amount: Amount related with the imported document
Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements:
- Downloads a file only in Microsoft Excel.
- Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:

The accounting department must expose data such as the following:

The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:

Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
Hotspot Question
You need to assist the development department with setting up Visual Studio Code to design the purchase department extension, meeting the quality department requirements.
How should you complete the app.json file? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Hotspot Question
A company plans to customize its per tenant extension reports.
The company has the following requirements for the customization:
- Child data items must not be displayed on the request page for some
master detail reports.
- Selecting key filter fields takes users too much time. The
customization must decrease the amount of time to select the fields.
You need to optimize the report request page.
Which actions should you configure? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Drag and Drop Question
You are creating the following procedure that uses the List data type:

The results are not as you expected.
You plan to call the procedure twice with the following values of myVar:
- Item 1
- Item 2
You need to identify the results of using the two procedure calls.
What are the returned values? To answer, move the appropriate returned values to the correct myVar values. You may use each returned value once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Correct Answer:

Explanation:
Box 1: 2
There are two Item 1 in the list.
Box 2: 0
There are 0 Item 2 in the list.
Reference:
https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/methods-auto/list/list-data-type