10 questions covering this official MB-820 domain.
Q01 - Question
A large AL project responds slowly in Visual Studio Code while analyzers run, and the team also wants to change the diagnostic action for a small number of specific rules. Which two actions should the team take? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multiple choice
- A. Set al.enableCodeAnalysis to false so that no rules are reported at any time.
- B. Disable al.backgroundCodeAnalysis for the large project.
- C. Rename the app JSON manifest so that it follows the .ruleset.json pattern.
- D. Add a ruleset file that follows the .ruleset.json pattern and set the action for each affected rule.
B and D are correct.
Explanation: al.backgroundCodeAnalysis can be disabled for large projects, and ruleset files that use the .ruleset.json pattern can set the diagnostic action per rule.
A is incorrect: Setting al.enableCodeAnalysis to false turns off analysis completely, so the team loses the rule results it still needs.
C is incorrect: The app JSON manifest holds app properties such as dependencies, and renaming it does not create a ruleset.
Q02 - Question
You use Designer in a sandbox environment to rearrange fields on a page. You must ensure the layout changes remain available for all users after the sandbox is updated or relocated. What should you do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Apply the changes as a personalization for your individual workspace.
- B. Download the generated extension and keep it in the project source.
- C. Rely on the sandbox to automatically retain the generated extension.
- D. Configure a profile customization for each user to recreate the extension.
B is correct.
Explanation: Designer generates an extension in the sandbox that applies to all users. Because sandbox-generated extensions are removed upon update or relocation, you must download the extension to preserve it.
A is incorrect: Personalization affects only an individual user's workspace, not all users, and does not provide an extension object.
C is incorrect: Sandbox-generated extensions are removed when a sandbox is updated or relocated, so relying on automatic retention will result in data loss.
D is incorrect: Profile customizations are assigned to user profiles in the client, but preserving the Designer-generated extension requires downloading the extension object.
Q03 - Question
You develop a Business Central extension in a repository that has only a main branch. You must start work on a new feature in an isolated branch, switch to that branch immediately, and publish it to the remote repository so that the local branch tracks the remote branch. Which sequence of Git commands should you use?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Run git branch feature/pricing, then run git merge feature/pricing.
- B. Run git switch main, then run git push --set-upstream origin main.
- C. Run git checkout -b feature/pricing, then run git push --set-upstream origin feature/pricing.
- D. Run git merge feature/pricing, then run git branch feature/pricing.
C is correct.
Explanation: The git checkout -b command creates the branch and switches to it in one step, and git push --set-upstream publishes the branch and sets the tracking link between the local and remote branch.
A is incorrect: The git branch command creates the branch but does not switch to it, and git merge integrates another branch into your current branch instead of publishing the new branch.
B is incorrect: Switching to main and pushing main keeps the work on the existing branch, so the feature is never isolated from main.
D is incorrect: Merging a branch that does not exist yet fails, and the branch must be created before any commits can be made on it.
Q04 - Question
An AL developer finishes a code change for a tracked bug in a Business Central extension. The project manager wants Azure DevOps to associate the code change with the work item that describes the bug. What should the developer do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Move the work item to a different iteration path
- B. Link the commit ID for the code change to the work item
- C. Add a work item query widget to the project dashboard
- D. Document the change on a page in the project wiki
B is correct.
Explanation: Development work is connected to tracked work through commit IDs, so linking the commit ID to the work item lets Azure DevOps associate the code change with the item.
A is incorrect: Changing the iteration path only reschedules the work item into a different time-boxed period.
C is incorrect: A dashboard widget displays information about work items but creates no link between a commit and an item.
D is incorrect: A wiki page records documentation and does not create a traceable link between code changes and work items.
Q05 - Question
A developer creates a new report object in Visual Studio Code and must build the dataset by adding a data item and the fields it returns. Which two Visual Studio Code snippets should the developer use? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multiple choice
- A. The treport snippet
- B. The tdataitem snippet
- C. The tcolumn snippet
- D. The report extension snippet
B and C are correct.
Explanation: The evidence explicitly states to use tdataitem to add dataset data items and tcolumn to add their columns.
A is incorrect: The treport snippet creates the report skeleton, not the individual data items and columns.
D is incorrect: A report extension modifies an existing report, and its snippet is not used to add data items and columns to a new report dataset.
Q06 - Question
A developer uses the treport snippet to begin the report design process. Which elements does this snippet generate for the report?
Domain: Work with development tools (10-15%) Type: Single choice
- A. A report skeleton with properties, a dataset, a request page, a rendering section, and global variables
- B. A dataset containing only data items, requiring a separate request page object
- C. A finished Excel layout and a query to improve retrieval performance
- D. A report extension that modifies an existing report
A is correct.
Explanation: According to the evidence, the treport Visual Studio Code snippet creates a report skeleton with properties, dataset, request page, rendering section, and global variables.
B is incorrect: The snippet generates the request page as part of the skeleton; it does not require a separate object.
C is incorrect: The snippet creates a rendering section that defines layouts, but it does not generate a finished Excel layout or a query.
D is incorrect: The treport snippet generates a new report skeleton, whereas a report extension modifies an existing report.
Q07 - Question
You create a new Azure DevOps project for a team of developers who build Business Central extensions. The developers will work on separate features concurrently. Which version control setting should you select for the project?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Team Foundation Version Control, because it stores one centralized copy of the source.
- B. Git, because it is the recommended distributed version control option for extension development.
- C. Azure Artifacts, because packages replace the need for a source repository.
- D. Azure Test Plans, because test cases are stored with the source code.
B is correct.
Explanation: When you define a project, you set its name, visibility, version control, and work item process. Git is the recommended distributed version control choice for Business Central extension development.
A is incorrect: Team Foundation Version Control is centralized and is not the recommended option for extension development.
C is incorrect: Azure Artifacts manages reusable packages and is not a version control selection for a project.
D is incorrect: Azure Test Plans supports manual testing and is not a version control selection for a project.
Q08 - Question
A report author edits a Word report layout with the Business Central Word add-in. The finished layout must suppress amount fields that contain zero, and it must be returned to Business Central with the metadata that the layout requires. Which two actions meet these requirements? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multiple choice
- A. Save the document with Save As in Word and import the resulting .docx file into Business Central.
- B. Use an add-in control to conditionally hide fields that have a zero value.
- C. Add a standard Word comment to the document so the zero-value rule is applied at run time.
- D. Use Update and Export Layout in the add-in to export the document with the required metadata.
B and D are correct.
Explanation: The Word add-in includes controls that conditionally hide zero-value fields and empty tables, rows, and columns, and Update and Export Layout exports the layout so the required metadata is included.
A is incorrect: A plain Save As does not guarantee that the metadata the layout needs is included, so export the layout from the add-in instead.
C is incorrect: Add-in comments are not rendered in the report output and do not control whether a zero-value field is hidden.
Q09 - Question
A small team develops a per-tenant extension for a single Business Central customer. Only one version is in production, and each change is a short piece of work that is merged into main when it is finished. Which branching strategy best fits this project?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Feature branching, where each piece of work is developed in its own branch and merged into main.
- B. Gitflow, with develop, feature, release, and hotfix branches.
- C. Release branching, with a separate long-lived branch maintained for each supported version.
- D. Committing all work directly to main without creating branches.
A is correct.
Explanation: Feature branching suits single-tenant work, because each change is isolated in its own branch and merged into main when it is completed.
B is incorrect: Gitflow adds develop, feature, release, and hotfix branches with supporting automation, which is more structure than a single customer version needs.
C is incorrect: Release branching is intended for maintaining different versions of an extension at the same time, which does not apply when only one version is in production.
D is incorrect: Working without branches removes the isolation that lets developers work concurrently and that supports review before changes reach main.
Q10 - Question
A consultant records user acceptance test scripts with the in-client page scripting tool and saves them as YAML. Business users must replay the saved recordings and see the success or failure status, but they must not create new recordings. What should you configure?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Assign the PAGESCRIPTING - PLAY permission set to the business users.
- B. Assign the PAGESCRIPTING - REC permission set to the business users.
- C. Assign the SUPER permission set to the business users so that playback is possible.
- D. No permission set is needed, because playback is available to every licensed user.
A is correct.
Explanation: The evidence specifies that playback of page scripting recordings requires the PAGESCRIPTING - PLAY permission set. Assigning only this permission allows users to replay saved recordings without creating new ones, which requires PAGESCRIPTING - REC.
B is incorrect: PAGESCRIPTING - REC covers recording, which is the capability you must withhold from these users.
C is incorrect: SUPER grants far more access than playback requires and does not limit the users to replaying recordings.
D is incorrect: Playback is controlled by the PAGESCRIPTING - PLAY permission set, so a license alone is not sufficient.