Practice Free MB-820 Exam Online Questions
DRAG DROP
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.

Explanation:
Developed by using any coding language: Connect app
Developed by using AL language in Visual Studio Code: Add-on app
In Microsoft Dynamics 365 Business Central, there are distinct types of applications that can be developed: Connect apps and Add-on apps. Each has its own development language requirements: Connect apps:
Connect apps are designed to connect Business Central with external services or applications. They are often developed using a variety of programming languages, not limited to the AL language, and can be hosted outside of the Business Central environment. Therefore, when a description states that the app is developed using any coding language, it generally refers to a Connect app. This type of app integrates with Business Central through APIs and web services.
Add-on apps:
Add-on apps are built to extend the functionality of Business Central within the application itself. These are developed using the AL language, which is the programming language for Business Central, and they are created and managed within the Visual Studio Code environment with the AL Language extension. An Add-on app is typically a Business Central extension that is directly installed into the Business Central environment.
The language and environment used for developing these apps are key differentiators between Connect apps and Add-on apps.
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
A
Explanation:
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.
HOTSPOT
You need to write the code to call the subcontractor’s REST API.
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.

Explanation:
To correctly write the code to call the subcontractor’s REST API, you would need to set the Authorization header with the base64 encoded username and password for basic authentication. The code segment indicates the use of the Base64Convert codeunit to convert the username and password to base64 format, which is then prefixed with "Basic " to form the proper Authorization header value.
The correct method to add the Authorization header to the RequestHeaders would be:
RequestHeaders.Add(‘Authorization’, ‘Basic ‘ + Base64Convert.ToBase64(Username + ‘:’ + Password));
And the correct method to set the httpContent with the body of the request would be:
httpContent.WriteFrom(Body);
These are the necessary steps to form a well-structured HTTP request for basic authentication and to include the body of the request in the API call.
HOTSPOT
You create a table with fields.
You observe errors in the code
You need to resolve the errors.
For each of the following statements, select Yes if the statement is true. Otherwise, select No. NOTE: Each correct selection is worth one point.

Explanation:
In line 12, declare "Job Task" as a variable. = NO
Add the property FieldClass = FlowField; for field 3. = YES
Add the property FieldClass = FlowFilter; for field 3. = NO
In line 23, assign the "User Setup" table to a field. = YES
For "In line 12, declare ‘Job Task’ as a variable": In the AL code provided, the "Job Task" appears to be part of a CalcFormula of a FlowField, which means it references a table and not a variable. The "Job Task" does not need to be declared as a variable because it is used to reference a table in a CalcFormula expression.
For "Add the property FieldClass = FlowField; for field 3": The line of code CalcFormula = sum("Job Task"."Recognized Sales Amount" where("Job No." = field("No."))); indicates that this field is calculated from other table data, which is the definition of a FlowField. Therefore, adding the property FieldClass = FlowField; is necessary for the field to function correctly.
For "Add the property FieldClass = FlowFilter; for field 3": FlowFilters are used to filter data based on
the value in a flow field. Since field 3 is using a CalcFormula to sum values, it is a FlowField and not a FlowFilter. Therefore, this statement is not correct.
For "In line 23, assign the ‘User Setup’ table to a field": The line TableRelation = "User Setup"; suggests that the "Project Manager" field has a relation to the "User Setup" table, which is a method of assigning a table to a field to ensure that the values in "Project Manager" correspond to values in the "User Setup" table. Hence, this statement is true.
HOTSPOT
A developer creates a profile for part-time shop supervisors and adds customizations.
You plan to add new requirements to the profile.
You need to analyze the code to understand the profile and make sure there are no errors.
For each of the following statements, select Yes if the statement is true. Otherwise, select No. NOTE: Each correct selection is worth one point.

Explanation:
The Part Time Shop Supervisor profile will be applied only to users with "Register Time" = true on User Setup: No
Variables, procedures, and triggers cannot be added on page customization objects: Yes
Line 10 should use extends instead of customizes: No
In line 18, "Unit Cost" will be moved after "Costing Method": Yes
The Part Time Shop Supervisor profile will be applied only to users with "Register Time" = true on User Setup.
No
The code doesn’t contain any reference to the User Setup table or the Register Time field, so this is not correct. Profiles are not applied conditionally based on fields like this.
Variables, procedures, and triggers cannot be added on page customization objects.
Yes
Page customization objects are meant for UI modifications, such as moving or hiding fields. You cannot add variables, procedures, or triggers in a page customization object.
Line 10 should use extends instead of customizes. No
In AL, when customizing a page within a profile, you use customizes rather than extends. Extends is used when modifying base application objects, but customizes is used to customize pages within a profile.
In line 18, "Unit Cost" will be moved after "Costing Method".
Yes
The code in line 18 is correct. The moveafter directive will move the "Unit Cost" field after the "Costing Method" field on the page layout.
DRAG DROP
You create a codeunit that works with a table named Boxes. You plan to filter the records and then modify them.
You get an error that you do not have permission to work with the Boxes table.
You need to assign the Indirect permissions for the Boxes table to the codeunit.
Which four code blocks should you use in sequence to assign the correct permission? To answer, move the appropriate code blocks from the list of code blocks to the answer area and arrange them in the correct order.

Explanation:
To assign the indirect permissions for the Boxes table to the codeunit, use the following code blocks in sequence:
TableData
"Boxes" =
Permissions
RIM
Assigning permissions:
In Business Central, to assign permissions within a codeunit, you need to specify the table that the permissions apply to, followed by the type of permission. The sequence starts by indicating that we are defining table data permissions (TableData). Then, we specify the table in question ("Boxes" =). After that, we state that we are setting permissions (Permissions). Finally, we assign the RIM permissions, which stands for Read, Insert, and Modify permissions. The Indirect permission allows the codeunit to read, insert, and modify records in the Boxes table indirectly, meaning these operations can be performed by the codeunit when it is called by a user who has direct permissions for these operations.
You have an XMLport that exports items from a database to an XML file. You need to change the export format from XML to CSV.
What should you do?
- A . Change the Direction property to Both
- B . Change the FormatEvaluate property to Legacy.
- C . Change the XmlVeisionNo property to 1.1.
- D . Fill the FileName property with the Items.csv value.
- E . Change the Format property to VariableText.
E
Explanation:
XMLport Overview
In Microsoft Dynamics 365 Business Central, XMLports are used for importing and exporting data in XML, CSV, or other text formats. By default, XMLports are designed to work with XML data, but they can also handle delimited text formats like CSV (Comma-Separated Values). Requirement Clarification
The requirement is to change the export format from XML to CSV. CSV is a text-based format, not an XML format. To accommodate this, you need to change how the XMLport handles data during export. Properties of XMLport
The Format property in XMLports controls whether the output format is XML or a text-based format such as CSV.
The VariableText option of the Format property specifies that the data should be exported in a variable text format, like CSV.
The XMLports default to an XML format, but by setting the Format property to VariableText, you can change the export to CSV format or another text-delimited format.
Explanation of Correct Answer (E) To switch from XML to CSV export:
You need to change the Format property of the XMLport to VariableText.
The VariableText option allows for the export of data in a non-XML format, which is precisely what CSV represents (a comma-delimited text file).
Why Other Options Are Incorrect
Option A (Change the Direction property to Both):
The Direction property controls whether the XMLport is used for Import, Export, or Both (import and export), but it does not affect the file format (XML vs. CSV). Hence, this is irrelevant to the file format change.
Option B (Change the FormatEvaluate property to Legacy):
The FormatEvaluate property is not related to changing the export format. It deals with the evaluation of the data format during the processing but doesn’t change the format type (XML or CSV).
Option C (Change the XmlVeisionNo property to 1.1):
The XmlVersionNo property defines the XML version used for the export (such as 1.0 or 1.1). This only applies to XML exports and does not change the format to CSV. Option D (Fill the FileName property with Items.csv):
While this option would specify the name of the file being exported (i.e., "Items.csv"), it doesn’t control the format of the export itself. The actual format change is controlled by the Format property. Developer Reference from Microsoft Documentation
According to the official Microsoft documentation for XMLports in Business Central, the Format property is critical for determining how data is structured for export. To change the file format from XML to CSV, developers need to set the Format property to VariableText. This allows for export in a text-delimited format, which is ideal for CSV.
XMLport Properties – Format Property
How to: Export Data in Text Format Using XMLports
You are cleaning up sandbox environments for a company.
The company requires data to be cleared from the environments each time an extension is published.
You need to configure the launch.json file.
Which schemaUpdateMode property should you set?
- A . ForceUpgrade
- B . ForceSync
- C . Synchronize
- D . Recreate
D
Explanation:
In the context of cleaning up sandbox environments for a company where data needs to be cleared each time an extension is published, the schemaUpdateMode property in the launch.json file should be set to Recreate (D). Setting this property to Recreate ensures that every time the extension is published, the existing tables and data are dropped, and then the tables are recreated based on the current extension’s schema. This mode is particularly useful in development and testing environments where you need a clean slate for testing each version of the extension without the remnants of previous data affecting the outcomes. It’s important to use this setting cautiously, as it results in the loss of all existing data in the tables defined by the extension, which is suitable for a sandbox environment but not for production environments.
DRAG DROP
You are developing an XMLport to export data from the parent Item table and a related child "Item Unit of Measure’ table.
The XMLport configuration must provide the following:
• Link the child table to its parent.
• Display a confirmation message after the XMLport runs. You need to generate the XMLport.
What should you do? To answer, move the appropriate triggers to the correct requirements. You may use each trigger 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.

Explanation:
To meet the XMLport configuration requirements:
Link the child table to its parent: Use the OnAfterGetRecord trigger.
Display a confirmation message after the XMLport runs: Use the OnPostXMLPort trigger.
In Business Central, when you are developing an XMLport for data export, triggers are used to perform actions at different stages of the XMLport’s operation: OnAfterGetRecord Trigger:
This trigger fires after a record is retrieved from the database but before it is processed for output in the XMLport. It is the ideal place to link child table records to their parent because you have access to the current record that can be used to set filters or modify data in the child table before it is written to the XML file.
OnPostXMLPort Trigger:
This trigger fires after the XMLport has finished processing all records. It is the correct place to display a confirmation message because it ensures that the message will appear after the entire XMLport operation is complete. Here, you can use application-specific functions to show the message, such as MESSAGE function in AL code.
By placing the appropriate triggers in these positions, you can ensure that the XMLport will link the child records to their parent records during the data export process and will notify the user with a confirmation message once the operation is successfully completed.
You are customizing Business Central by using Visual Studio Code. You create a project that will extend Business Central. The AL extension contains JSON files, which are automatically generated and are used to store configuration data
For testing purposes, you plan to add the following changes to the files:
• Specify that page 21 must be opened after publishing.
• Enable debugging
• Disable the capability to download the source code
You need to add the configurations to the JSON files.
Which two configurations should you add? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
- A . Set "startupObjectld": 27 on launchjson.
- B . In the "resourceExposurePolicy" tag, set "at low Debugging". true and allowDownloadingSource": false on launchjson.
- C . Set "start upObjectld": 27 on appjson.
- D . In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDown loading Source": true on appjson.
- E . In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDownloadingSource": false on appjson.
C, E
Explanation:
You are customizing Business Central using Visual Studio Code and JSON files for configuration.
You plan to:
Open page 21 after publishing.
Enable debugging.
Disable the capability to download the source code.
Which configurations should you add?
The options involve two primary JSON files: launch.json and app.json, and configuration tags like startupObjectId and resourceExposurePolicy.