10 questions covering this official MB-820 domain.
Q01 - Question
A developer designs an onboarding checklist for a new vertical extension. Which two statements correctly describe how to build and design the checklist? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Checklist tasks can only open external URLs, so every task needs a public web page
- B. Checklist tasks are based on Guided Experience Item records
- C. Include every configuration task in the checklist so that users never miss a setting
- D. A checklist task can take the user to a Business Central page or to an external URL
B and D are correct.
Explanation: The onboarding checklist is based on Guided Experience Item records, and each task can link the user either to a Business Central page or to an external URL.
A is incorrect: Tasks are not limited to external URLs, because a task can also open a Business Central page.
C is incorrect: Keep task lists short and use clear titles with realistic times; listing every configuration task works against that guidance.
Q02 - Question
A customer reports slow list pages that are sorted by a custom field on a standard table. You plan to change the key design by using a table extension. Which two statements about Business Central table keys are correct?
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Secondary keys are implemented as SQL indexes, so each extra key adds storage and update cost.
- B. A table can have several active primary keys so that records can be identified in more than one way.
- C. A table extension can replace the primary key of the base table with a different field combination.
- D. A table extension can add secondary keys only.
A and D are correct.
Explanation: Secondary keys are SQL indexes that speed up data retrieval but increase storage and the cost of inserts and updates, so limit them to roughly three to five when practical. When you extend an existing table, you can add secondary keys only.
B is incorrect: Every table has exactly one active primary key, defined first on the table object, and it uniquely identifies each record.
C is incorrect: The primary key belongs to the base table definition, so a table extension cannot replace it.
Q03 - Question
You design a multi-step setup wizard for an extension. The values a user enters must remain in memory while the user moves between steps, and they must be written to the database only when the user selects Finish. Which page configuration supports this requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Set PageType to Card and bind the page directly to the setup table.
- B. Set PageType to List and use a page variable to cache entered values.
- C. Set PageType to NavigatePage and set SourceTableTemporary to true.
- D. Set PageType to NavigatePage and set the page to run in read-only mode.
C is correct.
Explanation: Wizard pages use PageType NavigatePage and SourceTableTemporary so data stays in memory until Finish.
A is incorrect: A Card page bound directly to the setup table writes values to the database as the user works, so entries are not held until Finish.
B is incorrect: A List page is not the page type used for wizard navigation, and it does not provide the Back, Next, and Finish navigation pattern.
D is incorrect: A read-only page prevents the user from entering the setup values that the wizard needs to collect.
Q04 - Question
A developer adds two fields to the Customer table by using a table extension. You must display the fields on the standard Customer Card page without modifying the base application objects. Which approach should you use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Copy the Customer Card page into a new page object and add the fields to the new page.
- B. Edit the Customer Card page object in the base application directly and save the changes.
- C. Create a page extension object for the Customer Card page and add the fields in the layout section.
- D. Add the fields to the page layout directly from the table extension object.
C is correct.
Explanation: A page extension object is used to modify an existing Business Central page and can surface fields from table extensions while keeping base objects unchanged.
A is incorrect: Copying the page creates a new, separate object rather than modifying the existing Customer Card page.
B is incorrect: Base application page objects are not edited directly; modifications must be applied through extensions.
D is incorrect: A table extension only modifies the table definition, while a page extension object is required to change the page layout.
Q05 - Question
You are building a report that runs over a Customer data item. Before any customer records are read, you must initialize counter variables and apply additional filters to the data item. Which trigger should you use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. OnPreDataItem
- B. OnAfterGetRecord
- C. OnPostDataItem
- D. OnPostReport
A is correct.
Explanation: OnPreDataItem runs before the data item starts processing its records, so it is the correct place to initialize variables and set filters that control which records are retrieved.
B is incorrect: OnAfterGetRecord runs after each record is retrieved, so filters set there do not prevent records from being read.
C is incorrect: OnPostDataItem runs after the final iteration of the data item, which is too late to influence record selection.
D is incorrect: OnPostReport runs at the end of the report flow, after all data items are processed.
Q06 - Question
An accountant reviews a report on screen and expects to adjust the date filter and options several times until the figures are correct. The accountant wants to avoid reopening the report between each attempt. Which request page action should the accountant use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Preview & Close, because the report reopens automatically after each run.
- B. Send to, and choose the data-only Excel format for each attempt.
- C. Preview, because the request page is retained so the filters and options can be changed again.
- D. Schedule, so the job queue reruns the report after each filter change.
C is correct.
Explanation: Preview keeps the request page available after the report is rendered, so you can change filters and options and preview the result again without reopening the report.
A is incorrect: Preview & Close does not retain the request page, so the accountant would have to open the report again for every change.
B is incorrect: Send to exports the result to a file format such as raw XML or data-only Excel, which does not help with repeated on-screen filter adjustments.
D is incorrect: Scheduling runs the report through the job queue and delivers output to the Report Inbox, which is intended for unattended runs rather than interactive filter testing.
Q07 - Question
A customer wants sales staff to be alerted about incomplete company information when they open a Sales Order page, with a direct way to fix the data. Which design matches this requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add code that checks the company information when the Sales Order page opens, then send a notification with an action that opens the Company Info Wizard.
- B. Add code that raises an error on the Sales Order page so users cannot open the order until the company information is complete.
- C. Add a Confirm dialog on the Sales Order page that asks users to enter the company information before they continue.
- D. Add a report that lists incomplete company information and schedule it for the sales staff.
A is correct.
Explanation: You detect the incomplete company information when the Sales Order page opens and send a notification whose action opens the Company Info Wizard, so users are informed and can correct the data.
B is incorrect: An error blocks the user from opening the sales order, which does not meet the requirement to keep working.
C is incorrect: Confirm is a modal, blocking interaction and does not provide a nonblocking alert in the notification bar.
D is incorrect: A scheduled report does not alert the user in the Sales Order page context or provide an action to fix the data.
Q08 - Question
A development team plans to create a table extension for an existing table. The backlog contains four requested changes. Which two requests can a TableExtension object implement? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Add a secondary key to the table.
- B. Increase the length of an existing Code field in the base table.
- C. Modify a supported property on an existing field by using the modify keyword.
- D. Delete an obsolete field from the base table.
A and C are correct.
Explanation: The evidence supports A and C because a table extension can create secondary keys and modify supported table and field properties by using the modify keyword on existing fields.
B is incorrect: A table extension cannot change the length of an existing Text or Code field.
D is incorrect: A table extension cannot delete fields from the base table.
Q09 - Question
A partner must calculate a shipping fee differently for each region, but the calling code on a page action must stay unchanged when a new region is added. Which approach follows the AL interface model?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add the method bodies to the interface object so each region codeunit inherits a default calculation.
- B. Declare the method signatures in an interface object, add implements to each region codeunit, and call the method through an interface variable.
- C. Duplicate the calculation in each region codeunit and select the codeunit with a case statement in the page action.
- D. Declare the interface object, omit implements on the region codeunits, and rely on matching method names so the compiler links them.
B is correct.
Explanation: An interface object contains signatures only. Each conforming object uses implements, and the consumer calls the method through an interface variable, so the calling code stays the same for every region. The compiler checks that each implementation provides the required methods and QuickFix can add missing stubs.
A is incorrect: An interface declaration holds no method bodies, so it cannot supply a default calculation.
C is incorrect: Duplicated logic with a case statement forces you to change the consumer every time a region is added, which removes the benefit of polymorphic calls.
D is incorrect: Conformance is declared with implements on the object; matching method names alone do not make a codeunit an implementation.
Q10 - Question
A decimal field in your master table uses AutoFormatType and AutoFormatExpression set on the table field. On one specific page, the business requires a different format for the same field. What is the effect of setting AutoFormatType and AutoFormatExpression on that page field?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The table field settings continue to apply, because table properties always override page properties.
- B. The page setting changes the format for the field on every page that shows it.
- C. The page setting is ignored unless you also change DecimalPlaces on the table field.
- D. The page setting applies to that page only and takes precedence over the table field settings.
D is correct.
Explanation: AutoFormatType and AutoFormatExpression can be set on the table field or on the page field. Table field settings apply globally, and page settings apply to that page and take precedence there.
A is incorrect: Page settings take precedence over the table field settings on the page where they are defined.
B is incorrect: A page setting is scoped to that page. To change the format everywhere, set the properties on the table field.
C is incorrect: DecimalPlaces controls decimal storage and display bounds. It is not a prerequisite for the auto-format properties to apply.