Before getting into how to pass the Microsoft MB-820 exam plan, let’s first understand Business Central’s certification:

As you know, Business Central’s certification is only Microsoft Certified: Dynamics 365 Business Central Functional Consultant Associate released in 2020. More details: Exam MB-800: Microsoft Dynamics 365 Business Central Functional Consultant

Starting in January 2024, Microsoft released the second Business Central certification exam: MB-820: Dynamics 365 Business Central Developer Associate

The new certification focuses on Dynamics 365 Business Central, a comprehensive business management solution for small and medium-sized organizations that automates and streamlines business processes and connects sales, service, finance, and operations. This helps organizations work smarter, adapt faster, and Improve performance. In this role, Business Central Developers create applications that extend the solution (whether developing new modules or modifying existing ones) and are responsible for troubleshooting and debugging issues in the system.

The exam consists of 6 main parts:

  1. Describe Business Central (10-15%)
  2. Install, develop, and deploy for BC (10-15%)
  3. Develop with AL objects (35-40%)
  4. Develop with AL (15-20%)
  5. Use development tools (10-15%)
  6. Integrate BC with other applications (10-15%)

I will share learning materials below the article. In addition to Programming in AL (MS Docs), you can also find some information on MS Learn.

Collection: Extend Business Central

Latest Microsoft MB-820 Exam Practice Materials

FromNumber of exam questions (Share for free)Total Questions (real-time updates)Related
Leads4Pass15Q&As56 Q&AMicrosoft Dynamics 365

Question 1:

You are creating an entitlement object in Business Central to enable transactability for AppSource apps.

You must map the entitlement object to a plan in the Partner Center.

You need to select the value of the Type property to use in the entitlement object.

Which value should you use?

A. PerUserServicePlan

B. Implicit

C. Unlicensed

D. Role

Correct Answer: A

In Business Central, when creating an entitlement object to enable translatability for AppSource apps and mapping it to a plan in Partner Center, the Type property of the entitlement object should be set to PerUserServicePlan (A).

The PerUserServicePlan type is used to define an entitlement that is based on a service plan, which is typically how transactability features are managed for apps distributed through AppSource.

This type of entitlement allows for the mapping of specific features or capabilities of the app to a service plan in the Partner Center, enabling granular control over what users are entitled to use based on their subscriptions.

The other values, such as Implicit (B), Unlicensed (C), and Role (D), are used in different contexts and do not apply to the scenario of mapping an entitlement object to a plan for AppSource apps.

Question 2:

You are developing an app that will be published to Microsoft AppSource.

The app requires code analyzers to enforce some rules. You plan to add the analyzers to the settings.json file.

You need to activate the analyzers for the project.

Which three code analyzers should you activate to develop the app for AppSource? Each correct answer presents part of the solution

NOTE: Each correct selection is worth one point.

A. CodeCop

B. UlCop

C. a custom rule set

D. PerTenantExtensionCop

E. AppSourceCop

Correct Answer: ADE

When developing an app for Microsoft AppSource, it is crucial to adhere to specific guidelines and standards to ensure compatibility and compliance. The three code analyzers you should activate are:

CodeCop (A): This is the default analyzer for AL language extensions. It enforces the AL Coding Guidelines, ensuring that the code follows best practices for readability, maintainability, and performance. It checks for a wide range of issues, from syntax errors to best practice violations, making it essential for any AL development.

PerTenantExtensionCop (D): This analyzer is specifically designed for extensions that are intended to be installed for individual tenants.

It includes rules that ensure the extension does not interfere with the per-tenant customizations and adheres to the guidelines for extensions that can be safely installed and uninstalled without affecting the underlying application.

AppSourceCop (E): This analyzer is tailored for extensions that are intended for publication on Microsoft AppSource. It enforces additional rules that are specific to AppSource submissions, such as checking for the use of reserved object ranges and ensuring that all prerequisite dependencies are correctly declared. This is crucial for ensuring that your app meets all the requirements for listing on AppSource.

By activating these three analyzers, developers can ensure their app adheres to the standards required for AppSource, as well as maintain high code quality and compatibility with Business Central.

Question 3:

DRAG DROP

A company has the following custom permission set:

Latest Microsoft MB-820 Exam questions 3

You need to make the permission set visible on the Permission Sets page.

Which three actions should you perform in sequence? To answer, move the appropriate actions from the list of actions 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.

Select and Place:

Latest Microsoft MB-820 Exam questions 3-1

Correct Answer:

Latest Microsoft MB-820 Exam questions 3-2

To make the permission set visible on the Permission Sets page, perform the following actions in sequence:

Change the Assignable property value to true.

Add the ObsoleteState = No property.

Publish the app with the permission set to an environment. Process for making permission sets visible:In Business Central, the Assignable property determines whether a permission set is shown in the user interface for assigning to users. By

default, if Assignable is set to false, the permission set is hidden. Therefore, it should be set to true to make the permission set visible. The ObsoleteState property indicates whether an object is outdated (Obsolete) or not (No ). If an object is

marked as obsolete, it is typically hidden from the user interface. Therefore, setting ObsoleteState = No ensures that the permission set is not treated as outdated and remains visible.

Finally, publishing the app with the permission set to an environment updates the environment with the new or modified objects, including permission sets, making them available for assignment to users.

Question 4:

A company uses Business Central.

The company plans to use a translation file in an extension. The extension has a caption that should not be translated.

You need to prevent the caption from being translated.

What should you do?

A. Use the CaptionML property and copy the same caption for each language used.

B. Set the GenerateLockedTranslations feature in the apps on file.

C. Add the Locked = true parameter to the Caption.

D. Delete the Caption property.

E. Copy the same caption for each language in the translation file.

Correct Answer: C

To prevent a caption from being translated in an extension for Microsoft Dynamics 365 Business Central, you should add the Locked = true parameter to the Caption (C). This parameter explicitly marks the caption as locked for translation, ensuring that it remains unchanged across different language versions of the extension. This approach is useful for specific terms, brand names, or other elements within the application that should remain consistent regardless of the user\’s language settings. Unlike the other options, which involve manual manipulation of the translation file or properties, setting Locked = true directly in the AL code provides a clear, maintainable, and error-proof method to exclude specific captions from the translation process.

Question 5:

HOTSPOT

You need to define the properties of the comments field of the Non-conformity page.

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.

Hot Area:

Latest Microsoft MB-820 Exam questions 5

Correct Answer:

Latest Microsoft MB-820 Exam questions 5-1

Scenario: When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:

*

Comments: can include comments with rich text and pictures to illustrate quality problems

*

etc.

Box 1: MultiLine = true;

Rich Text and content controls

The Rich Text feature in Business Central is designed to handle multimedia content, such as social media posts, email bodies, quick annotations, file contents, or any field that requires a mix of text, tables, links, and images.

Both ExtendedDataType and Multiline are required to render a Rich Text Editor ExtendedDataType = RichContent; MultiLine = true;

Box 2: ExtendedDataType

Box 3: RichContent

Reference: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-richtext-content-controls

Question 6:

HOTSPOT

You need to create the API page according to the requirements.

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.

Hot Area:

Latest Microsoft MB-820 Exam questions 6

Correct Answer:

Latest Microsoft MB-820 Exam questions 6-1

Box 1: DataAccessIntent = readOnly;

Scenario:

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.

DataAccessIntent Property

Sets the data access intent of the page.

Applies to

Page

Report

Query

Property Value

*

ReadOnly

Intent to access records, but not to modify them. Read-only pages are run against a replica of the database leading to improved performance but preventing modifications to the database records.

*

ReadWrite

Intent to access and modify records.

Syntax

DataAccessIntent = ReadOnly|ReadWrite;

Remarks

For reports, API pages, and API queries, the Business Central server can use read-only database replicas on Azure SQL Database and SQL Server. If replicas are enabled, use this property to reduce the load on the primary database. Using

ReadOnly might also improve performance when viewing objects. ReadOnly works as a hint for the server to route the connection to a secondary (read-only) replica if one is available. When a workload is executed against the replica, insert/

delete/modify operations aren’t possible. If any of these operations are executed against the replica, an exception is thrown at runtime.

Box 2: Editable = false;

Note: It only applies to pages of the type API. For such, The Editable property must be set to false.

Reference: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/properties/devenv-dataaccessintent-property

Question 7:

DRAG DROP

You need to configure telemetry for the SaaS tenant and test whether the ingested signals are displayed.

Which three actions should you perform in sequence? To answer, move the appropriate actions from the list of actions to the answer area and arrange them in the correct order.

Select and Place:

Latest Microsoft MB-820 Exam questions 7

Correct Answer:

Latest Microsoft MB-820 Exam questions 7-1

Step 1: Create an Azure Application Insights instance by using the Azure Portal in the Partner\’s subscription.

Scenario: 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.

Step 2: Select the environment in the Admin Center and place the connection string in the Application Insights Connection String field.

Connection strings

Connection strings define where to send telemetry data.

Find your connection string

Your connection string appears in the Overview section of your Application Insights resource.

Note: When you create a custom telemetry trace signal, you can specify the scope of the event. The telemetry scope determines if the event is only sent to the Azure Application Insights resource specified in the extension\’s app.json or if the

event is also sent to the Azure Application Insights resource of the environment where the extension is installed.

Step 3: Select the Application Insights instance, select Logs, and then inspect the Traces table.

Custom events in Log Analytics

The telemetry is available in the customEvents table on the Application Insights Logs tab or usage experience.

Create a custom telemetry event

To create a custom telemetry event, use the LogMessage method in the AL code where you want to trigger the signal. The LogMessage method defines the information that is sent to Azure Application Insights for a specific operation or activity.

There are two variations of the LogMessage method. The difference is that one method uses a dictionary object to define custom dimensions for the trace signal. The other method includes two overloads so you don’t have to construct a

dictionary. You can use these methods in any object, trigger, or method.

Incorrect:

* Select the Sessions menu and then select Restart Environment.

Reference: https://learn.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics https://learn.microsoft.com/en-us/azure/azure-monitor/app/sdk-connection-string

Question 8:

A company plans to set up a local Business Central Development Docker container. The environment will be used for testing new project ideas.

You need to ensure that the most recent Business Central artifact URL has been selected.

Which command should you use?

A. Get-BcArtifactUrl -type sandbox -select Current

B. Get-BcArtifactUrl -type sandbox -select Closest

C. Get-BcArtifactUrl -type sandbox -select NextMinor

D. Get-BcArtifactUrl -type sandbox -select NextMajor

Correct Answer: A

To ensure the most recent Business Central artifact URL is selected for setting up a local Business Central Development Docker container, the command to use is Get-BcArtifactUrl -type sandbox -select Current (A).

This PowerShell command retrieves the URL for the latest available Business Central artifact for a sandbox environment, ensuring that the Docker container is set up with the most up-to-date version for testing new project ideas.

The -select Current parameter is crucial as it specifies that the current, or latest, version of the artifact is to be retrieved, as opposed to selecting a version based on other criteria such as Closest, NextMinor, or NextMajor.

Question 9:

You need to determine why the debugger does not start correctly.

What is the cause of the problem?

A. The “userId” parameter must have the GUID of the user-specified, not the username.

B. The “breakOnNext” parameter is not set to “WebServiceClient”.

C. The “userId” parameter is specified, and the next user session that is specified in the “breakOnNext” parameter is snapshot debugged.

D. The “executionContext” parameter is not set to “Debug”.

Correct Answer: A

Initialize a snapshot debugging session

You can start a snapshot by creating a snapshot configuration file in Visual Studio Code.

Choose whether to run the session on a cloud service or locally. The configuration file contains the following information.

*

userId The GUID of the user who initiated the process to start snapshot debugging. For on-premises, this can also be the user name in user password authentication scenarios. The user must be able to start or have a session type opened that is specified in the breakOnNext parameter.

*

Etc.

Scenario: Debugging problems A user of the ISSUE BASE extension in Business Central reports a problem.

You discover that the debugging is not triggering.

Incorrect:

Not B: Example (attach to a web client session)

The following example illustrates a configuration for a local server, where you want to debug a web client session.

{

“name”: “My attach to local server”,

“type”: “al”,

“request”: “attach”,

“server”: “https://localhost”,

“serverInstance”: “BC200”,

“authentication”: “Windows”,

“breakOnError”: true,

“breakOnRecordWrite”: false,

“enableSqlInformationDebugger”: true,

“enableLongRunningSqlStatements”: true,

“longRunningSqlStatementsThreshold”: 500,

“numberOfSqlStatements”: 10,

“breakOnNext”: “WebClient”

} …

Reference: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-attach-debug-next https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-snapshot-debugging

Question 10:

HOTSPOT

You create an \’AddltemsToJson” procedure and publish it.

Latest Microsoft MB-820 Exam questions 10

The procedure fails to run.

You need to fix the errors in the code.

For each of the following statements, select Yes if the statement is true. Otherwise, select No.

Hot Area:

Latest Microsoft MB-820 Exam questions 10-1

Correct Answer:

Latest Microsoft MB-820 Exam questions 10-2

In line 13, replace the Add method with Insert. = NO In line 15, replace the WriteTo method with ReadFrom. = NO Change the ItemObject variable type from JsonObject to JsonToken. = NO Move line 08 in the beginning of REPEAT .. UNTIL.

= YES The provided code is intended to serialize a list of items from the Item table into a JSON array format. Here is a breakdown of the code and the necessary corrections:

In line 13, “ItemsArray.Add(ItemObject)”: This line is correctly using the Add method to add the ItemObject to the ItemsArray. The Add method is the correct method to use for adding items to a JsonArray. Therefore, there is no need to replace

Add with Insert.

In line 15, “ItemsArray.WriteTo(RequestText)”: The WriteTo method is used correctly to serialize the ItemsArray into a JSON formatted string and store it in the RequestText variable. The ReadFrom method is used for the opposite operation,

i.e., to deserialize a JSON formatted string into a JsonArray, which is not the goal in this context. Hence, no change is needed here. Change the ItemObject variable type from JsonObject to JsonToken: The ItemObject variable is intended to

hold JSON objects representing individual items, making JsonObject the appropriate type. JsonToken is not a type used in this context within AL for Business Central, and thus the variable type should remain as JsonObject.

Move line 08, “Clear(ItemObject)”: This line should be moved inside the repeat loop to ensure that the ItemObject is cleared for each item in the loop. Placing it before the repeat would only clear it once before the loop starts, which could lead

to incorrect serialization as the previous item, \’s properties would not be cleared from the ItemObject.

The logic for serializing records into JSON is a common operation when interfacing with APIs or web services in Business Central, and the pattern shown in the code is typical for such operations.

Question 11:

HOTSPOT

You plan to create a table to hold client data.

You have the following data integrity requirements:

1.

Lookups into other records must be established.

2.

Validate if a record exists in a destination record.

You need to select the table field property to use for each requirement.

Which table field property should you use? To answer, select the appropriate options in the answer area.

NOTE: Each correct selection is worth one point.

Hot Area:

Latest Microsoft MB-820 Exam questions 11

Correct Answer:

Latest Microsoft MB-820 Exam questions 11-1

For the data integrity requirements, the table field properties to use are:

To establish lookups into other records, use the TableRelation property. To validate if a record exists in a destination record, use the ValidateTableRelation property.

In Business Central, when creating tables to hold data, maintaining data integrity is crucial:

TableRelation Property: This property is used to create a relationship between the field in one table and a field in another table, which is typically used for lookups. When you set the TableRelation property on a field, it allows users to select

from a list of values that exist in the related table.

ValidateTableRelation Property: This property is used to ensure that the value entered in a field matches one of the values in a related table. If a user tries to enter a value that doesn’t exist in the related table, an error will occur.

Question 12:

DRAG DROP

You are developing a test application to test the posting process of a sales order. You must provide the following implementation:

1.

Specify the value of post options (dialog: Ship, Invoice, Shipand; Invoice) as Invoice.

2.

Perform calculations and values checking.

You need to complete the development of the test code unit.

Which methods should you use? To answer, move the appropriate methods to the correct implementation. You may use each method 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.

Select and Place:

Latest Microsoft MB-820 Exam questions 12

Correct Answer:

Latest Microsoft MB-820 Exam questions 12-1

Specify the value of the post options as Invoice:

Test

Perform calculations and values checking:

Handler

In the context of Microsoft Dynamics 365 Business Central testing, the \’Test\’ attribute is used to mark a method as a test method. This is where you would specify the action or the behavior you\’re testing ? in this case, setting the post options as Invoice. It\’s within these test methods that you would simulate setting the posting option to “Invoice” programmatically.

For performing calculations and checking values, you would use \’Handler\’ methods to handle specific business events or conditions that occur within the system, such as before or after posting a document.

These handlers can ensure that calculations are done correctly and that all validation checks pass before the document is posted. The \’Normal\’ method would be a standard method that could be involved in the posting process, ensuring that all business logic is correctly applied and that the calculations and value checks are as expected.

In a test code unit, you would typically have test methods that call these handlers and normal methods to verify the business logic in various scenarios, such as posting with different options or checking the results of calculations under different conditions.

Question 13:

You are exporting data from Business Central.

You must export the data in a non-fixed length and width in CSV format.

You need to generate an XMLport to export the data in the required format

Which Format property value should you use?

A. XML

B. VariableText

C. FixedText

Correct Answer: B

When exporting data from Business Central and the requirement is for the data to be in a non-fixed length and width CSV format, the Format property of the XMLport should be set to VariableText (B).

The VariableText format is designed for handling data exports where the fields are separated by a delimiter, such as a comma or tab, which is typical of CSV (Comma-Separated Values) files. This format allows for the flexibility needed when dealing with varying field lengths, as it does not enforce a fixed width for each field, making it ideal for CSV data exports.

Setting the Format property to FixedText (C) would enforce a fixed width for each field, which is not suitable for CSV files, while the XML format (A) is used for exporting data in an XML structure, which is different from the CSV format requirements.

Question 14:

You have a decimal variable named AmountlCY.

You need to round up the variable to four decimal places. Which result value should you use?

A. Result: = Round (AmountLCY,A. \’>”}:

B. Result: = Round {AmountLCY. 0.0001. =\’);

C. Result: = Round (AmountLCY. 0.0001. \'<\’):

D. Result: = Round (AmountLCY, 0.0001, >\’);

Correct Answer: B

To round up a decimal variable to four decimal places in Microsoft Dynamics 365 Business Central, you should use the Round function with specific parameters.

The correct formula is Result := Round(AmountLCY, 0.0001, \’=\’) (B). This function rounds the AmountLCY variable to the nearest value based on the second parameter, which is 0.0001 in this case, representing four decimal places.

The third parameter, \’=\’, specifies that the function should round to the nearest value, which effectively rounds up the value when it\’s halfway between two possible rounded values. This approach ensures that the AmountLCY variable is accurately rounded to four decimal places, which is essential for financial calculations and reporting to maintain precision.

Question 15:

HOTSPOT

You need to download a stored picture from the Room Incident page.

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.

Hot Area:

Correct Answer:

Latest Microsoft MB-820 Exam questions 15-1

Box 1: CreateOutStream Box 2: CreateInStream Box 3: Instream Reference:

https://community.dynamics.com/blogs/post/?postid=19ce850a-6ff7-4b99-8b3c-65aa6411771b

Register for the MB-820 exam

Select your country and click Schedule Exam. You will be redirected to the Microsoft certification page. You must log in with your Microsoft account, and if this is your first time, there will be pages where you will need to fill in your personal information to create your Microsoft Certification Identification Number (MCID). Once the MCID is generated, you can click “Schedule Exam” again and you will be redirected to the interactive setup wizard, just fill in all the required information and click Next. If you want to edit the information and fix the differences, you will be able to return to the wizard.

Before the exam, I recommend using Study Points to read the exam overview and study materials with official “Microsoft Learn” links, as well as practice with the latest Microsoft MB-820 Exam materials: https://www.leads4pass.com/mb-820.html.

If you have no exam experience, I recommend taking the exam sandbox provided by Microsoft so you can experience the look and feel of the exam beforehand. You will be able to interact with different types of questions within the same user interface you use during the exam.

Summarize

I collected all the information I could and hope to help you pass the MB-820 exam!

Although the MB-820 exam certificate is designed for intermediate AL developers, the difficulty level is also intermediate. You only need to make good use of all learning resources at your own pace to achieve success easily.

Finally, I wish you good luck in your exam!

Author