This MB-820 practice test contains 220 original, reviewed questions selected from the approved question library: 20 questions from each official Business Central Developer learning path. These are not exam dumps or leaked questions. They are grounded in verified Microsoft Learn evidence.
220 questions across Business Central foundations, AL development, AL objects, testing, deployment, and integrations.
Answer each question, then open the answer panel to review the correct answer, explanation, and Microsoft Learn evidence.
Q001 - Question
A manufacturing company plans to move to Business Central online. Thirty users must run production orders and repair service operations. Ten additional users only need to read data, update existing records, and approve workflow requests. Which subscription assignment meets these requirements?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Assign Essentials licenses to all 40 users.
- B. Assign Premium licenses to the 30 operational users and Team Members licenses to the 10 limited users.
- C. Assign Team Members licenses to all 40 users.
- D. Assign Essentials licenses to the 30 operational users and Premium licenses to the 10 limited users.
B is correct.
Explanation: Service Management and Manufacturing are included with Premium, so the 30 users who run production orders and repair service operations need Premium licenses. Team Members is an additional user type for limited tasks such as reading data, updating existing data, approving workflows, and creating quotes, which matches the 10 remaining users.
A is incorrect: Essentials covers areas such as Financial Management, CRM, Project Management, Supply Chain Management, HR, and Warehouse Management, but it does not include Service Management or Manufacturing.
C is incorrect: At least one Essentials or Premium license is required, and Team Members cannot perform full operational tasks such as running production orders.
D is incorrect: This reverses the requirement. The users who need Manufacturing and Service Management are the 30 operational users, and Premium for the limited users still leaves the operational users without those capabilities.
Q002 - Question
A sales team uses Business Central online and wants to work with customer and vendor data from Outlook. Which two statements correctly describe the Microsoft 365 experience for Business Central? Each correct answer presents a complete solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Business Central online users are created in Business Central and then exported to the Microsoft 365 Admin Center.
- B. Business Central online users are created in the Microsoft 365 Admin Center and then imported into Business Central.
- C. The Outlook add-in can display customer and vendor financial information but cannot create documents.
- D. The Outlook add-in can create contacts, opportunities, quotes, orders, and invoices without leaving Outlook.
B and D are correct.
Explanation: For Business Central online, you create users in the Microsoft 365 Admin Center and then import them into Business Central. The Outlook add-in surfaces customer and vendor financial information and lets users create contacts, opportunities, quotes, orders, and invoices without leaving Outlook.
A is incorrect: The direction is reversed, because user creation starts in the Microsoft 365 Admin Center and the users are then imported into Business Central.
C is incorrect: The add-in is not limited to viewing data, because users can also create business documents such as quotes, orders, and invoices from Outlook.
Q003 - Question
A company is planning the Microsoft 365 experience for Business Central online. Which two statements about this integration are correct? Each correct answer presents a complete solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Users are created directly in Business Central and then exported to Microsoft 365 Admin Center.
- B. Users are created in Microsoft 365 Admin Center and then imported into Business Central.
- C. The Outlook add-in can only display contact details and cannot create documents.
- D. The Outlook add-in can show customer and vendor financial information and create quotes, orders, and invoices without leaving Outlook.
B and D are correct.
Explanation: For Business Central online, you create users in Microsoft 365 Admin Center and then import them into Business Central. The Outlook add-in surfaces customer and vendor financial information and lets users create contacts, opportunities, quotes, orders, and invoices without leaving Outlook.
A is incorrect: The direction is reversed. User creation starts in Microsoft 365 Admin Center, and Business Central imports those users.
C is incorrect: The add-in is not limited to viewing contact details, because users can also create contacts, opportunities, quotes, orders, and invoices from Outlook.
Q004 - Question
A customer requires every sales invoice to arrive by email with a PDF attachment. The accounting team wants the Send Document To page to be prefilled with that delivery method whenever they use Print/Send. What should you configure?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Assign a document sending profile that specifies email with a PDF attachment to the customer.
- B. Instruct users to select email and PDF manually on the Send Document To page for each invoice.
- C. Record the delivery preference as an interaction on the customer contact.
- D. Create a customer template that stores the delivery method for new sales documents.
A is correct.
Explanation: A document sending profile defines the preferred delivery method, such as print or email and PDF or electronic document attachment. When the profile is assigned to the customer, the Send Document To page is prefilled and selecting Send can create an email with the document attached.
B is incorrect: Manual selection works for a single document but does not prefill the Send Document To page, so the preference is not stored with the customer.
C is incorrect: Interactions track communications and business documents related to a contact, and they do not control how a sales document is delivered.
D is incorrect: Customer templates speed up creating customer records, while the delivery method for sales documents comes from the document sending profile assigned to the customer.
Q005 - Question
A user has signed in to Microsoft 365 and opened Business Central by selecting it from the app list. The user asks how to reach Business Central on later days without going through the Microsoft 365 app list first. What should you tell the user?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Business Central can only be opened from the Microsoft 365 app list or search.
- B. The user must request a separate license before direct browser access is possible.
- C. After the first sign-in, the user can go directly to businesscentral.dynamics.com when the browser recognizes the login.
- D. Direct browser access requires switching the trial from Essentials to Premium.
C is correct.
Explanation: After the first sign-in, you can open Business Central directly at businesscentral.dynamics.com when the browser recognizes the login, so the Microsoft 365 app list is no longer required each time.
A is incorrect: Selecting the app from the Microsoft 365 app list or search is one way in, but not the only way after the first sign-in.
B is incorrect: No extra license is involved in reaching Business Central through the browser address.
D is incorrect: The license model determines which functionality is included, not how you open the product in a browser.
Q006 - Question
An independent software vendor wants to build a Business Central customization and sell it to many customers. Which two actions follow the documented development and distribution process? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. Modify the base application source code directly in each customer tenant database.
- B. Develop object-based AL extensions in Visual Studio Code.
- C. Deploy the customization by restoring a modified business-data database into the Azure SQL shared environment.
- D. Compile the extension into an .app package and publish it to AppSource.
B and D are correct.
Explanation: Developers create object-based AL extensions in Visual Studio Code, compile them into .app packages, and can publish those packages to AppSource, where customers find ready-to-use Business Central apps.
A is incorrect: Customization is delivered through extensions, so editing the base application in a tenant database is not part of the documented process.
C is incorrect: Tenant data resides in separate databases in the Azure SQL shared environment, and distribution of a customization is done with an .app package rather than a database restore.
Q007 - Question
A customer always wants sales invoices delivered by email with a PDF attachment. Accounting staff currently select the delivery options manually every time they use Print/Send. What should you configure so the Send Document To page is prefilled for this customer?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Assign a document sending profile that specifies email delivery with a PDF attachment to the customer.
- B. Create a customer template that includes the preferred delivery method.
- C. Create an item template that stores the invoice layout.
- D. Couple the customer record with Dynamics 365 Sales.
A is correct.
Explanation: Document sending profiles define a customer's preferred delivery method for sales documents, including print or email and PDF or electronic-document attachments. When you assign a profile to the customer, the Send Document To page is prefilled when staff use Print/Send, and selecting Send can create an email with the document attached.
B is incorrect: Customer templates are used to create customer records with predefined field values, not to set the delivery method used by Print/Send.
C is incorrect: Item templates are used when creating items and include settings such as item category, unit cost, and unit price.
D is incorrect: Coupling is a prerequisite for synchronizing data with Dynamics 365 Sales and does not control how sales documents are delivered to the customer.
Q008 - Question
A user personalized the Sales Order page and removed fields that the team needs. The user cannot restore the original layout. What can be done without any AL development?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Publish a new extension that recreates the page layout for the affected user.
- B. Nothing, because personalization changes are permanent for the user who made them.
- C. Ask every other user to personalize the same page so the layouts match again.
- D. Have an administrator clear or override the personalization for that user.
D is correct.
Explanation: Users personalize their own workspace, and administrators can control, clear, or override that personalization, so an administrator can reset the page for the affected user.
A is incorrect: Personalization is a low-code tailoring option and does not require a published AL extension to correct.
B is incorrect: Personalization is not permanent, because administrative control over personalization exists.
C is incorrect: Personalization applies to an individual workspace, so changing other users' layouts does not restore the affected user's page.
Q009 - Question
An administrator configured the connection between Business Central and Dynamics 365 Sales and set up the integration users. Sales orders for customers that already exist in both applications are still not transferring. What must be configured first for these records?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Create a document sending profile for each affected customer.
- B. Add each customer contact to a segment in relationship management.
- C. Couple each Business Central record with its matching Dynamics 365 Sales record.
- D. Post a sales invoice in Business Central to trigger the first synchronization.
C is correct.
Explanation: Record coupling is required before data such as sales orders, quotes, posted invoices, payments, account statistics, and sales prices can synchronize between Business Central and Dynamics 365 Sales.
A is incorrect: Document sending profiles control how sales documents are printed or emailed to a customer, not how records synchronize with Dynamics 365 Sales.
B is incorrect: Segments group contacts for relationship management activities such as campaigns and interactions, and they do not link records across the two applications.
D is incorrect: Posting an invoice does not establish the link between records, because synchronization still depends on the coupling configured by the administrator.
Q010 - Question
A prospective customer asks how Business Central online keeps their business data separated from the data of other customers. Which statement correctly describes the multi-tenant architecture?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. All tenants store records in one shared table set, and rows are separated only by a company name field.
- B. Each tenant receives a dedicated on-premises SQL Server instance that is managed by the customer.
- C. Tenants run in an Azure SQL shared environment, and tenant data is held in separate databases.
- D. Tenant data is stored inside the Business Central Web Server instance that is hosted on IIS.
C is correct.
Explanation: The multi-tenant architecture uses an Azure SQL shared environment, and each tenant's data is kept in separate databases, so the platform resources are shared while the business data stays isolated per tenant.
A is incorrect: Separation is achieved at the database level for each tenant, not by filtering rows in a single shared data set.
B is incorrect: The multi-tenant model is based on the Azure SQL shared environment rather than a dedicated on-premises SQL Server instance per customer.
D is incorrect: The Business Central Web Server instance on IIS connects clients to the Service Tier; the application and business data are stored in databases, not in the web server.
Q011 - Question
During a 30-day trial with the customer's own data, a consultant uses the create-company wizard in Business Central. The consultant needs one company that contains setup data so the customer can enter its own transactions, and one company that contains sample data so end users can practice. Which two companies should the consultant create? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. A blank company with no data for the practice company
- B. A Production company with setup data for the customer's own transactions
- C. A Team Members company for the practice company
- D. An Evaluation company with sample data for the practice company
B and D are correct.
Explanation: The create-company wizard can create Production companies that include setup data and Evaluation companies that include sample data, which matches the two requirements in this scenario.
A is incorrect: A blank company contains no data at all, so end users would have nothing to practice with.
C is incorrect: Team Members is a license model, not a company type that the wizard creates.
Q012 - Question
A prospective customer wants to sign up for a free Dynamics 365 Business Central trial from the Business Central Overview page. The staff members who will evaluate the product currently use personal mailbox addresses from a consumer email service and from their mobile telecommunications provider. What should you tell the customer to do before starting the trial?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Sign up with any of the existing personal addresses, because the trial accepts any valid mailbox.
- B. Sign up with a work or school email address, because consumer and telecommunications-provider addresses are not supported.
- C. Purchase a Business Central Essentials subscription first, then sign up with the personal addresses.
- D. Create a Microsoft 365 account first, because the trial cannot start without one.
B is correct.
Explanation: Signing up for the free trial requires a work or school email address. Consumer email addresses and addresses from telecommunications providers are not supported, so the customer needs a work or school address before starting.
A is incorrect: The personal consumer and telecommunications-provider addresses the staff currently use cannot be used for trial signup.
C is incorrect: A paid subscription is not a prerequisite for the free trial, and buying one does not make an unsupported email address valid.
D is incorrect: A Microsoft 365 account is only needed to experience Business Central integration with Microsoft 365, not to start the trial.
Q013 - Question
A production manager uses Premium licensing and has set up work centers, routings, and production BOMs. The manager wants material consumption posted when a production order finishes, instead of posting each material line during production. Which approach meets this requirement?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Post consumption manually for each material line while the order is in progress.
- B. Create a transfer order with an in-transit location for each production order.
- C. Use backward flushing so material consumption is posted when the production order finishes.
- D. Create a routing version for each production order to post material consumption.
C is correct.
Explanation: With production orders you can post output manually or use backward flushing, which posts material consumption when the order finishes. That matches the requirement to avoid posting each material line during production. Manufacturing also requires Premium licensing and setup of work centers, routings, and production BOMs.
A is incorrect: Manual posting is the behavior the manager wants to avoid, because it requires posting consumption line by line.
B is incorrect: Transfer orders with in-transit locations move inventory between locations and do not post production material consumption.
D is incorrect: Routing versions support version management for routings and do not control when material consumption is posted.
Q014 - Question
A manufacturer uses Premium licensing and has set up work centers, routings, and production BOMs. Shop floor staff do not want to register material consumption for each production order during production. Which approach posts the consumed materials when the production order finishes?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Post output manually for each work center at the end of the shift.
- B. Move components with transfer orders that use an in-transit location.
- C. Create a new production BOM version for every production order.
- D. Use backward flushing so material consumption posts when the order finishes.
D is correct.
Explanation: Backward flushing posts material consumption when the production order finishes, so staff do not have to register consumption during production. This requires Premium licensing and completed setup of work centers, routings, and production BOMs.
A is incorrect: Posting output manually records produced quantities, but it does not post the consumption of the component materials.
B is incorrect: Transfer orders with in-transit locations move inventory between locations and do not post consumption on a production order.
C is incorrect: BOM and routing version management controls which component and operation versions apply, and it does not change how consumption is posted.
Q015 - Question
A distribution company plans to move to Business Central. Eight users run financial, sales, and service management processes. Twelve other users only read data, update existing records, approve workflows, and create quotes. Which subscription assignment meets these requirements?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Assign Essentials to the eight users who run Service Management and Team Members to the twelve limited users.
- B. Assign Premium to the eight users who run Service Management and Team Members to the twelve limited users.
- C. Assign Team Members to all twenty users because Team Members can read and update existing data.
- D. Assign Premium to all twenty users because named-user subscriptions cannot be mixed.
B is correct.
Explanation: Service Management is included in Premium, not Essentials, so the eight users who run service processes need Premium. The twelve users who only read data, update existing data, approve workflows, and create quotes fit the Team Members subscription.
A is incorrect: Essentials covers Financial Management, CRM, Project Management, Supply Chain Management, HR, and Warehouse Management, but Service Management is added only with Premium.
C is incorrect: Team Members is an additional user type for limited tasks, and at least one Essentials or Premium license is required in the tenant.
D is incorrect: Premium for every user is unnecessary because Team Members already covers reading data, updating existing data, workflow approval, and creating quotes.
Q016 - Question
A customer wants a mobile data-entry app for warehouse staff, a management dashboard, and an automated approval notification, all based on Business Central data. The customer has no AL developers. Which approach fits these requirements?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Build each requirement as a separate AL extension in Visual Studio Code and publish each one to AppSource.
- B. Use Power Apps, Power BI, and Power Automate to extend Business Central with low-code applications and workflows.
- C. Ask users to personalize their workspace to produce the mobile app and the dashboard.
- D. Add a second Business Central Web Server instance on IIS for each of the three requirements.
B is correct.
Explanation: Power Apps, Power BI, and Power Automate extend Business Central with low-code applications and workflows, which covers a mobile app, a dashboard, and an automated approval flow without AL development.
A is incorrect: AL extensions are developed in Visual Studio Code and require development skills that this customer does not have; AppSource publishing targets apps offered to many customers rather than internal requirements.
C is incorrect: Personalization only adjusts a user's own workspace and cannot create a separate mobile application, a dashboard, or an automated workflow.
D is incorrect: The web server instance connects clients to the Service Tier and does not deliver new applications, reports, or workflows.
Q017 - Question
An external order-entry application must read and write Business Central sales data over the internet. Which approach matches the documented integration capabilities of Business Central?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use the SOAP and OData web services and the REST APIs that Business Central supports.
- B. Give the external application a direct connection to the application and business-data database.
- C. Install the external application on the Business Central Web Server instance that runs on IIS.
- D. Replace Microsoft Entra ID sign-in with local server accounts for the external application.
A is correct.
Explanation: Business Central supports SOAP and OData web services and REST APIs, so an external application can exchange data through those published service endpoints instead of reaching the platform layers directly.
B is incorrect: Client requests reach data through the Service Tier, which runs the business logic; direct database connections bypass that logic and are not a documented integration option.
C is incorrect: The web server instance connects clients to the Service Tier and is not a hosting location for third-party applications.
D is incorrect: Microsoft Entra ID provides the identity and access capabilities for Business Central, so removing it does not create an integration path.
Q018 - Question
A functional consultant signs in to a Business Central trial and enters the CRONUS demonstration company. The customer wants to evaluate Manufacturing and Service Management functionality and asks whether the current trial includes it. How should the consultant verify this?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Open the Company Information page and check whether the trial uses Premium or Essentials.
- B. Switch to a clean demonstration company, because Manufacturing appears only in companies without sample data.
- C. Create a blank company, because functionality is determined by the company data set.
- D. Extend the trial by 30 days, because Manufacturing is enabled only in extended trials.
A is correct.
Explanation: The Company Information page shows whether the trial uses Premium or Essentials. Premium includes Manufacturing and Service Management functionality, so checking that page answers the customer's question.
B is incorrect: Creating a clean demonstration company changes the sample data that is present, not the functionality included in the license model.
C is incorrect: A blank company simply contains no data, and the data set does not determine whether Manufacturing and Service Management are included.
D is incorrect: Extending the trial adds time to the evaluation period and does not change the included functionality.
Q019 - Question
A customer has already used the self-service option to extend a Business Central trial by an additional 30 days. The evaluation is not finished and the customer asks how to keep testing before deciding on a subscription. What should you tell the customer?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The trial can be extended by an additional 30 days repeatedly through self-service.
- B. The Microsoft 365 administrator must remove all licenses before any further testing is possible.
- C. Only the Business Central Cancellation team can grant additional trial time to Microsoft 365 users.
- D. A Microsoft partner can assist with a further 30-day extension, because the self-service extension can be used only once.
D is correct.
Explanation: You can extend a trial yourself once for an additional 30 days. After that extension is used, a Microsoft partner can assist with a further 30-day extension.
A is incorrect: The self-service extension is a one-time option, so it cannot be repeated.
B is incorrect: Microsoft 365 administrators manage subscriptions and license removal, and removing licenses does not create additional trial time.
C is incorrect: The Business Central Cancellation team is the contact for users without a Microsoft 365 account who want to unsubscribe, not a source of trial extensions.
Q020 - Question
An administrator configures the connection between Dynamics 365 Sales and Business Central and sets up the integration users. Sales staff report that an existing customer record still shows no synchronized sales data. What must be done before data for that record synchronizes?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Wait for the connection setup to synchronize all customers automatically.
- B. Have each sales user configure the integration connection individually.
- C. Assign a document sending profile to the customer.
- D. Couple the records in Business Central and Dynamics 365 Sales.
D is correct.
Explanation: Record coupling is required before synchronization. After you couple the records, shared customers, contacts, and sales data such as sales orders, quotes, posted invoices, payments, account statistics, and sales prices can synchronize.
A is incorrect: Configuring the connection and users enables the integration, but uncoupled records are not synchronized.
B is incorrect: An administrator configures the connection and the users, so individual users repeating that setup does not resolve the missing synchronization.
C is incorrect: A document sending profile defines the customer's preferred delivery method for sales documents and has no role in coupling records for integration.
Q021 - Question
A Business Central partner has no add-on app to sell, but it delivers fixed-scope engagements such as implementation projects and environment assessments. The partner wants to reach customers through Microsoft Marketplace. Which offer type fits this business model?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. A consulting service offer that describes a fixed-scope engagement, such as an assessment or implementation.
- B. A transactable add-on offer that grants per-user licenses for the partner's services.
- C. An offer that uses AL entitlement objects to unlock consulting hours in the customer tenant.
- D. A license key offer that customers redeem in Business Central to start the engagement.
A is correct.
Explanation: Publishers can offer fixed-scope consulting services, such as assessments or implementations, through Marketplace, which matches an engagement that has no app to license.
B is incorrect: Transactable add-on offers provide per-user licenses for an app, not for a consulting engagement.
C is incorrect: Entitlement objects map purchased plans to app access, so they do not apply when there is no add-on app.
D is incorrect: A license key is a monetization method for an app that a publisher sells independently, not a way to sell a service engagement.
Q022 - Question
A publisher creates two plans for a transactable Business Central add-on offer on Microsoft Marketplace. Each plan must give access to a different set of app features. What must the publisher do in the AL code so that each plan grants the correct access?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add a codeunit that reads the customer's invoice and stores the purchased plan in a setup table.
- B. Add a page extension that lets an administrator select the purchased plan manually.
- C. Add entitlement objects that map to the Marketplace plans by Service ID.
- D. Add a permission set that is assigned by the publisher's own license server at run time.
C is correct.
Explanation: For a transactable offer, Marketplace plans map to AL entitlement objects by Service ID, so the entitlement object is what connects a purchased plan to the access the app grants.
A is incorrect: Reading invoice data is not how plan access is granted, and it leaves entitlement outside the licensing model that Microsoft hosts.
B is incorrect: Manual selection by an administrator does not reflect the purchased plan and can be changed by anyone with access to the page.
D is incorrect: A publisher-operated license server belongs to independent monetization, where you implement your own entitlement check instead of using Marketplace plans.
Q023 - Question
A new partner team plans to bring its first Business Central offering to market. The team wants structured learning, coaching, tooling, access to insider builds, testing scenarios, and a channel to send developer feedback. Which resource should the team use?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Ready to Go.
- B. The AppSourceCop analyzer in the AL Language extension.
- C. The dependency declarations in the app JSON manifest.
- D. The standard REST APIs used by connect apps.
A is correct.
Explanation: Ready to Go supports bringing an offering to market and includes learning, coaching, tooling, insider builds, testing scenarios, and developer feedback channels.
B is incorrect: AppSourceCop is a code analyzer in the AL Language extension, so it only reports diagnostics in code and does not provide coaching, insider builds, or feedback channels.
C is incorrect: Dependency declarations in the app JSON manifest control which apps are installed first, not go-to-market preparation.
D is incorrect: The standard REST APIs are used for point-to-point integration in connect apps and offer no learning or coaching content.
Q024 - Question
An ISV must exchange order data between Business Central and a third-party logistics service. The solution does not change any Business Central pages or add new business logic inside the product. The integration must run in a production environment. Which application type and authentication approach should the ISV choose?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. An add-on app built with AL extensions in Visual Studio Code that stores service credentials in a setup table.
- B. A connect app that calls the standard REST APIs and uses Microsoft Entra ID OAuth 2.0.
- C. A library app that is installed behind the scenes before the main app and calls the logistics service.
- D. A dependency app with its own AppSource offer that requires the logistics service app to be installed first.
B is correct.
Explanation: A connect app establishes point-to-point integration between Business Central and a third-party service, and it typically uses the standard REST APIs with Microsoft Entra ID OAuth 2.0 for production.
A is incorrect: An add-on app extends the Business Central experience through AL extensions, which is more than this scenario requires because no pages or in-product logic change.
C is incorrect: A library app packages common code that other apps reuse and is installed behind the scenes before the main app, so it does not describe an external point-to-point integration.
D is incorrect: A dependency app has its own AppSource offer and requires another app to be installed first, which adds installation prerequisites that this integration does not need.
Q025 - Question
A developer wants a short explanation to appear for a page and selected fields so new users can see what the page is for and how to use it, as part of a teaching tip. Which AL properties should the developer set?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. ApplicationArea and UsageCategory
- B. ToolTip and Caption
- C. Visible and Editable
- D. AboutTitle and AboutText
D is correct.
Explanation: Teaching tips use the AboutTitle and AboutText AL properties, which supply the short title and explanatory text to introduce a page or control to the user.
A is incorrect: Application areas control whether mapped page controls are shown, and UsageCategory affects search, so neither adds teaching tip text.
B is incorrect: Tooltips and Captions provide field labels and hover text, which are separate from teaching tips.
C is incorrect: Visible and Editable control the display and input states on a control and provide no user assistance text.
Q026 - 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.
Q027 - Question
A partner plans a new Business Central extension. The project manager wants to schedule all performance work as a tuning phase after the extension is released to the customer. Which approach best matches the recommended guidance for application performance?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Include performance guidance in the application architecture from the start, and continue monitoring after release.
- B. Defer all performance decisions until users report slow pages in production.
- C. Treat performance only as an infrastructure sizing task handled before go-live.
- D. Limit performance work to a single review immediately after the extension is published.
A is correct.
Explanation: Performance guidance belongs in the application architecture from the outset, so you prevent performance problems, implement recommended techniques, and monitor the app after it is released.
B is incorrect: Waiting for user complaints means you correct problems after users already perceive the app as slow, which is harder than preventing bottlenecks.
C is incorrect: Performance depends on application design choices such as page, report, and data access patterns, not only on infrastructure.
D is incorrect: A single review after publishing does not cover design-time prevention or ongoing monitoring of the released app.
Q028 - Question
Users report that the Business Central client is blocked for several minutes while a long-running posting routine finishes, and other users receive locking errors during that time. Which design change follows the recommended performance techniques?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Increase the number of rows displayed on the related list pages.
- B. Run the long-running task in the background and design the code to avoid locking.
- C. Move the routine into a report that users run from the role center.
- D. Publish an extra copy of the extension so the routine can run twice.
B is correct.
Explanation: Running long-running tasks in the background and avoiding locking are recommended techniques for keeping the application responsive for other users.
A is incorrect: Showing more rows increases the data the page must load and does not address the blocked session or locking.
C is incorrect: Changing the object type alone does not stop the routine from blocking the user session or holding locks.
D is incorrect: Unused or duplicate extensions should be removed, and running the routine twice adds load rather than reducing it.
Q029 - Question
A partner maintains three AppSource apps that share the same helper code. The shared code has no value on its own and should not be sold or listed as a separate offer, but it must be present before each main app runs. What should the partner do?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Publish the shared code as a dependency app with its own AppSource offer.
- B. Duplicate the shared code inside each of the three apps and keep the copies aligned manually.
- C. Publish the shared code as a library app that is installed behind the scenes before the main AppSource app.
- D. Publish the shared code as a connect app that the three apps call through REST APIs.
C is correct.
Explanation: A library app packages common code used by multiple apps and is installed behind the scenes before the main AppSource app, so the shared code never needs its own listing.
A is incorrect: A dependency app has its own AppSource offer, which the partner wants to avoid for code that has no standalone value.
B is incorrect: Duplicating the code does not use the dependency declarations in the app JSON manifest that are processed automatically during installation and updates.
D is incorrect: A connect app provides point-to-point integration with a third-party service and does not deliver shared AL code to other apps.
Q030 - Question
A customer reports that job queue entries fail intermittently and that some postings end in deadlocks. Business Central telemetry is already sent to Azure Application Insights. How should the administrator investigate?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Query the telemetry traces in Azure Monitor Logs by using KQL.
- B. Read the failed entries from the extension source code in Visual Studio Code.
- C. Export the tenant database and inspect SQL Server index statistics.
- D. Re-publish the extension to regenerate the job queue entries.
A is correct.
Explanation: Business Central telemetry is stored as traces in Azure Monitor Logs and queried with KQL, and it supports diagnosis of operations such as job queues, long SQL queries, and deadlocks.
B is incorrect: Source code shows the logic but not the recorded runtime events for the failing operations.
C is incorrect: Telemetry for these operations is already collected in Azure Application Insights, so a database export is not the described diagnostic path.
D is incorrect: Re-publishing the extension changes the deployed code but does not provide the recorded event data needed to diagnose the failures.
Q031 - Question
A new independent software vendor wants to build and sell a Business Central app on AppSource. The team already has developers ready to start writing AL code. Which sequence follows the recommended AppSource process?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Develop the app, publish it in the commercial marketplace, then become a partner and register as a publisher.
- B. Register as a publisher, develop the app, publish it in the commercial marketplace, then become a partner and set up accounts.
- C. Become a partner and set up accounts, register as a publisher, obtain app specifications such as the object range and affixes, develop the app, then publish it in the commercial marketplace.
- D. Obtain the object range and affixes, publish a placeholder offer in the commercial marketplace, then become a partner and develop the app.
C is correct.
Explanation: The recommended AppSource process is to become a partner and set up accounts, register as a publisher, obtain app specifications such as object range and affixes, develop the app, then publish it in the commercial marketplace.
A is incorrect: You must become a partner, set up accounts, and obtain specifications before developing the app.
B is incorrect: You must become a partner and set up accounts before registering as a publisher.
D is incorrect: You must develop the app before publishing an offer, and partner registration precedes obtaining specifications.
Q032 - Question
Your published app exposes public procedures that several dependent apps call. You must redesign the API surface without breaking those dependent apps in the next release. What should you do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Keep the existing public procedures functional, add the new API next to it, and mark the old members with obsolete properties to announce the planned break.
- B. Remove the old procedures in the next release and publish a migration guide for the dependent apps.
- C. Rename the old procedures so dependent apps fail at compile time and must adopt the new API immediately.
- D. Change the signatures of the existing procedures and disable AppSourceCop during compilation.
A is correct.
Explanation: Existing public APIs should remain functional. Let the new API coexist with the old one by using versioning, switches, synchronization, or rerouting, and use obsolete properties to announce a planned break in advance.
B is incorrect: Removing the procedures breaks the dependent apps in that release. Documentation does not prevent the break.
C is incorrect: Renaming public members is a breaking change for dependent apps and does not give consumers a period to adapt.
D is incorrect: AppSourceCop is the tool that detects breaking changes. Turning it off hides the problem instead of preventing it, and changed signatures still break dependent apps.
Q033 - Question
Automated validation reports that your AppSource extension is not compatible with the next base application version in a customer environment, and the configured notification recipients receive the report. Your development team cannot start the work for several months. What is the consequence if the extension stays incompatible?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. The environment update continues, and Business Central recompiles the extension against the new base application version.
- B. The environment update continues, and the extension stays installed but disabled until a compatible version is published.
- C. The environment update is blocked, and the extension is removed if it is not made compatible within 90 days of the first notification.
- D. The environment update is postponed indefinitely until the partner publishes a compatible version.
C is correct.
Explanation: AppSource extensions and tenant customizations must be compatible with the next base application version before the environment can be updated. An incompatible extension blocks the update, and it is removed if it is not made compatible within 90 days of the first notification, so plan the compatibility work inside that window.
A is incorrect: Compatibility is not resolved by an automatic recompile. The partner must publish a version that is validated as compatible with the next base application version.
B is incorrect: The update does not continue with the extension left in place. The incompatibility blocks the update until the extension is compatible or removed.
D is incorrect: The update is not delayed without limit. The 90-day period that starts with the first notification determines when the extension is removed.
Q034 - Question
A partner updates the screenshots and support links on an existing Business Central offer in the commercial marketplace. The marketing team asks what happens to the listing after the edits are saved. What should you tell them?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The listing must be resubmitted, because marketing validation applies to every Business Central app listing.
- B. Edited listings go live immediately, because validation applies only to the first submission.
- C. Screenshot and link changes are exempt from validation and update without resubmission.
- D. The offer must be removed and created again under a new publisher account.
A is correct.
Explanation: The evidence states that marketing validation applies to every Business Central app listing, and listings must be resubmitted when edited. Storefront details include screenshots and support links.
B is incorrect: Listings must be resubmitted when edited; they do not go live immediately without validation.
C is incorrect: Screenshots and support links are part of the storefront details and require resubmission.
D is incorrect: You do not need to create the offer under a new publisher account to update screenshots and links.
Q035 - Question
A development team builds an app for AppSource and wants Visual Studio Code to report the AppSource-specific rules while developers write AL code. Which configuration should the team apply?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Disable al.backgroundCodeAnalysis so the AppSource rules run only on demand.
- B. Select UICop in al.codeanalyzers and leave al.enableCodeAnalysis unset.
- C. Declare the AppSource rules as a dependency in the app JSON manifest.
- D. Set al.enableCodeAnalysis to true and include AppSourceCop in al.codeanalyzers.
D is correct.
Explanation: Code analysis is enabled with al.enableCodeAnalysis, and the analyzers that run are chosen with al.codeanalyzers, so selecting AppSourceCop reports the AppSource rules.
A is incorrect: al.backgroundCodeAnalysis controls whether analysis runs in the background for large projects and does not select which analyzer is used.
B is incorrect: UICop covers a different rule set, and code analysis must still be enabled with al.enableCodeAnalysis.
C is incorrect: The app JSON manifest declares dependencies on other apps, not analyzers from the AL Language extension.
Q036 - Question
A development team writes test codeunits for a Business Central extension. Test runs currently stop for confirmation dialogs, and later tests fail because earlier tests leave posted documents in the database. Which two practices should the team apply? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Let a tester confirm each dialog manually so that the run reflects real user behavior.
- B. Keep test code in separate objects from the application code, and structure each test to initialize, invoke business logic, and validate results.
- C. Accept the leftover data and run the tests in a fixed order so that later tests work around it.
- D. Restore a known state for each test, use UI handlers for dialogs, and use ASSERTERROR to test failing conditions.
B and D are correct.
Explanation: The evidence states to keep test code separate from application code, structure each test as initialize, invoke business logic, and validate, restore a known state, use UI handlers for dialogs, and use ASSERTERROR to test failing conditions.
A is incorrect: Tests should avoid user intervention because manual confirmation blocks unattended automated runs.
C is incorrect: Depending on a fixed execution order and leftover data makes results fragile; each test should start from a known state.
Q037 - Question
A publisher prepares an upgrade of a Business Central app that is installed on many tenants. Some tenants have not installed every minor-release version of the app. How should the publisher plan the upgrade testing?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Test the upgrade only from the immediately previous version, because tenants install every minor release in sequence.
- B. Test the upgrade from multiple source app versions and with extensive data, because tenants can skip intermediate minor-release versions.
- C. Test the upgrade with a small empty company, because upgrade code does not depend on data volume.
- D. Test the upgrade only in the country or region where the largest customer operates.
B is correct.
Explanation: The evidence indicates that tenants can skip intermediate minor-release versions, so upgrade testing must cover multiple source versions of the app and include extensive data.
A is incorrect: Testing only the previous version leaves upgrade paths from older versions unverified for tenants that skipped releases.
C is incorrect: An empty company does not exercise data upgrade logic; extensive data is part of upgrade testing.
D is incorrect: Each supported country or region needs testing, so a single market does not cover the supported scope.
Q038 - Question
An upgrade must copy millions of rows from an obsolete table into a new table. The current code loops through each record and calls Insert. You plan to replace the loop with the AL DataTransfer type. Which statement correctly describes what you must account for?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. DataTransfer runs the OnInsert trigger for every copied row, so you can keep the existing validation logic.
- B. DataTransfer can be called from any codeunit, so you can also reuse it in a scheduled job that runs after the upgrade.
- C. DataTransfer copies complete tables only, so you cannot apply filters or joins to limit the rows that are copied.
- D. DataTransfer produces set-based SQL and does not run row-based triggers, so any logic in those triggers must be handled separately.
D is correct.
Explanation: DataTransfer moves table data in bulk and produces set-based SQL instead of record-by-record operations. Because row-based triggers are not executed, you must handle any logic that those triggers performed in another way.
A is incorrect: Row-based triggers such as OnInsert are not run by DataTransfer, so existing trigger validation does not apply to the copied rows.
B is incorrect: DataTransfer cannot run outside upgrade code, so you cannot reuse it in a scheduled job after the upgrade completes.
C is incorrect: You configure source and destination tables, field values, joins, and filters before calling CopyFields or CopyRows, so the copied set can be limited.
Q039 - Question
A publisher is preparing to develop its first AppSource app for Business Central. Which two items must the publisher request or register so that the app objects do not conflict with other solutions? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. An App Object Range from 70,000,000 to 74,999,999
- B. A dedicated Business Central production environment name
- C. A publisher affix
- D. A per-customer license file for each installation
A and C are correct.
Explanation: The evidence states that new publishers must request an App Object Range from 70,000,000 to 74,999,999 and register a publisher affix.
B is incorrect: A dedicated Business Central production environment name is not one of the specifications required to prevent object conflicts.
D is incorrect: A per-customer license file is not mentioned as a required registration item for app specifications.
Q040 - Question
An independent software vendor plans to submit a Business Central extension to AppSource. The team has built an automated test suite and wants to reduce the risk of a failed validation. What should the team do before submitting the extension?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Submit the extension first and rely on the AppSource validation report to identify defects.
- B. Replace the automated tests with manual test scripts, because automated tests are not accepted for AppSource submissions.
- C. Test the extension before submission, and combine automated tests with manual tests for scenarios that cannot be automated.
- D. Run the automated tests only after the extension is installed on the first customer tenant.
C is correct.
Explanation: The evidence supports testing the extension before AppSource validation so that you catch validation failures yourself. Some scenarios cannot be automated, so keep manual testing in the plan alongside the automated tests.
A is incorrect: Using the validation report as your first test pass delays defect discovery and can cause the submission to fail.
B is incorrect: Automated tests remain part of the approach; the recommendation is to combine automated and manual testing, not to drop automation.
D is incorrect: Testing after a customer installs the extension exposes that customer to defects that testing before submission would have found.
Q041 - Question
You run Cloud Migration Setup for a customer whose Business Central database is on a local SQL Server instance. Which action is required so that the migration can read the source data?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Install a Self-Hosted Integration Runtime so that Azure Data Factory can connect to the local SQL Server instance.
- B. Publish the on-premises database to a public endpoint so that Azure Data Factory can query it directly.
- C. Create a second production environment to act as a staging area for the source data.
- D. Export the source tables to files and import them manually into the online environment.
A is correct.
Explanation: Cloud Migration Setup uses Azure Data Factory, and a local SQL Server source also requires a Self-Hosted Integration Runtime. The initial run moves all selected data, and later runs move tracked changes.
B is incorrect: The replication uses an encrypted SQL connection through the Self-Hosted Integration Runtime, so you do not expose the database through a public endpoint or open firewall ports.
C is incorrect: A second production environment is not part of the migration setup; you select one paid target environment.
D is incorrect: Manual file export and import is not how the migration moves data; Cloud Migration Setup replicates the selected tables and companies.
Q042 - Question
A partner must repeat the same cloud migration steps for many customer tenants and wants to avoid manual work in the client. How can the partner use the cloud migration APIs?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use the APIs to replicate data from Business Central online back to the on-premises database.
- B. Use the APIs to remove the requirement for a Self-Hosted Integration Runtime at the customer site.
- C. Use the APIs to automate setup, company creation, progress tracking, required upgrades, and disabling cloud migration.
- D. Use the APIs to migrate tables that exist only in the on-premises database.
C is correct.
Explanation: The cloud migration APIs let you automate the migration end to end, including setup, company creation, tracking migration progress, running required upgrades, and disabling cloud migration.
A is incorrect: The APIs automate the migration process, and replication remains one way from on-premises to Business Central online.
B is incorrect: A local SQL Server source still requires a Self-Hosted Integration Runtime, because the APIs automate the process rather than change the connection components.
D is incorrect: Only tables available in both the source and the target are migrated, and calling the APIs does not change that limitation.
Q043 - Question
An organization runs a head office company and three subsidiary companies in the same Business Central environment. The subsidiaries must reuse the head office customer and vendor records, and changes in the head office must reach the subsidiaries without manual re-entry. Which approach meets the requirement?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Export a configuration package from the head office company and import it into each subsidiary after every change.
- B. Run the Data Migration assisted setup in each subsidiary with an Excel export from the head office company.
- C. Configure Master Data Management so that each subsidiary subscribes to the head office company as the source company.
- D. Create a data template in each subsidiary that contains the head office customer and vendor values.
C is correct.
Explanation: Master Data Management synchronizes selected master data tables and fields among companies in the same environment. Each receiving company subscribes to a source company, filters and advanced couplings refine what is synchronized, job queues can run the synchronization, and logs show the results.
A is incorrect: Repeated configuration package exports and imports are a manual task for each change rather than ongoing synchronization.
B is incorrect: The Data Migration assisted setup imports data into a company from Excel or a supported source system; it does not keep companies aligned after the import.
D is incorrect: A data template supplies default values when records are created and does not copy or update existing customer and vendor records from another company.
Q044 - Question
A customer with heavily customized Business Central on-premises companies asks what the cloud migration can and cannot replicate. Which two statements are accurate? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. On-premises users and permission sets replicate automatically to the online environment.
- B. Replication is one-way, from Business Central on-premises to Business Central online.
- C. Only tables that are available in both the source and the target are migrated.
- D. Customized tables migrate even when the matching extension is installed only on-premises.
B and C are correct.
Explanation: The replication runs one way from on-premises to Business Central online, and only tables that exist on both sides are migrated. Plan customizations as extensions that are deployed in both the source and the target so that the related tables can be matched.
A is incorrect: On-premises users and permissions do not replicate automatically, so you configure users and permissions in the online environment as part of the project.
D is incorrect: Customizations must exist as extensions on both sides; an extension that is installed only on-premises leaves no matching table in the target.
Q045 - Question
A company imports several hundred customers from Excel. Customers in the same region share the same posting groups, payment terms, and dimensions, but the source file does not contain those values. Which configuration tool should the consultant use to complete the missing values consistently during the import?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. A configuration questionnaire for each region.
- B. Master Data Management subscriptions between companies.
- C. A separate company per region.
- D. A data template for each group of customers that shares the same attributes.
D is correct.
Explanation: Data templates supply default values for contacts, customers, items, and vendors, including mandatory fields, posting groups, payment terms, and dimensions. Grouping records that share attributes such as region or customer type and applying a template makes the imported master data consistent.
A is incorrect: A configuration questionnaire collects setup answers for setup tables and does not apply default field values to individual imported master records.
B is incorrect: Master Data Management synchronizes master data between companies in the same environment, so it does not fill missing values in a single company's Excel import.
C is incorrect: Creating one company per region does not populate posting groups, payment terms, or dimensions on the imported customer records.
Q046 - Question
A consultant migrates data from an unsupported source system by using a configuration package. For one field, a direct field mapping and a mapping derived from a table relation return different values. Which statement describes the result?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. The direct field mapping is applied, because it takes priority over the conflicting related-table mapping.
- B. The related-table mapping is applied, because table relations always validate the value.
- C. The field is left blank and the record is skipped during import.
- D. The package cannot be exported until one of the two mappings is deleted.
A is correct.
Explanation: Field mappings in a configuration package respect both direct mappings and table relations. When the two conflict for the same field, the direct field mapping takes priority.
B is incorrect: A table relation contributes a mapping, but it does not override a direct field mapping for the same field.
C is incorrect: The conflict is resolved by priority rather than by clearing the field or skipping the record.
D is incorrect: The package can still be exported as a rapidstart file or an Excel workbook; removing one mapping is not a prerequisite.
Q047 - Question
A partner automates onboarding for many Business Central online customers. The automation already creates companies, applies configuration packages, and assigns permissions. The team now wants a supported way to install a per-tenant extension as part of the same automated process. What should the team use?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. The extensionUpload endpoint of the automation APIs.
- B. The configuration package endpoints of the automation APIs.
- C. The company creation endpoints of the automation APIs.
- D. The Admin Center API.
D is correct.
Explanation: Use the Admin Center API for per-tenant extensions, because the extensionUpload endpoint in the automation APIs is deprecated. The Admin Center API also manages environments, notification recipients, and tenant telemetry.
A is incorrect: The automation extensionUpload endpoint is deprecated, so it should not be used for new automation.
B is incorrect: Configuration package endpoints apply setup data to a company and do not install extensions.
C is incorrect: Company creation endpoints hydrate a tenant with companies and do not deploy extension code.
Q048 - Question
A finance team wants a purchase document to trigger an approval request, and if the first approver does not respond, the request must move to an alternative approver step. You are building the workflow on the Workflow page. Which structural element determines whether the steps run in sequence or as prioritized alternative steps?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The order in which event conditions are entered for the workflow event
- B. The indentation of the workflow steps on the Workflow page
- C. The due date value configured in the response options
- D. The approver type selected in the approval response options
B is correct.
Explanation: On the Workflow page, indentation establishes whether steps run in sequence or act as prioritized alternative steps.
A is incorrect: Event conditions filter which records start a response. They do not define the order or alternative path of steps.
C is incorrect: A due date sets when an approval response is expected. It does not define step sequence or alternatives.
D is incorrect: The approver type identifies who receives the approval request, not how steps are sequenced.
Q049 - Question
An ISV wants quick performance regression feedback for each new build of its solution and a stable set of numbers to compare later builds against. The team uses the Performance Toolkit extension (BCPT) in a sandbox environment. How should the team configure the BCPT suite?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Run the suite in Single Run mode and store the results as a baseline for later comparisons.
- B. Configure the suite with 500 concurrent sessions and the longest possible duration for every build.
- C. Run the suite in the customer production environment so results reflect live data volumes.
- D. Replace the suite with in-client performance profiler recordings taken by each developer.
A is correct.
Explanation: Single Run mode gives fast regression feedback and produces results that you can keep as a baseline, so you can compare the numbers from each new build against it.
B is incorrect: A suite can simulate up to 500 sessions, but a large concurrency run is a load test rather than a fast per-build regression check, and parallel foreground work or larger background runs require VS Code or PowerShell.
C is incorrect: BCPT runs in sandbox environments or in Docker, so it is not intended for the production environment.
D is incorrect: The in-client performance profiler captures the current user's flow for troubleshooting a single scenario and does not compare results between solution builds.
Q050 - Question
A page is shared as a card and also added as a tab in Teams. The developer wants the page to hide several actions only when it runs in Teams, while keeping the full layout in the web client. What should the developer use in AL?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Create a duplicate page object and publish it only for Teams users.
- B. Check whether the user is a Microsoft 365-only user before hiding the actions.
- C. Add the actions to the Brick field group so Teams omits them.
- D. Test CurrentClientType for Teams and adapt the page accordingly.
D is correct.
Explanation: AL code can test CurrentClientType for Teams, so you can adapt the same card or tab page for the Teams client while leaving other clients unchanged.
A is incorrect: A duplicate page is unnecessary because one page can detect the client type at runtime and adjust its behavior.
B is incorrect: Querying whether the user is Microsoft 365-only reports the user type, not the client the page runs in, so a licensed Business Central user in Teams would still see the actions.
C is incorrect: The Brick field group defines the fields used to summarize a record on a card; it does not control page actions.
Q051 - Question
A company hires staff into its warehouse department every month. The administrator wants each new warehouse employee to receive the same permission sets without editing each user individually. Which approach meets this requirement?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Assign the permission sets to one warehouse user and copy that user card for each new hire.
- B. Create a profile for the warehouse department and assign the permission sets to the profile.
- C. Add each new hire to the User Setup page and specify the permission sets there.
- D. Create a security group in Business Central that is linked to the Microsoft Entra warehouse group by its exact name, then assign the permission sets to the security group.
D is correct.
Explanation: Security groups are based on Microsoft 365 or Microsoft Entra groups and let you assign permission sets by department or job function. When you link the group in Business Central, enter the Entra group name exactly as it is defined.
A is incorrect: Copying permissions user by user still requires manual work for each new hire and does not group members by job function.
B is incorrect: Profiles determine the Role Center and user experience; profile assignment does not grant object or data access.
C is incorrect: User Setup covers settings such as allowed posting dates, time registration, and responsibility centers, not permission set assignment.
Q052 - Question
A sales order was submitted for approval, but the customer changed the ordered quantity before any approver responded. The salesperson must update the order lines. Which action allows the change, and what happens to the document?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Reject the request. The document status stays Pending Approval until an administrator reopens it.
- B. Delegate the request. The document status changes to Open for the substitute approver.
- C. Cancel Approval Request. The approval entry becomes Canceled and the document status changes from Pending Approval to Open.
- D. Send Overdue Approval Notifications. The document status changes to Open after the reminder is sent.
C is correct.
Explanation: Use Cancel Approval Request to end an approval process when a submitted record must be changed. The approval entry receives Canceled status, the document returns from Pending Approval to Open, and the revised record can be sent for approval again.
A is incorrect: Rejection is an approver action that results in Rejected status, and it is not the action a requester uses to edit a submitted record.
B is incorrect: Delegation moves the open request to another approver. It does not return the document to Open status for editing.
D is incorrect: Overdue notifications only remind approvers about open requests that are past due. They do not change the document status.
Q053 - Question
A partner copies a production environment to a sandbox environment in the Business Central administration center so a consultant can test a new posting process with real data. The customer is concerned that the test could send documents to external systems or post scheduled batches. What is the default behavior of the copied sandbox?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Job queue entries keep running and outbound integrations stay connected to the same external endpoints.
- B. Job queues are stopped, integrations are cleared, and HTTP calls from extensions are blocked.
- C. The sandbox shares the production database, so test postings also update production data.
- D. The sandbox must be restored from a backup before it is isolated from production systems.
B is correct.
Explanation: When you copy an environment, job queues are stopped, integrations are cleared, and extensions cannot make HTTP calls by default, so testing with production data does not reach external systems.
A is incorrect: Job queues and integration settings are not carried over in an active state, which prevents unintended postings and messages from the copy.
C is incorrect: A sandbox is an isolated environment for safe testing, so changes made there do not update the production environment.
D is incorrect: Restore is a separate operation for paid environments within 30 days and is not required to isolate a copied sandbox.
Q054 - Question
An approver is unavailable and open approval requests are blocking work. An approval administrator delegates the requests. In which order does Business Central select the user who receives a delegated request?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The requester, then the direct approver, then a designated substitute.
- B. The approval administrator, then the requester, then the direct approver.
- C. The direct approver, then the requester, then the approval administrator.
- D. A designated substitute, then the direct approver, then the approval administrator.
D is correct.
Explanation: Delegation prevents a workflow from being blocked when an approver is unavailable. Business Central selects a designated substitute first, then the direct approver, then the approval administrator, and it sends a notification to the selected user.
A is incorrect: The requester is not part of the delegation priority order, because the request must move to another approver.
B is incorrect: The approval administrator is the last option in the order, not the first.
C is incorrect: A designated substitute is evaluated before the direct approver, and the requester is not a delegation target.
Q055 - Question
A project manager asks you to prevent sales coordinators from opening the general ledger. You remove all finance-related actions and pages from the profile that the coordinators use and activate the profile. What is the result?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. The coordinators are blocked from the general ledger because profile customization removes the underlying object permissions.
- B. The coordinators are blocked from the general ledger only while the profile remains activated for their user accounts.
- C. The coordinators can still reach general ledger data because profiles control the Role Center and user experience, not object and data access.
- D. The coordinators can no longer sign in until a new permission set is assigned to the profile.
C is correct.
Explanation: Profiles group users by role and provide a Role Center with role-specific tasks and insights. Customizing a profile changes what is presented in the user interface, so you must use security groups and permission sets to control access to objects and data.
A is incorrect: Profile customization does not change the permissions that are granted through permission sets.
B is incorrect: Activating a customized profile changes the user experience, but it does not enforce security on general ledger objects at any time.
D is incorrect: Sign-in depends on the user account state and assigned permission sets, not on profile customization.
Q056 - Question
A company uses an approver hierarchy for purchase orders. The first approver approves a submitted order, but a second approval is still required. What is the document status after the first approval?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The document remains Pending Approval until every required approval is received, and then it becomes Released.
- B. The document becomes Released immediately, and the second approval is recorded afterward.
- C. The document becomes Open so the requester can resubmit it to the second approver.
- D. The document becomes Rejected until the second approver confirms the first approval.
A is correct.
Explanation: In an approver hierarchy, each required approver must act on the request. The record keeps Pending Approval status until all required approvals are received, and it then changes to Released.
B is incorrect: Release happens only after the last required approval, so a partially approved document is not released.
C is incorrect: Open status results from canceling a request, not from a partial approval in a hierarchy.
D is incorrect: Rejected status applies when an approver rejects the request, not when an approval is still outstanding.
Q057 - Question
A new accountant joins your customer's organization. The customer uses Business Central online and wants the accountant to sign in and appear on the Users page in Business Central. What should you do first?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Create the user record directly on the Users page in Business Central, then assign a license later.
- B. Create the user account in the Microsoft 365 admin center, assign an appropriate Business Central license, then run Get Users from Microsoft 365.
- C. Add the accountant to the User Setup page so that the account is created during the next sign-in.
- D. Create a security group in Business Central and add the accountant's email address to the group members.
B is correct.
Explanation: Business Central users originate in the Microsoft 365 admin center. Create the account there, assign a Business Central license, then use Get Users from Microsoft 365 to import the account into Business Central, where you can review the user card for memberships, permissions, company access, and state.
A is incorrect: The Users page is populated by importing accounts from Microsoft 365, and a suitable Business Central license must be assigned to the Microsoft 365 account.
C is incorrect: User Setup adds settings such as posting periods and time registration for an account that already exists; it does not create the account.
D is incorrect: Security groups are based on Microsoft 365 or Microsoft Entra groups and are used to assign permission sets to members; they do not create the user account.
Q058 - Question
A company wants every member of its sales department to have the Business Central app available in Microsoft Teams without each person installing it. The Teams administrator must plan the rollout and set expectations for when the app will appear. Which approach meets the requirement?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Ask each salesperson to install the Business Central app individually and confirm installation in the Business Central web client.
- B. Use Teams app setup policies to centrally deploy the Business Central app, and allow up to 24 hours for the deployment to take effect.
- C. Publish a Business Central extension to the sales users' environment so the Teams app is added to their Teams client.
- D. Send a Microsoft Graph POST request for each sales channel so the app installs for all channel members.
B is correct.
Explanation: Teams administrators can manage and centrally deploy the Business Central app through app setup policies, and deployment can take up to 24 hours, so plan the rollout with that delay in mind.
A is incorrect: Individual installation still works, but it does not meet the requirement to provide the app without each user installing it, and the organization policy must allow installation in either case.
C is incorrect: Publishing a Business Central extension does not install or deploy the Teams app; app availability in Teams is controlled from Teams.
D is incorrect: A Microsoft Graph POST request adds a Business Central tab to a channel or chat; it is not the method for deploying the app to users.
Q059 - Question
A consultant must transfer opening general ledger, customer, vendor, and item balances into a new Business Central company by using configuration packages. Which two actions support this requirement? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. Import the balances directly into the ledger entry tables to avoid posting.
- B. Include the General Journal Line table (81) in the configuration package.
- C. Include the Item Journal Line table (83) in the configuration package.
- D. Create one data template for each opening balance amount.
B and C are correct.
Explanation: Opening balances are transferred through journals. Add the General Journal Line table (81) for G/L, customer, and vendor balances and the Item Journal Line table (83) for item balances to the configuration package, then use the Create journal lines functions to generate lines for the master records.
A is incorrect: Balances are entered in journals rather than written directly into ledger entries.
D is incorrect: Data templates supply default field values for master records such as customers, vendors, and items, so they do not carry opening balance amounts.
Q060 - Question
A customer enabled the 30-day full-capability trial of Dynamics 365 Business Central online and already extended it once, so the trial now runs for 60 days. The evaluation is not finished and the customer asks the partner for more time before buying a subscription. What can the partner do?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Tell the customer to extend the same trial a second time from the trial notification in the client.
- B. Explain that the trial company and its data are deleted at the end of day 60 with no further options.
- C. Use delegated administrator access to extend the trial one more time.
- D. Explain that the trial converts automatically into a paid subscription at the end of day 60.
C is correct.
Explanation: A customer can extend the 30-day trial once, to 60 days. After that, a delegated administrator can extend the trial one more time, so the partner performs the second extension for the customer.
A is incorrect: The customer is limited to one self-service extension, so a second customer-initiated extension is not possible.
B is incorrect: A customer that subscribes within 90 days after the trial expires keeps its company and data, so reaching day 60 does not immediately remove everything.
D is incorrect: A trial does not turn into a paid subscription by itself. The customer must buy a subscription, and an unused trial expires after 45 days.
Q061 - Question
You develop a List page that users open only to review historical records. You want the page to declare that it performs read operations, so that eligible read workloads can be routed to a secondary replica. Which page property do you configure?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. DataAccessIntent = ReadOnly
- B. Editable = false
- C. SourceTableView with a filter on the posting date
- D. DeleteAllowed = false
A is correct.
Explanation: DataAccessIntent declares ReadOnly or ReadWrite intent for the page and can route eligible read workloads to a secondary replica.
B is incorrect: Editable at page level overrides control settings and blocks editing in the user interface, but it does not declare data access intent for workload routing.
C is incorrect: SourceTableView applies filtering and sorting to the records shown and has no effect on which replica serves the read workload.
D is incorrect: DeleteAllowed only controls whether users can delete records from the page.
Q062 - Question
A customer wants to stop using a per-tenant extension for several months and then start using it again with the records that were already entered. What should you do on the Extension Management page?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Run Delete Extension Data for the extension, then install it again when the customer needs it.
- B. Uninstall the extension, because uninstalling retains the extension data for a later installation.
- C. Upload the same .app file again with forced schema sync so that the tables are rebuilt when the customer returns.
- D. Use Upload Extension and Deploy to publish a new version that hides the functionality until the customer needs it.
B is correct.
Explanation: Uninstalling an extension normally retains its data, so the customer can install the extension again later and continue to use the existing records.
A is incorrect: Delete Extension Data permanently removes the extension data and the data of dependent apps, so the records cannot be recovered.
C is incorrect: Forced schema sync is intended only for breaking changes and does not preserve access to the data while the extension is unused.
D is incorrect: Upload Extension and Deploy publishes a per-tenant .app file, which adds development and deployment work instead of simply uninstalling the current version.
Q063 - Question
A customer needs two extra fields stored on the Customer table in Dynamics 365 Business Central. The partner must keep the solution upgradable and must not modify the base application source code. Which approach meets these requirements?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a TableExtension object that adds the fields to the Customer table.
- B. Copy the Customer table into a new table object and add the fields there.
- C. Edit the Customer table object in the base application and add the fields.
- D. Create a page extension on the Customer Card and add the fields to the page only.
A is correct.
Explanation: A TableExtension object adds data to an existing table and makes supported property changes without directly modifying the base table source code.
B is incorrect: Copying the table creates a separate table object, which does not add fields to the existing Customer table records.
C is incorrect: The base-table source code is not modified directly when adding fields to an existing table.
D is incorrect: Page extensions cannot add data fields to a table; TableExtension objects are required to add data to existing tables.
Q064 - Question
In Visual Studio Code, you created a new table by using the ttable snippet and added fields by using the tfield snippet. You now want to add a key definition to the same table with a snippet. Which snippet should you use?
Domain: Work with development tools (10-15%) Type: Single choice
- A. tpage
- B. tfieldgroup
- C. trecord
- D. tkey
D is correct.
Explanation: The AL snippets for table authoring are ttable for the table object, tfield for a field, and tkey for a key, so tkey inserts the key definition.
A is incorrect: tpage relates to page objects, not to key definitions inside a table.
B is incorrect: Field groups such as DropDown and Brick control which fields appear in lookups and tiles, so they do not define keys.
C is incorrect: There is no table key snippet by that name in the set used to author tables, fields, and keys.
Q065 - Question
A customer reports an intermittent error in a Business Central production environment. You work for the partner as a delegated admin and must collect AL execution details for offline analysis without stopping the affected user's work. What should you do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Configure an attach launch configuration with breakOnNext and step through the user's live session in Visual Studio Code.
- B. Publish the extension to production with Rapid Application Development so that temporary debug output is compiled into the changed objects.
- C. Request the D365 Snapshot Debug permission, verify that your symbols match the server, and run a snapshot debugging session that targets the user by userId with snappoints.
- D. Set breakOnError to true in launch.json and republish the extension to the production environment from Visual Studio Code.
C is correct.
Explanation: Snapshot debugging records AL execution on a production server for later offline analysis, and snappoints log state instead of interrupting the running code. A delegated admin needs the D365 Snapshot Debug permission, the symbols must match the server, and the configuration targets the session by userId or sessionId. Treat the downloaded snapshot as customer data, because it can contain privacy data and must be deleted appropriately.
A is incorrect: Attach debugging with breakOnNext stops execution in the session you connect to, so the user's work is interrupted.
B is incorrect: Rapid Application Development is an interim development technique for faster publishing of changed objects, not a method for collecting production execution data.
D is incorrect: breakOnError halts execution at the error and requires publishing a debug session from Visual Studio Code, which does not give you a recorded snapshot for offline analysis.
Q066 - 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.
Q067 - Question
A single procedure in your extension must write to a setup table in the same extension during a background task. You do not want users to keep write access to that table for the rest of their session. Which approach matches this requirement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Apply inherent permissions to the procedure so the elevated access exists only while the code runs
- B. Add the table with write permission to an assignable permission set and assign it to all users
- C. Create an entitlement that grants write access to the table for every licensed user
- D. Publish a permission set extension that adds write access to a Microsoft permission set
A is correct.
Explanation: Inherent permissions grant a method or event elevated access only while its code executes and revoke the access afterward, which reduces long-lived user privileges. They are limited to objects in the same extension, which matches a small, dedicated procedure that writes to a table in that extension.
B is incorrect: Assigning a permission set gives users the write access for the whole session and beyond, which is the long-lived privilege you want to avoid.
C is incorrect: An entitlement describes the objects a license or Microsoft Entra ID role allows a customer to use, so it is not a way to scope access to one running procedure.
D is incorrect: Extending a Microsoft permission set adds the write permission permanently for everyone who is assigned that set, instead of limiting it to the code that needs it.
Q068 - Question
A published extension includes a permission set extension that adds table permissions to an AL-defined permission set. A customer requires you to remove the delete permission that the base permission set grants on one table. What should you do to meet this requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add the table to the permission set extension with delete permission cleared to override the base set
- B. Publish a permission set extension that targets the same set twice so the last definition wins
- C. Define a separate permission set with the required access and assign that set instead
- D. Delete the base permission set from the AL-defined app so the extension becomes the only definition
C is correct.
Explanation: A permission set extension can only add permissions to an existing AL-defined permission set. It cannot remove permissions, so you must provide a different permission set that contains only the access the customer needs.
A is incorrect: Listing the object again in the extension still adds permissions, because the extension object has no way to revoke access that the base set already grants.
B is incorrect: Multiple extensions of the same permission set continue to accumulate permissions, so no later definition replaces or reduces the earlier ones.
D is incorrect: A permission set that is defined in AL by Microsoft or an AppSource app is a System set that you cannot delete or edit from another app.
Q069 - Question
A partner prepares to add custom tables and columns for a Business Central integration project in Dataverse. Which two actions align with how apps and customizations are organized and defined? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Create a publisher with a meaningful name and a unique prefix, and use a solution to hold the custom tables and columns.
- B. Set the data type, format, required, and searchable settings for each new column as appropriate.
- C. Create the custom tables from the Power Platform admin center database creation page so a publisher is not needed.
- D. Populate every custom column with Power Query before selecting a data type for the column.
A and B are correct.
Explanation: Apps and customizations belong to solutions, and each solution has a publisher that identifies its developer, so create a meaningful publisher with a unique name and prefix first. Within the solution, you create custom tables and columns and select the data type, format, required, and searchable settings as appropriate.
C is incorrect: The database creation page is where you choose settings such as language, base currency, apps, sample data, and a security group, and it does not replace the publisher used for customizations.
D is incorrect: A column is defined with its data type and format when you create it, and Power Query is used to populate table data rather than to define column types.
Q070 - 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.
Q071 - Question
A partner assigns a permission set that includes full access to a custom table to a user in Business Central online. The user still cannot use the related functionality. Which access definition determines whether the user is allowed to use the object, independent of what the administrator assigned?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The permission set that the administrator assigned to the user
- B. The entitlement that is linked to the purchased license or the Microsoft Entra ID role
- C. The user group that contains the user's permission sets
- D. The permission set extension that the app publisher shipped
B is correct.
Explanation: Entitlements define which objects a customer may use according to a purchased license or a Microsoft Entra ID role, so a user cannot use an object that the entitlement does not cover, even when a permission set grants it.
A is incorrect: A permission set describes object access granted by an administrator or partner, which is a separate definition from what the license or role entitles the user to use.
C is incorrect: A user group is a way to assign permission sets to users, so it carries the administrator-granted permissions rather than the license-based entitlement.
D is incorrect: A permission set extension adds permissions to an existing AL-defined permission set and therefore belongs to the permissions side, not the entitlement side.
Q072 - Question
A business analyst asks how Dataverse stores data that Power Apps applications will use, and whether the organization can add structures beyond what is delivered out of the box. Which statement is accurate?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Dataverse stores data in tables of rows and typed columns, includes standard tables, and supports custom tables that can be populated with Power Query.
- B. Dataverse stores data only in standard tables that cannot be extended, so Power Apps must read from external sources for custom data.
- C. Dataverse stores data as untyped files, and column types are assigned only when a Power Apps application reads the data.
- D. Dataverse stores data in custom tables only, so standard tables must be created manually before Power Apps can use them.
A is correct.
Explanation: Dataverse securely stores and manages application data in tables made up of rows and typed columns. It includes standard tables, supports organization-specific custom tables and Power Query data population, and provides data for Power Apps applications.
B is incorrect: Organizations can add custom tables for their own requirements, so data structures are not limited to the standard tables.
C is incorrect: Columns are typed in the table definition, with types such as text, lookup, choice, Boolean, currency, date, and number.
D is incorrect: Standard tables are already included, so you do not need to create them before Power Apps applications can use the data.
Q073 - Question
You add a RichContent control to a Card page so users can enter formatted course descriptions with embedded images. Which two configuration requirements must you meet? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Add the RichContent control inside the repeater of the related List page.
- B. Set MultiLine to true on the control.
- C. Place the control as the only control in a root-level group.
- D. Bind the control to an Integer field.
B and C are correct.
Explanation: A RichContent control requires MultiLine = true and must be the sole control in a root-level group.
A is incorrect: A RichContent control cannot be placed in a repeater, so a List page repeater is not a valid location.
D is incorrect: The rich text editor works with Blob, BigText, and Text values, and a Blob field with streams and triggers is typical for persistence.
Q074 - Question
You configure a page extension. You must reposition an existing field from the base page to a different location on the same page. The field must appear only once. Which layout operation should you use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Use a move variant, such as moveafter, that targets the existing control.
- B. Use addlast to place the control at the end of the group.
- C. Use modify with the Visible property set to true.
- D. Use addbefore to reference the control that should follow the field.
A is correct.
Explanation: The move variants (such as moveafter or movebefore) reposition an existing control from the base page to a new location without duplicating it.
B is incorrect: The addlast operation is used to add new controls to a group, not to reposition an existing control.
C is incorrect: The modify operation changes properties (such as Visible or Caption) on an existing control, but it does not change the control's position in the layout.
D is incorrect: The addbefore operation adds a new control before a specific location and would result in duplicating the field if used instead of a move operation.
Q075 - Question
A company plans to keep its production data separate from the data used for testing new Dynamics 365 Business Central integration work. An administrator must also limit who can access the new area and set the base currency before any data is stored. Which approach meets these requirements?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Create a separate Dataverse environment with a database, and select the language, base currency, and a security group during creation.
- B. Create one Dataverse environment and separate the production and test data by adding custom tables for each purpose.
- C. Create one Dataverse environment and change the base currency whenever test data is loaded.
- D. Create a solution with a unique publisher prefix and use it to separate production data from test data.
A is correct.
Explanation: Dataverse environments isolate data and apps for purposes such as production, test, and development. When you add a database from the Power Platform admin center or the Power Apps Tables pane, you choose the language, the base currency, optional Dynamics 365 apps or sample data, and an optional security group that restricts access.
B is incorrect: Custom tables model business data inside one environment, so they do not isolate production data from test data or restrict access with a security group.
C is incorrect: The base currency is selected when the database is created, so switching it per data load is not how currency is configured.
D is incorrect: A solution with a publisher and prefix groups apps and customizations by developer identity, not by production or test data isolation.
Q076 - Question
An administrator runs Set up Dataverse connection in Dynamics 365 Business Central. The security team asks which account performs the ongoing synchronization work after setup completes. What should the administrator report?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. The Dataverse System Administrator account remains signed in and performs all ongoing synchronization.
- B. An automatically created integration account with the Business Central Dataverse Integration role performs the ongoing work.
- C. Each Business Central user's own account performs the synchronization with Dataverse.
- D. The solution publisher account created with a unique prefix performs the synchronization.
B is correct.
Explanation: Set up Dataverse connection uses a Dataverse System Administrator account one time to import the Base Integration Solution. After that import, an automatically created integration account that holds the Business Central Dataverse Integration role is used for the connection.
A is incorrect: The Dataverse System Administrator account is required only for the one-time import of the Base Integration Solution.
C is incorrect: Individual user accounts are not used to run the integration connection; a dedicated integration account is created for it.
D is incorrect: A publisher identifies the developer of a solution and its customizations, and it is not an account used to run synchronization.
Q077 - Question
A consultant must deliver a customer-specific variation of a Microsoft permission set that was defined in AL. The consultant opens the permission set in the client and finds that it cannot be changed. What should the consultant do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Change the type of the System permission set to User-Defined in the client
- B. Ask the customer's administrator to remove the permission set from all user groups first
- C. Edit the permission set directly in the Microsoft base application source code
- D. Copy the permission set to a new User-Defined permission set and change the copy
D is correct.
Explanation: Permission sets that are defined in AL by Microsoft or an AppSource app have the type System and cannot be edited by users, but a user can copy such a set into a User-Defined permission set and change that copy.
A is incorrect: The type of an AL-defined permission set is determined by how it was defined, so users cannot convert a System set into an editable set in the client.
B is incorrect: Removing the assignment from user groups changes who has the permissions, but the System permission set itself stays uneditable.
C is incorrect: The supported way to adjust an AL-defined set for one customer is to copy it or to extend it, not to modify Microsoft's base application definition.
Q078 - Question
A consultant opens Visual Studio Code from the Business Central web client through Page Inspector to investigate an issue reported by a user in a production environment. Which two statements describe the behavior the consultant can expect? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multi-select
- A. In a production environment, the consultant uses snapshot debugging instead of regular debugging.
- B. All extension source code is shown, regardless of the resource-exposure policy of the extension.
- C. Access to extension source depends on the resource-exposure policy of the extension.
- D. Profiling a session is possible only after the consultant publishes an extension from Visual Studio Code.
A and C are correct.
Explanation: When you start Visual Studio Code from the web client, production environments support snapshot debugging rather than regular debugging, and the source code you can inspect depends on the resource-exposure policy set for the extension.
B is incorrect: Source visibility is limited by the resource-exposure policy, so some extension source can remain inaccessible.
D is incorrect: You can inspect source, set breakpoints, debug, snapshot debug, or profile a session from the web client entry points without first publishing an extension.
Q079 - Question
A partner copies the AL project folder of a published extension to start a separate extension for a different customer. Both extensions must be able to exist as distinct apps. Which change in app.json is required?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Assign a new app ID to the copied app.
- B. Keep the existing app ID and increment only the version number.
- C. Change only the publisher value and keep the existing app ID.
- D. Leave app.json unchanged and set a different startup object in launch.json.
A is correct.
Explanation: The app ID identifies an app, so a copied app must get a new ID to exist as a separate app. Be aware that an app with a new ID is a new app and cannot upgrade the original app.
B is incorrect: Keeping the same ID means the project still identifies the same app, and a version increment alone does not create a separate app.
C is incorrect: Changing the published name or publisher requires a version increment, but it does not make the app a distinct app while the ID stays the same.
D is incorrect: launch.json controls deployment and debugging settings such as the startup object, and it does not identify the app.
Q080 - 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.
Q081 - Question
A customer wants a customized report to run instead of a standard Dynamics 365 Business Central report whenever users start it from a page action, from Tell Me, or when code invokes the report. Extending the existing report is not sufficient for the requirement. What should you implement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Set UsageCategory to None on the standard report so that only the customized report is found.
- B. Add AdditionalSearchTerms to the customized report so that users select it instead.
- C. Create a report extension for the standard report and change its dataset caption.
- D. Subscribe to the OnAfterSubstituteReport event in Codeunit 44 ReportManagement and assign NewReportId when the ReportId matches the standard report.
D is correct.
Explanation: Subscribing to ReportManagement.OnAfterSubstituteReport and assigning NewReportId for the target ReportId substitutes the report, and the event is raised for page actions, Tell Me, and report invocation methods.
A is incorrect: Setting UsageCategory to None only removes the standard report from Tell Me results and does not affect page actions or calls from code.
B is incorrect: Additional search terms change how users find an object, not which report runs when the standard report is called.
C is incorrect: A report extension directly extends an existing report and can avoid substitution in some cases, but it does not meet a requirement that extension alone cannot satisfy.
Q082 - Question
A partner supports two customers. One customer runs Business Central version 22, and the other runs version 23. Users in both environments report that they cannot use analysis mode. What should the partner do in each environment?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. In version 22, enable the Feature Update: Analysis mode feature. In version 23, assign DATA ANALYSIS - EXEC or run permission on system object 9640.
- B. In both environments, enable the Feature Update: Analysis mode feature only.
- C. In version 22, assign run permission on system object 9640. In version 23, enable the Feature Update: Analysis mode feature.
- D. No configuration is required in either environment, because the Analyze action is available to every user.
A is correct.
Explanation: In version 22, analysis mode depends on the Feature Update: Analysis mode feature. From version 23 onward, users need the DATA ANALYSIS - EXEC permission set or run permission on system object 9640.
B is incorrect: The feature update applies to version 22; in version 23 and later the access is controlled by permissions.
C is incorrect: The two requirements are reversed, so neither environment would be configured correctly.
D is incorrect: The Analyze action depends on the feature setting in version 22 and on permissions in version 23 and later.
Q083 - Question
You need to configure a warehouse label report to start printing as soon as a user selects it, with no intermediate page. Before you set UseRequestPage to false on the report, which consequence must you verify the customer accepts?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The report can no longer use a report layout, so output is limited to plain text.
- B. Users can no longer set filters or a sort order before the report runs.
- C. The report data items are removed and must be replaced with AL code that reads records directly.
- D. The report can only be started from a page action and never from the report list.
B is correct.
Explanation: The request page is shown by default and is where users specify report options and filters. When you set UseRequestPage to false, the report starts immediately, so users lose the opportunity to set filters or a sort order for that run.
A is incorrect: Turning off the request page changes only the user interaction before the run. It does not restrict which layout the report uses.
C is incorrect: Data items remain part of the report definition. Only the page that normally exposes their filters and sorting is skipped.
D is incorrect: Nothing in the request page setting limits where the report can be started from.
Q084 - Question
A customer wants to add their logo and change the column order on a sales report layout that is delivered by an installed extension. The change must apply every time users run that report in the current company. What should you do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a user-defined copy of the extension layout, modify the copy, and set it as the layout for the report.
- B. Open the extension layout in the client, edit it directly, and save the changes.
- C. Select the required layout on the request page each time the report is run.
- D. Change the report object so that the extension layout is replaced during the next upgrade.
A is correct.
Explanation: Layouts that come from an extension cannot be modified in the client. Create a user-defined copy of the layout, change the copy, and then set it as the layout for the report so that it applies for the company.
B is incorrect: Direct editing of an extension layout in the client is not possible, so the change must be made on a copy.
C is incorrect: Choosing a layout on the request page applies to that run only, so it does not give a lasting default for all users.
D is incorrect: Changing the report object is not required for a presentation change, because the object defines the available data while the layout defines the presentation.
Q085 - Question
A developer designs an RDLC layout for a Business Central report in SQL Server Report Builder. The layout must bind to the data that the AL dataset produces, and the developer wants to validate the field names and value types before building the tablix. Which approach matches how Business Central works with RDLC layouts?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a dataset in Report Builder that connects directly to the Business Central SQL tables, then match the column names to the AL dataset.
- B. Bind the layout to the DataSet_Result dataset, and run the report with a data-only Excel export to validate the fields and value types.
- C. Bind the layout to a dataset named after the report object, and set DefaultRenderingLayout on the report extension to publish it.
- D. Bind the layout to the custom XML part generated for the report, then map the fields with the XML Mapping Pane.
B is correct.
Explanation: The Business Central RDLC dataset is named DataSet_Result, and exporting the report data only to Excel lets you validate which fields are available and what value types they return before you finish the layout.
A is incorrect: The RDLC layout consumes the dataset that the AL report object produces, not a separate connection defined in Report Builder.
C is incorrect: The dataset name is DataSet_Result rather than the report name, and DefaultRenderingLayout applies only to report objects, not to report extensions.
D is incorrect: The custom XML part and the XML Mapping Pane belong to Word layouts, not to RDLC layouts.
Q086 - Question
A developer writes a report extension for a report that another publisher shipped. The compiler rejects the extension even though the syntax matches working examples for other reports. What is the most likely cause?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The base report has the Extensible property set to false.
- B. The base report has no layout defined, so it cannot be extended.
- C. Report extension objects can extend only reports in the developer's own extension.
- D. The base report already contains a nested data item, which blocks further extension.
A is correct.
Explanation: Reports are extensible by default, so extension is blocked only when the report author sets the Extensible property to false. Verify that property on the base report before you continue.
B is incorrect: Reports without a defined layout are not excluded from extension, and a report extension can add a new layout.
C is incorrect: Report extensions are designed to extend existing reports from other objects, in the same general manner as table and page extensions.
D is incorrect: A nested data item in the base report does not prevent a report extension from adding columns or data items.
Q087 - Question
You indent a Sales Line data item under a Sales Header data item but you do not configure the DataItemLinkReference or DataItemLink properties. Users report that every sales line appears under every sales header. What causes this result?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The data items are processed sequentially, so their records are concatenated
- B. The DataItemTableView property filters out the header key
- C. The nested data item creates a cross join, so all child records are read for each parent record
- D. PrintOnlyIfDetail is set to true on the child data item
C is correct.
Explanation: When a data item is indented under another data item without DataItemLink, the child table is read in full for every parent record. The result is a cross join between the two tables. Set DataItemLinkReference to the parent data item and define DataItemLink to relate the records.
A is incorrect: Records are concatenated only when data items are placed sequentially at the same level, not when one is indented under another.
B is incorrect: DataItemTableView sets the key, sort order, and filters of a data item; leaving it unset does not create the repetition described.
D is incorrect: PrintOnlyIfDetail controls whether a parent prints when no child output exists, and it is set on the parent data item.
Q088 - Question
A report named Liquidity Overview already appears in Tell Me. Users report that they search for "cash forecast" and find nothing, and the customer also needs those alternative terms to work in the languages they use. Which two properties should you use on the report object? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. UsageCategory
- B. AdditionalSearchTerms
- C. AccessByPermission
- D. AdditionalSearchTermsML
B and D are correct.
Explanation: Tell Me searches report captions and can also use AdditionalSearchTerms, and AdditionalSearchTermsML lets you supply those extra terms per language.
A is incorrect: UsageCategory controls whether the report is searchable and how the result is categorized, but it does not add alternative search terms.
C is incorrect: AccessByPermission restricts access to a searchable object and does not extend the terms that match the report.
Q089 - Question
You convert a sales shipment document report so that each printed document uses the language code stored on the header record. The layout currently relies on IncludeCaption columns and report labels. Which two changes are required? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Add dataset columns that return captions with FieldCaption or TableCaption, and use label variables for other text.
- B. Set CurrReport.Language from the header record's Language Code when the header record is retrieved.
- C. Set IncludeCaption to true on every remaining dataset column so captions refresh for each header record.
- D. Set the MaxLength parameter on each label so the caption text can change length per language.
A and B are correct.
Explanation: Captions produced by IncludeCaption and report labels are fixed when the dataset is generated, so you must add caption columns that call FieldCaption or TableCaption and use label variables instead. Then set CurrReport.Language from the Language Code of each retrieved header record so the text is resolved in the recipient's language.
C is incorrect: IncludeCaption captions are determined during dataset generation and do not change per header record.
D is incorrect: MaxLength limits the length available to translators and does not switch the language of the printed document.
Q090 - Question
A team plans changes to a standard report and wants to know what a report extension object can deliver. Which two changes can a report extension object make? Each correct answer presents a complete solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Change the properties of a column that the base report defines.
- B. Add a nested data item under an existing base data item.
- C. Replace the existing base layout file with an edited version.
- D. Add controls to the report request page.
B and D are correct.
Explanation: A report extension makes additive changes. You can add columns and nested data items to the dataset, add controls to the request page, implement triggers, and add new layouts.
A is incorrect: Properties of base dataset elements stay under the control of the base report, so changing them requires substitution or a report copy.
C is incorrect: A report extension cannot modify base layouts; it can only add a new layout, which is then selected separately.
Q091 - Question
A partner builds a report object that reads sales documents and updates status fields in batch. The report produces no printed or previewed output. A functional consultant asks which layout the report should ship with. What is the correct design decision?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Ship the report with an RDLC layout because every report object requires a rendering definition.
- B. Ship the report with an Excel layout so users can review the processed records.
- C. Ship the report as a processing-only report, which has no layout.
- D. Ship the report with a Word layout and let users add more layouts at runtime.
C is correct.
Explanation: A report that only processes data and produces no output is a processing-only report, and a processing-only report has no layout.
A is incorrect: RDLC is one of the built-in layout types, but a report that produces no output does not need any layout at all.
B is incorrect: An Excel layout renders report output, which is unnecessary for a report whose purpose is to update records.
D is incorrect: Adding a Word layout, and allowing users to add layouts at runtime, only applies to reports that render output.
Q092 - Question
A company wants to print posted sales invoices from Business Central to printers that are managed with Universal Print. Which two prerequisites must be in place before the printers can be selected in Business Central? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. Configure browser printing as the default option in Printer Selections.
- B. Install the Universal Print integration extension in Business Central.
- C. Create a user-defined copy of the invoice report layout.
- D. Register the shared printers in Universal Print and hold the required Microsoft Entra roles to manage them.
B and D are correct.
Explanation: Cloud printing with Universal Print requires the Universal Print integration extension in Business Central, a Universal Print subscription, printers that are registered and shared in Universal Print, and the appropriate Microsoft Entra roles for management. After those prerequisites are met, you add and configure the printers in Printer Management and assign them in Printer Selections.
A is incorrect: Browser printing is a fallback print option and does not enable Universal Print printers.
C is incorrect: Copying a report layout changes the presentation of the report and has no effect on printer availability.
Q093 - Question
A controller uses pivot mode in analysis mode on a ledger entry list that returns more than 100,000 rows. He wants subtotals by period and stable behavior in the browser. Which two statements should guide his setup? Each correct answer presents part of the solution.
Domain: Describe Business Central (10-15%) Type: Multiple choice
- A. He can place any nonnumeric field in Values to produce subtotals.
- B. He should assign a field with few distinct values to Column labels, because large-dataset mode requires low-cardinality column-label fields to avoid browser instability.
- C. Pivot mode removes large-dataset mode, so formatting stays the same as in smaller datasets.
- D. He can use the Year, Quarter, and Month fields that analysis mode creates for date fields based on the calendar year, but not for datetime fields.
B and D are correct.
Explanation: For datasets over 100,000 rows, large-dataset mode applies, and fields used for Column labels must have a low number of distinct values to keep the browser stable. For period subtotals, analysis mode generates Year, Quarter, and Month fields from date fields using the calendar year, while datetime fields are excluded from this hierarchy.
A is incorrect: Values accepts summable numeric fields, and nonnumeric fields are used for row groups.
C is incorrect: Large-dataset mode still applies above 100,000 rows and changes some formatting.
Q094 - Question
A report that prints item statistics runs slowly and produces a very large dataset. A review shows that a column was added for every field of the Item table, but the layout uses only eight of them. What should you do to improve the report?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Move the unused columns to a second data item at the same level
- B. Remove the columns that the layout does not use
- C. Replace each unused field column with an expression column
- D. Rename the unused columns so that the names are CLS compliant
B is correct.
Explanation: Add only the columns that the layout needs. Unnecessary columns increase the size of the dataset and degrade report performance, so removing the unused columns is the direct fix.
A is incorrect: A second data item at the same level concatenates more records into the dataset and increases its size instead of reducing it.
C is incorrect: Columns can hold fields, variables, or expressions, but converting unused columns to expressions keeps them in the dataset and does not reduce its size.
D is incorrect: ColumnName values must be unique and CLS compliant, but renaming does not change how much data the dataset returns.
Q095 - Question
You must build a report dataset from a query object that combines and calculates data from several tables. How do you make the query results available to the report layout?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add the query object directly as a data item and add columns for each query column
- B. Declare the query as a global variable, use an Integer data item, and open and read the query in the OnPreDataItem and OnAfterGetRecord triggers
- C. Add a data item for each table used by the query and repeat the query filters in DataItemTableView
- D. Set DataItemLinkReference on the query so that it links to the first table in the report
B is correct.
Explanation: Reference the query as a global variable in the report, add an Integer data item, then open the query in OnPreDataItem and read the next row in OnAfterGetRecord. Columns of the Integer data item return the query column values. Export the report as data-only Excel output to validate the returned columns and the value types used by the layout.
A is incorrect: A data item specifies a table, so a query object cannot be selected directly as a data item.
C is incorrect: Rebuilding the query as separate data items discards the combination and calculation logic already defined in the query object.
D is incorrect: DataItemLinkReference and DataItemLink relate an indented data item to a parent data item and do not apply to a query object.
Q096 - Question
You plan to publish an extension that substitutes a standard report in a production environment where other extensions are already installed. Which action helps you avoid conflicting or failing behavior after deployment?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Check whether another subscriber has already substituted the report, and verify that the replacement report is compatible with the code that calls it.
- B. Set UsageCategory to None on the standard report so that only the replacement is returned by Tell Me.
- C. Give the replacement report a clearly different caption so that users can distinguish it from the standard report.
- D. Remove the standard report from the environment before you publish the substitution.
A is correct.
Explanation: Another subscriber can already assign a NewReportId for the same report, so check for an existing substitution, and confirm that the replacement report works for the code that invokes it.
B is incorrect: Changing UsageCategory affects only Tell Me results and does not control which report runs from page actions or from code.
C is incorrect: Matching captions are preferred where appropriate so that linked actions and bookmarks stay consistent.
D is incorrect: Substitution works by redirecting the call at run time through the OnAfterSubstituteReport event, so the base report remains in the environment.
Q097 - Question
You must print a barcode for an item number on a report layout in Business Central online by using the System Application Barcode module. What should you do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Apply a barcode font to the field in the layout and let the layout encode the item number when the report renders.
- B. Store the item number in a separate table field and print it with a standard font on the layout.
- C. Install a third-party font provider extension, because Business Central online includes no barcode providers or fonts.
- D. Validate the item number for the chosen symbology, encode it, add the encoded string to the report dataset, and apply the matching barcode font in the layout.
D is correct.
Explanation: The Barcode module converts dataset strings to barcode values through font providers and encoders. You validate the input for the chosen symbology, encode it, add the encoded string to the dataset, and then apply the corresponding barcode font in the layout.
A is incorrect: The layout does not encode the value; the encoded string must already be in the dataset before the barcode font is applied.
B is incorrect: A standard font prints readable text instead of a barcode, because no encoding or barcode font is used.
C is incorrect: Business Central online includes IDAutomation providers and fonts for supported symbologies.
Q098 - Question
Users run a report that has an Excel layout. They report that the request page does not let them preview the result on screen or send it directly to a printer, although the same actions work for another report that uses a Word layout. What explains this behavior?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The request page is hidden because UseRequestPage is set to false for Excel layouts.
- B. The report dataset is empty, so the preview and print actions are removed.
- C. Report labels are missing, so the layout cannot be rendered for preview.
- D. The actions available on the request page depend on the layout type, and Excel reports are downloaded instead of previewed or printed directly.
D is correct.
Explanation: The request page actions vary by layout type. Reports that use an Excel layout are downloaded, while RDLC and Word layouts provide preview, print, and send options.
A is incorrect: Setting UseRequestPage to false hides the request page completely, but in this scenario the users still open and use the request page.
B is incorrect: An empty dataset changes the content of the output, not which actions the request page offers for a layout type.
C is incorrect: Labels supply caption and title text for layouts and do not control whether preview or print actions appear.
Q099 - Question
A warehouse lead builds an analysis tab and copies the link to it so that a colleague can review the same view. What should the warehouse lead expect when the colleague opens the link?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The colleague receives access to the company and the data through the link itself.
- B. The colleague must already have permission to the target company and the data, and opening the link creates a named analysis tab for the colleague.
- C. The colleague receives a static copy of the analysis results that cannot be opened in Business Central.
- D. The link always omits any company association, so the colleague must select the company manually.
B is correct.
Explanation: A shared analysis link is generated by the client and does not change permissions. The recipient needs permission to the target company and the underlying data, and opening the link creates a named analysis tab in their session.
A is incorrect: The link only points to the analysis; permission to the company and data must already exist.
C is incorrect: The recipient opens the analysis in Business Central as an analysis tab rather than receiving a static result set.
D is incorrect: A shared link can target the current company or omit a company association, so it does not always require manual company selection.
Q100 - Question
A functional consultant asks a developer to produce printed sales quotes and sales invoices, and to summarize the related data for review. Which AL object type should the developer use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. A page object
- B. A report object
- C. A query
- D. A report extension
B is correct.
Explanation: The evidence states that you use a report object in AL to define a report dataset, structure and summarize information, and print documents such as sales quotes and invoices.
A is incorrect: The evidence does not describe a page object for defining a report dataset or printing documents.
C is incorrect: The evidence indicates that queries can improve retrieval performance, not that they define the dataset to print documents such as sales invoices.
D is incorrect: A report extension modifies an existing report, whereas a report object is used to define a new report dataset and print documents.
Q101 - Question
A publisher raises an isolated event that several extensions subscribe to. One subscriber fails with an error after it has written records to the database. What is the result?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Eligible database changes made by the failing subscriber are rolled back, and event processing continues
- B. All subscribers of the event are rolled back and the event is raised again
- C. The publisher code is rolled back and no further subscribers are called
- D. The failing subscriber keeps its database changes and the remaining subscribers are skipped
A is correct.
Explanation: Isolated events run subscribers in separate transactions, so eligible database changes from a failing subscriber are rolled back while event processing continues. Note that non-database state can persist after the rollback.
B is incorrect: The separate transactions apply per subscriber, so a failure does not roll back the other subscribers or cause the event to be raised again.
C is incorrect: Event processing continues after a subscriber fails, so the remaining subscribers are still called.
D is incorrect: The eligible database changes of the failing subscriber are rolled back rather than kept, and the other subscribers are not skipped.
Q102 - Question
A team must ship one extension that supports three languages and must make sure the generated XLIFF content includes captions that are not defined explicitly in the source code. Which two approaches meet these requirements? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Store all three target languages in a single XLIFF file and switch targets at runtime.
- B. Create one language-country XLIFF file for each of the three languages and package them with the extension.
- C. Replace caption properties with hard-coded text in the AL objects so no translation file is needed.
- D. Enable the GenerateCaptions feature so that generated captions are included in the translation content.
B and D are correct.
Explanation: Use one XLIFF file per language-country combination and include those files with the extension. Enable GenerateCaptions to extend the generated content with captions that are not defined explicitly, and note that GenerateLockedTranslations can extend the content further.
A is incorrect: Translations are organized as one file per language rather than as multiple target languages in a single file.
C is incorrect: Caption, tooltip, and label properties are the source of translatable text, so hard-coded text removes the content that translation files rely on.
Q103 - Question
A customer requires that a calculated charge is always rounded upward to two decimals, even when the third decimal is low. Which Round call meets the requirement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Round(Amount, 0.01)
- B. Round(Amount, 0.01, '<')
- C. Round(Amount, 0.01, '=')
- D. Round(Amount, 0.01, '>')
D is correct.
Explanation: The direction parameter '>' rounds the value upward, and the precision parameter 0.01 sets rounding to two decimals.
A is incorrect: When you omit the direction, Round uses nearest rounding, so low third decimals round downward.
B is incorrect: The '<' direction rounds the value downward, which is the opposite of the requirement.
C is incorrect: The '=' direction rounds to the nearest value, so the result is not always rounded upward.
Q104 - Question
An independent software vendor plans to publish events from a shared extension. Partners will build solutions that subscribe to these events, and the vendor must give partners a signature contract that stays stable over time. Which event category should the vendor publish?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Trigger events
- B. Business events
- C. Integration events
- D. Table OnInsert triggers
B is correct.
Explanation: Business events define a stable signature contract, so subscribers can depend on the signature remaining unchanged.
A is incorrect: Trigger events are raised by the system before and after table operations such as insert, modify, delete, rename, and field validation, so they are not a published contract that the vendor defines.
C is incorrect: Integration events can change, so they do not provide the stable signature the partners require.
D is incorrect: A table OnInsert trigger is a predefined system function for code inside the table, not a published event category that other extensions subscribe to.
Q105 - Question
A codeunit applies filters to a Sales Line record variable and then must decide whether to continue processing. The code only needs to know whether at least one matching record exists, and the developer wants to avoid loading record data from the database. Which approach fits this requirement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Call FindSet and loop with Next to count the matching records.
- B. Call Get with the primary key fields of the first expected line.
- C. Call IsEmpty after the filters are applied.
- D. Call Find('-') and evaluate the return value.
C is correct.
Explanation: IsEmpty tests whether the filtered record set contains any records without retrieving the record data, which is the lowest-cost way to check existence.
A is incorrect: FindSet with Next retrieves and iterates the result set, so it loads data that the logic does not need.
B is incorrect: Get retrieves a single record by its primary key, so it cannot answer whether any record matches a set of filters.
D is incorrect: Find('-') is the legacy retrieval syntax, and FindFirst or FindLast is preferred for performance; it also retrieves a record instead of only testing existence.
Q106 - Question
A page action must start a procedure named CalculateDiscount that is defined in a codeunit. The codeunit also contains an OnRun trigger with unrelated logic that must not run. What should you do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Set the RunObject property of the action to the codeunit.
- B. Set the subtype of the codeunit to Normal.
- C. Use the tcodeunit snippet on the page action.
- D. Add an OnAction trigger and use a Codeunit variable to call the procedure.
D is correct.
Explanation: The evidence states to use an OnAction trigger and a Codeunit variable to call other procedures, because RunObject can run only the codeunit OnRun trigger.
A is incorrect: An action RunObject can run only the codeunit OnRun trigger, which contains unrelated logic in this scenario.
B is incorrect: The Normal subtype relates to codeunit behavior, but does not allow an action to call a specific procedure instead of the OnRun trigger.
C is incorrect: The tcodeunit snippet is used to create a codeunit with an ID and name, not to call a procedure from a page action.
Q107 - Question
You extend a posting routine in Dynamics 365 Business Central. One AL procedure calls a platform operation that can raise a runtime exception. Instead of stopping the routine with the raw platform error, you want the calling code to continue and display a message that the user can act on. Which approach meets this requirement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Call the procedure as a statement and place the recovery logic on the next line.
- B. Mark the procedure with the [TryFunction] attribute, call it in an if condition, and read the error text with GetLastErrorText.
- C. Wrap the platform call in a Confirm method so the user decides whether to continue.
- D. Call the procedure through a Dialog variable so the Cancel button handles the exception.
B is correct.
Explanation: A method marked with [TryFunction] returns a Boolean when it is called through an assignment or a condition, so the caller can test the result, catch the platform exception, and use GetLastErrorText to retrieve the latest error text for a user-friendly message.
A is incorrect: A try method only returns its Boolean result when it is called through an assignment or a condition, so calling it as a plain statement gives the caller nothing to test.
C is incorrect: Confirm asks the user a question before an action runs; it does not catch a platform exception that is raised during the call.
D is incorrect: A Dialog variable reports progress and provides a Cancel button for the user; it does not catch runtime exceptions from a called method.
Q108 - Question
You are designing an extension where a posting routine must substitute different business logic per customer configuration. Which two statements about AL interfaces and extensible enums are accurate?
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. A codeunit can implement more than one interface.
- B. An interface object requires an object ID so consumers can reference it.
- C. An extensible enum value can select which concrete interface implementation is used.
- D. An interface must contain at least one method body to provide default behavior.
A and C are correct.
Explanation: A single codeunit can implement multiple interfaces, and values of an extensible enum can select the concrete implementation. Together, these options let you change or add implementations without changing the consuming code.
B is incorrect: Interfaces have no object ID, so you do not reserve an ID from your object range for them.
D is incorrect: Interfaces contain signatures only and hold no method bodies, so default behavior must live in an implementing object.
Q109 - Question
On Business Central 2024 release wave 2, you need a new interface that requires every method of IAddressProvider plus one new method. Which design meets the requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Declare the new interface so it extends IAddressProvider and add the new signature, and implement all inherited and new methods in each conforming object.
- B. Declare the new interface so it extends IAddressProvider, and implement only the new method because the inherited methods run from the base interface.
- C. Copy the IAddressProvider signatures into the new interface, because an interface cannot extend another interface.
- D. Replace the interface with an extensible enum, because method requirements cannot be inherited in AL.
A is correct.
Explanation: Since Business Central 2024 release wave 2, an interface can extend one or more interfaces. An implementing object must provide all inherited methods and all newly declared methods. The resulting interfaces still work with is type testing and as casting.
B is incorrect: An interface has no method bodies, so inherited methods cannot run from the base interface. The implementing object must supply them.
C is incorrect: Interface extension is available from that release, so copying signatures is not required.
D is incorrect: An extensible enum can select an implementation, but it does not replace the inherited method requirements that interface extension provides.
Q110 - Question
A developer wants translation suggestions inside the XLIFF editing tool instead of typing every target string manually. Which configuration supports this requirement?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Configure the Multilingual App Toolkit with an Azure Translator service key stored in Windows Credential Manager, then use the toolkit translation and suggestion actions.
- B. Add the Azure Translator service key to app.json so the build applies translations during compilation.
- C. Publish the extension first, because translation suggestions are generated by the Business Central service after deployment.
- D. Rename the generated .g.xlf file, because renaming triggers automatic machine translation of the target strings.
A is correct.
Explanation: The Multilingual App Toolkit edits XLIFF files and can request suggestions from the Azure Translator REST API. You configure the toolkit with an Azure Translator service key that is stored in Windows Credential Manager, and Azure Translator offers free and paid tiers.
B is incorrect: app.json controls translation file generation, not calls to the Azure Translator service.
C is incorrect: Suggestions come from the Azure Translator service through the toolkit, so publishing the extension is not what produces them.
D is incorrect: Renaming the generated file preserves your edits before the next build; it does not translate any strings.
Q111 - Question
You write AL code that packs a total quantity of Integer units into boxes of a fixed size. You must calculate the number of full boxes and the number of units left over, and both results must be integers. Which operators should you use?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Use / for the number of full boxes and MOD for the units left over.
- B. Use DIV for the number of full boxes and MOD for the units left over.
- C. Use MOD for the number of full boxes and DIV for the units left over.
- D. Use the conditional ? : operator for both results.
B is correct.
Explanation: DIV returns the integer quotient of a division, which gives the number of full boxes, and MOD returns the remainder, which gives the units left over.
A is incorrect: The / operator performs a standard division and does not return the integer quotient that DIV provides.
C is incorrect: The roles are reversed, because MOD returns the remainder and DIV returns the integer quotient.
D is incorrect: The conditional ? : operator selects one of two values based on a condition, so it does not perform the arithmetic needed here.
Q112 - Question
A developer must create a new interface declaration in Visual Studio Code and then review every object that already conforms to it. Which combination of development tools supports this task?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Create the object with the tcodeunit snippet, then run a text search for the implements keyword across the project.
- B. Create the object with the tinterface snippet, then wait for compiler warnings to report the conforming objects.
- C. Create the object with the tinterface snippet, then use Go to Implementations (Ctrl+F12) to navigate to the implementations.
- D. Create the object with the tenum snippet, then use Go to Definition to list the implementations.
C is correct.
Explanation: Use the tinterface snippet to create an interface object, and use Go to Implementations (Ctrl+F12) to navigate from the interface to the objects that implement it.
A is incorrect: The tcodeunit snippet creates a codeunit, not an interface declaration, and a text search is not the navigation feature provided for implementations.
B is incorrect: The compiler enforces that declared signatures are implemented, but it is not a navigation list of conforming objects.
D is incorrect: The tenum snippet creates an enum. An extensible enum can implement an interface, but it does not replace the interface declaration itself.
Q113 - Question
A codeunit inserts new records into a custom table from imported data. The business logic in the table's OnInsert trigger must run for every inserted record. What should you do in the AL code?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Call Insert without parameters, because table triggers run by default.
- B. Call Truncate before each Insert so the platform re-evaluates the table triggers.
- C. Call ModifyAll after the inserts to trigger the table logic for the new records.
- D. Call Insert and pass the RunTrigger parameter as true.
D is correct.
Explanation: Insert defaults to not running table triggers, so pass the RunTrigger parameter as true when the OnInsert trigger logic must run.
A is incorrect: The default behavior of Insert skips table triggers, although before and after events still fire.
B is incorrect: Truncate is a bulk operation that removes table data and can be unavailable for some table or subscriber conditions; it does not control trigger execution for Insert.
C is incorrect: ModifyAll changes field values on existing records and does not run the OnInsert trigger.
Q114 - Question
A developer designs a try method that validates a document and also inserts log records into a table inside the same try method. The solution must run on an on-premises Business Central deployment that uses the default server settings. What should you tell the developer about this design?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. The design is supported because database writes in a try method are always rolled back when the method fails.
- B. The design is supported because the try method commits the log records before it returns false.
- C. The design works only if the log records are inserted after GetLastErrorText is called.
- D. The design should be changed, because database writes in try methods are not rolled back and the default on-premises server settings reject writes in try methods.
D is correct.
Explanation: Database writes inside a try method are not rolled back, so you should avoid them. On an on-premises deployment, the default server settings reject database write operations that are performed in try methods, so the logging must be moved outside the try method.
A is incorrect: Write operations in a try method are not rolled back, which is the reason to keep them out of the try method.
B is incorrect: Returning false from a try method does not commit data, and the default on-premises server settings still reject the write.
C is incorrect: GetLastErrorText only retrieves the latest error text; the order of calls does not make database writes inside a try method acceptable.
Q115 - Question
You review a codeunit that resets working variables and converts imported text values into decimals. Which two statements about the variable functions are correct? Each correct answer presents a complete solution.
Domain: Develop by using AL (15-20%) Type: Multiple choice
- A. Clear resets every variable in the object, including Rec, to its default value.
- B. ClearAll resets all variables except Rec, and it also clears filters and keys.
- C. Format converts a text value to another data type and returns whether the conversion succeeded.
- D. Evaluate converts text or code to another data type and returns whether the conversion succeeded.
B and D are correct.
Explanation: ClearAll resets all variables except Rec and also clears filters and keys, and Evaluate converts a text or code value to another data type and returns whether the conversion succeeded, so you can test the result before you use the value.
A is incorrect: Clear resets a single variable that you pass to it, so it does not reset every variable in the object.
C is incorrect: Format converts a value to text, so it works in the opposite direction from Evaluate.
Q116 - Question
Your team maintains a shared AL codeunit. Other developers should see a description of a procedure and its parameters through IntelliSense when they call it from their own code. Which commenting approach do you use?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Add XML documentation comments that start with /// immediately before the procedure.
- B. Add a line comment that starts with // immediately before the procedure.
- C. Wrap the procedure body in a /* ... */ block comment.
- D. Wrap the procedure in #region and #endregion directives.
A is correct.
Explanation: XML documentation comments use /// and must be placed immediately before the supported type or member. Documentation written this way appears through IntelliSense for other developers.
B is incorrect: A // line comment documents the code in the editor only and is not surfaced through IntelliSense.
C is incorrect: A /* ... */ block comment marks text as a comment, and placing it around the procedure body would remove the executable code instead of documenting the procedure.
D is incorrect: #region and #endregion only create a collapsible code region in the editor and provide no IntelliSense documentation.
Q117 - Question
You plan to add automated unit tests to an extension and must choose codeunit subtypes that identify testing roles. Which two subtypes should you use? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Normal
- B. Test
- C. Install
- D. TestRunner
B and D are correct.
Explanation: The evidence states that the Test and TestRunner subtypes have testing-specific behavior and identify unit-test roles.
A is incorrect: The Normal subtype does not provide testing-specific behavior.
C is incorrect: The Install subtype has lifecycle behavior, not testing-specific behavior.
Q118 - Question
A long-running data update in an extension gives users no feedback while it runs, and users report that they cannot tell whether the process is still working or stop it. The messages must also remain translatable. What should you implement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Call the Message method after each record is processed, and build the text by concatenating strings.
- B. Create a page that lists processed records, and refresh it after each record.
- C. Use the Dialog type to report progress, which includes a Cancel button, and define the displayed text with labels.
- D. Call the Error method with text that includes manual backslashes so that each processing step appears on its own line.
C is correct.
Explanation: Use the Dialog type to report the progress of a long-running operation. Dialog windows include a Cancel button, and defining the displayed text with labels keeps the messages readable and translatable.
A is incorrect: Message displays information but is not the mechanism for reporting progress, and concatenated strings are harder to translate than labels.
B is incorrect: Pages are preferred for consistent UI, but progress reporting is one of the cases where a dialog is the appropriate choice.
D is incorrect: Error stops the operation instead of reporting progress, and manual backslashes should be avoided except for alignment in Dialog.Open.
Q119 - Question
You extend a posting routine in Business Central. When a required setup value is missing, the routine must inform the user and stop the remaining code from running. Which interaction method do you call?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Message
- B. Confirm
- C. Error
- D. StrMenu
C is correct.
Explanation: The Error method displays the text to the user and stops code execution, so the rest of the posting routine does not run when the setup value is missing.
A is incorrect: Message is asynchronous and only displays information, so the routine keeps running after the text is shown.
B is incorrect: Confirm asks a question and returns the user response, so you must still write code to handle the answer, and the method itself does not stop execution.
D is incorrect: StrMenu presents a simple list of choices and returns the selected option number, which suits user choices rather than halting a routine.
Q120 - Question
A customer imports large batches of journal lines. Today the import stops at the first validation problem, so users correct one issue per run. You must change the AL code so that a single run reports every validation problem with context about the affected record. Which implementation should you use?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Run the validation procedure with ErrorBehavior(ErrorBehavior::Collect) and raise each validation error by using ErrorInfo.
- B. Call each validation step from a try method and store the value of GetLastErrorText in a temporary table.
- C. Replace each Error call with a Message call so that processing continues to the next line.
- D. Show a Dialog window and update it with each validation problem that the code finds.
A is correct.
Explanation: Collectible errors let the procedure continue and gather validation errors until the scope completes. You enable them with ErrorBehavior(ErrorBehavior::Collect) and create contextual errors by using ErrorInfo, so users receive one remediation list per run.
B is incorrect: A try method catches one platform exception per call and GetLastErrorText returns only the latest error text, which adds work compared with collecting errors in a scope.
C is incorrect: Message only displays information to the user; it does not record validation errors that the user can review as a list.
D is incorrect: A Dialog window reports progress of a long-running operation and is not the mechanism for collecting validation errors.
Q121 - Question
You must expose a custom table to a partner integration as a Business Central API. The partner requires a stable unique key for each record. Which approach meets the requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a page with PageType set to API, set APIVersion, APIPublisher, APIGroup, EntityName, and EntitySetName, and set ODataKeyFields to SystemId.
- B. Create a page with PageType set to List, publish it as an OData web service, and set ODataKeyFields to the primary key fields.
- C. Create a query object, publish it as a web service, and let the partner address records by row number.
- D. Create a page with PageType set to Card and add a custom GUID field that the partner uses as the key.
A is correct.
Explanation: An API page uses PageType API together with the APIVersion, APIPublisher, APIGroup, EntityName, and EntitySetName properties, and SystemId is the recommended unique identifier to set in ODataKeyFields.
B is incorrect: A List page published as an OData web service is a traditional web service rather than an API page, and APIs use pages and queries created specifically for API usage.
C is incorrect: A row number is not a resource identifier; API resources are addressed by an ID value such as SystemId.
D is incorrect: PageType Card does not create an API endpoint, and a custom GUID field is unnecessary because SystemId already provides a unique identifier.
Q122 - Question
You build a JsonObject in AL that holds customer data, and you must send it to an external REST service with a POST request. What do you do before you send the request?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Pass the JsonObject directly as the HttpContent of the request.
- B. Use ReadFrom on the JsonObject to convert it into request content.
- C. Use AsValue on the JsonObject and assign the result to the request headers.
- D. Use WriteTo to serialize the JsonObject into text, assign that text to the HttpContent, and set the content type header to application/json.
D is correct.
Explanation: WriteTo serializes the JsonObject into text that you assign to the HttpContent, and the content type header must state application/json so the service interprets the body correctly.
A is incorrect: The request body is carried by HttpContent as text, so the JSON structure must be serialized first.
B is incorrect: ReadFrom works in the opposite direction, because it parses JSON text into an AL JSON type.
C is incorrect: AsValue returns a JsonValue from a token, and headers carry metadata such as the content type rather than the JSON body.
Q123 - Question
An external application polls Business Central every minute for changed sales orders and then posts each order line in a separate request. The application now fails intermittently because of request-rate and concurrency limits. Which two changes reduce the number of requests? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Raise the page-size cap in the client so that each response returns all records in one call.
- B. Subscribe to webhooks so that the application is notified of changes instead of polling.
- C. Send all outstanding requests in parallel so that they finish before the timeout limit.
- D. Use a deep insert to create the order and its lines in a single request.
B and D are correct.
Explanation: Webhooks remove repeated polling calls because the application reacts to change notifications, and a deep insert writes a parent record together with its child records in one request, which lowers the total request count.
A is incorrect: Page size is capped by the service, so a client setting cannot return an unlimited result set in one call; use OData filtering and expansion to limit the data you request.
C is incorrect: Concurrency is also limited, so sending every request in parallel increases the chance of throttling instead of reducing request volume; batching is the supported way to group calls.
Q124 - Question
A warehouse team plans to scan 1D and 2D barcodes with the Business Central mobile app on company-owned devices. Before development starts, you must confirm the prerequisites for the scanning scenarios. Which two statements about the requirements are correct? Each correct answer presents part of the solution.
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Multiple choice
- A. Any field data type can receive a scanned barcode value.
- B. The Business Central mobile app must be version 4.0 or later.
- C. Camera scanning from a field button requires Android 11 or later on every device.
- D. Dedicated barcode scanner devices require Android 11 or later.
B and D are correct.
Explanation: Barcode scanning scenarios require the Business Central mobile app in version 4.0 or later, and the dedicated hardware scanner scenario adds the requirement of Android 11 or later on the scanner device. Verify both conditions before you plan the rollout.
A is incorrect: The field that receives the scanned value must use the Text or Code data type, so plan table and page fields accordingly.
C is incorrect: The Android 11 or later requirement applies to dedicated scanner devices, not to camera scanning from a field button.
Q125 - Question
A partner plans to move existing .NET processing logic out of an on-premises Business Central deployment so that the logic can also run for a cloud deployment. Which two statements about using Azure Functions for this plan are correct? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Azure Functions can run the existing .NET library in the cloud and provide an interop option for Business Central.
- B. Azure Functions can be written in AL so the existing Business Central code can be reused without changes.
- C. Business Central calls the function over HTTP, so the function must expose an HTTP endpoint.
- D. Azure Functions replaces the need for any AL code in the Business Central extension.
A and C are correct.
Explanation: Azure Functions runs supported code in the cloud, so you can host the existing .NET library there and use it as an interop option for Business Central. Business Central reaches the function through HTTP, so the function must expose an HTTP endpoint that accepts the request and returns a response.
B is incorrect: AL is not among the languages supported by Azure Functions, so you cannot move AL code into a function without rewriting it in a supported language.
D is incorrect: The extension still needs AL code to build the request, call the endpoint, and process the HTTP response.
Q126 - Question
You must show data from an external users endpoint to Business Central users on a single record layout. Which implementation matches this requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a card page whose AL code posts the page fields to the users endpoint and reads the returned status only.
- B. Create a card page whose AL code calls the users endpoint with HttpClient.Get, parses the returned JSON into local values, and shows those values in the fields.
- C. Create a card page that stores the raw response text in a media field and lets users read the JSON directly.
- D. Create a card page whose AL code builds a JsonObject with WriteTo and sends it to the users endpoint with Delete.
B is correct.
Explanation: A card page shows one record layout, and its AL code can call the external users endpoint with HttpClient.Get, parse the returned JSON into local values, and display those values in the page fields.
A is incorrect: A POST sends data to the service, so it does not retrieve the user data that the page must display.
C is incorrect: Storing raw response text does not extract the individual values, and the JSON must be parsed before the fields can show readable data.
D is incorrect: WriteTo and Delete are used to send or remove data, so this approach returns no user data for the page to display.
Q127 - Question
A functional consultant wants a page in Business Central to show a visualization that no standard page control provides, and the data comes from an external REST service. Which approach matches the documented purpose of a control add-in object?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Build a control add-in with AL and JavaScript to present the custom visualization and exchange data with the external REST service.
- B. Store the external data in a temporary table and display it in a standard list part, because control add-ins cannot use external data.
- C. Replace the page with a report object, because only reports can render data from other sources.
- D. Use a codeunit alone, because a control add-in cannot present visual elements to the user.
A is correct.
Explanation: The evidence supports A because control add-ins are custom visual elements built with AL and JavaScript. They can present unique visualizations, controls, or data from other sources, and they can exchange data with external REST services.
B is incorrect: Control add-ins are not limited to internal data, so there is no need to avoid the external service.
C is incorrect: A report object does not provide the interactive custom visual element that a control add-in delivers on a page.
D is incorrect: A codeunit contains no visual presentation, while the control add-in is specifically the visual element.
Q128 - Question
Your organization owns a tested .NET DLL library with business logic that you do not want to rewrite. You must call its class methods from an Azure function. Which approach should you use?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Convert the library logic to AL code and deploy it as an Azure function.
- B. Upload the DLL through the Kudu debug console and reference it in the function with #r.
- C. Copy the DLL into the Business Central server add-ins folder and call it from the function.
- D. Publish the DLL as a Business Central extension and let the function import it.
B is correct.
Explanation: You can upload an existing .NET DLL to the function app through the Kudu debug console and then add an #r reference in the function code. The function can then invoke the class methods in the library directly.
A is incorrect: AL is not a supported language for Azure Functions, so rewriting the library in AL does not produce a deployable function.
C is incorrect: Placing the assembly on the Business Central server does not make it available to code that runs in the Azure function app.
D is incorrect: A Business Central extension is deployed to Business Central, not to a function app, so the function cannot reference the library that way.
Q129 - Question
A development team maintains a small calculation routine that must run outside Business Central. The team wants a cloud-hosted platform that runs small units of code without managing servers, and that lets developers choose from several programming languages and hosting plans. Which platform meets these requirements?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Azure Functions
- B. A Business Central codeunit published as an AL extension
- C. A Business Central API page
- D. A control add-in hosted in the Business Central client
A is correct.
Explanation: Azure Functions is a serverless platform for running small cloud-hosted units of code. You can write functions in languages such as C#, JavaScript, TypeScript, Java, Python, and PowerShell, and you can select from multiple hosting plans.
B is incorrect: An AL codeunit runs inside Business Central, so it does not provide cloud-hosted execution outside the application, and AL is not one of the Azure Functions languages.
C is incorrect: An API page exposes Business Central data for external callers. It does not host custom code on a serverless platform.
D is incorrect: A control add-in runs in the Business Central client interface and does not provide serverless, server-side code execution with a choice of hosting plans.
Q130 - Question
In AL, you hold a JsonToken that contains a JSON object with a property named city. You must read the text stored in that property. Which sequence of members do you use?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Use AsObject on the token, use Get to retrieve the city property, then use AsValue to read the stored value.
- B. Use AsArray on the token, then use Add to append the city property, then read the array.
- C. Use ReadFrom on the token to load the city property, then use AsArray to read the value.
- D. Use Add on the token to register the city property, then use AsObject to read the value.
A is correct.
Explanation: Convert the token to a JsonObject with AsObject, retrieve the named property with Get, and then convert the returned token to a JsonValue with AsValue so you can read the stored data.
B is incorrect: AsArray targets JSON arrays rather than named properties, and Add writes data into a JSON structure instead of reading it.
C is incorrect: ReadFrom parses JSON text into a JSON type, so it is used when you load a response, not when you read a property from a token you already have.
D is incorrect: Add inserts a property into a JSON structure, so it changes the data rather than returning the existing value.
Q131 - Question
A development team must expose a codeunit so that an external application can call its business logic. The team asks which protocol to use and what the long-term risk is. Which statement is accurate?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. OData web services publish codeunits through the ODataV4 route, so use OData for this requirement.
- B. SOAP web services publish only Query objects, so the logic must be moved into a query.
- C. SOAP web services return JSON by default and are the recommended protocol for new integrations.
- D. SOAP web services publish Page and Codeunit objects, but SOAP is deprecated and scheduled for future removal.
D is correct.
Explanation: SOAP web services support Page and Codeunit objects through the WS service URLs, so a codeunit can be published with SOAP. Plan for the deprecation, because SOAP is deprecated and scheduled for removal in a future release, and REST APIs are recommended for new integrations.
A is incorrect: OData web services are published for Page and Query objects, so you cannot publish a codeunit as an OData service.
B is incorrect: SOAP supports Page and Codeunit objects, while Query objects are published for OData.
C is incorrect: SOAP is XML-based and described with WSDL, and OData v4 is the protocol that returns JSON by default.
Q132 - Question
A partner maintains an on-premises solution that calls the .NET CameraBarcodeScannerProvider type to scan barcodes. Users report errors on devices that cannot scan. What should you add to the AL code to handle this situation?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Convert the receiving field from Code to Integer before the scan runs.
- B. Check that the barcode scanner is available before you start a scan.
- C. Call the .NET provider again in a loop until a value is returned.
- D. Move the solution to Business Central online so the .NET provider always works.
B is correct.
Explanation: When you use the .NET CameraBarcodeScannerProvider type, check availability before you start a scan so the code can handle devices that cannot scan. This option is supported only in on-premises deployments.
A is incorrect: The field that receives a scanned value must use the Text or Code data type, so changing it to Integer breaks the scenario.
C is incorrect: Repeating the call does not resolve a device that has no scanning capability and leaves the user without a clear result.
D is incorrect: The .NET CameraBarcodeScannerProvider option is available only on-premises, so moving to Business Central online requires the control-add-in provider API instead.
Q133 - Question
A customer wants warehouse workers to tap a button next to the Item No. field on a mobile page and scan the item barcode with the device camera. You want the smallest possible AL change on the page field. What should you do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Add an action to the page that calls a codeunit to open the camera.
- B. Change the field data type to Integer so it can store the scanned number.
- C. Set the ExtendedDatatype property of the field to Barcode.
- D. Add the CameraBarcodeScannerProviderAddIn control add-in to the page.
C is correct.
Explanation: Setting the ExtendedDatatype property of a Text or Code field to Barcode adds the camera scanning button to that field in the mobile app. After the scan, the value is entered in the field and focus moves to the next quick-entry field.
A is incorrect: A custom page action adds code you do not need when the field property already provides the scanning button.
B is incorrect: The field must use the Text or Code data type to receive a scanned barcode value.
D is incorrect: The control add-in is used to start scanning programmatically from AL code, not to add a scanning button on a single field.
Q134 - Question
Two external applications update the same customer records through an OData web service. The business requires that an update fails instead of overwriting a change made by another application. What should you include in the PUT request?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. The @odata.etag value of the record sent as an If-Match HTTP header
- B. The $filter query option that restricts the request to unchanged records
- C. The primary key value in the JSON body instead of in the URL
- D. An OData metadata request before every update to compare field lengths
A is correct.
Explanation: The @odata.etag value is a concurrency token. When you send it as an If-Match HTTP header with the PUT request, the update is rejected if the record changed after you read it, so concurrent changes are not overwritten.
B is incorrect: $filter selects which records are returned by a request and does not provide concurrency control for an update.
C is incorrect: An OData update identifies the record by the primary key in the URL, and moving the key into the body does not detect concurrent changes.
D is incorrect: The metadata endpoint returns EDMX that describes data types, primary keys, field lengths, and mandatory fields, so it provides no information about whether a specific record changed.
Q135 - Question
You build an AL extension that calls an external REST service with HttpClient. After the call returns, you must check the returned status of the call and then read the returned body. Which HTTP object do you use to obtain both the status and the content of the call?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. HttpRequestMessage
- B. HttpHeaders
- C. HttpResponseMessage
- D. HttpClient
C is correct.
Explanation: HttpResponseMessage is the object that the HttpClient call returns, and it exposes the status of the call and the content that the service sent back, so you can test the status first and then read the body.
A is incorrect: HttpRequestMessage describes the outgoing call, such as the method and the target, so it holds no returned status or returned content.
B is incorrect: HttpHeaders manages validated request headers and content headers, so it carries header values only and not the status or the body.
D is incorrect: HttpClient sends the Get, Post, Put, Patch, Delete, and Send requests, but you must read the returned status and content from the response object it produces.
Q136 - Question
A developer writes a control add-in procedure and expects it to return a calculated value directly to the calling AL code. The code does not compile. What is the correct explanation and the supported way to return the result?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Control add-in calls are synchronous, so the procedure must declare a return type.
- B. Control add-in calls are asynchronous, so the methods must be void, and JavaScript returns the result by calling InvokeExtensibilityMethod with success and error callbacks.
- C. The procedure must be converted into an event, because procedures cannot be called from AL.
- D. The result must be written to a temporary table by the JavaScript file, because no callback mechanism exists.
B is correct.
Explanation: The evidence supports B because calls between AL and JavaScript in a control add-in are asynchronous in both directions, so the methods must be void. To return a result across the layers, JavaScript raises an event with InvokeExtensibilityMethod, which can use success and error callbacks.
A is incorrect: The calls are asynchronous, so a direct return value is not available.
C is incorrect: AL code does call control add-in procedures; the issue is the return value, not the direction of the call.
D is incorrect: A callback mechanism is available through InvokeExtensibilityMethod, so a table workaround is not required.
Q137 - Question
You develop an extension that starts barcode scanning from AL code when a user chooses an action. The extension must run in Business Central online and in on-premises deployments. Which implementation should you choose?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use the CameraBarcodeScannerProviderAddIn control add-in and handle its readiness, available, and failure triggers.
- B. Use the .NET CameraBarcodeScannerProvider type and check availability before scanning.
- C. Set ExtendedDatatype to Barcode on every field that must be scanned.
- D. Send an Android Intent broadcast message to the mobile app from AL code.
A is correct.
Explanation: The CameraBarcodeScannerProviderAddIn control add-in starts scanning from AL code in both online and on-premises environments. Handle the readiness, available, and failure triggers so the code responds when the device cannot scan.
B is incorrect: The .NET CameraBarcodeScannerProvider option works only in on-premises deployments, so it cannot cover the online requirement.
C is incorrect: The field property adds a scanning button for the user to choose, but it does not start scanning from AL code.
D is incorrect: Android Intent broadcast messaging applies to dedicated Zebra and Datalogic scanner devices, not to generic camera scanning across both deployment types.
Q138 - Question
You create a function in the Azure portal that must be called over the web by an external client. The client needs to send a JSON payload and read a JSON result. Which trigger type should you configure for the function?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Timer trigger
- B. Blob storage trigger
- C. Queue storage trigger
- D. HTTP trigger
D is correct.
Explanation: An HTTP-triggered function exposes an HTTP endpoint that accepts GET and POST requests, so a caller can send a JSON payload and receive a JSON response.
A is incorrect: A timer trigger runs the function on a schedule, so an external client cannot call it directly and exchange JSON in the same request.
B is incorrect: A blob storage trigger starts the function when blob content changes, which requires the caller to write to storage instead of calling an endpoint.
C is incorrect: A queue storage trigger responds to queue messages and does not provide the request and response exchange that the client needs.
Q139 - Question
A customer runs Business Central online. A nightly integration service must read and write data through web services without any signed-in user and without prompting for consent. Which authentication approach should you use for this service?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Basic Authentication with a web service access key generated for a dedicated user
- B. OAuth2 Authorization Code Flow so the service acts with delegated user permissions
- C. OAuth2 Client Credentials Flow so the service uses application permissions
- D. A SOAP WSDL service reference secured with a web service access key
C is correct.
Explanation: For application-to-application scenarios where no user is present, use OAuth2 Client Credentials Flow, which grants the registered application its own permissions rather than a user's permissions.
A is incorrect: Basic Authentication with web service access keys is deprecated for Business Central online and is only supported on-premises.
B is incorrect: Authorization Code Flow is designed for delegated user permissions, so it depends on a user signing in and is not suited to an unattended nightly service.
D is incorrect: This combines a deprecated authentication method with a deprecated protocol, and web service access keys are not supported for the online service.
Q140 - Question
Your AL code retrieves item data from an external REST service. Users report that the code fails with unclear errors when the service is unavailable or rejects the call. Which two checks should you perform before you process the returned data? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multi-select
- A. Read the response body with ReadAs and parse it, then check for empty text.
- B. Verify that the HTTP connection call to the service succeeds.
- C. Import the response directly into a media field and check whether the field is filled.
- D. Call IsSuccessStatusCode on the response before you read the content.
B and D are correct.
Explanation: First test that the HTTP call itself succeeds, because the connection can fail before any response exists. Then call IsSuccessStatusCode on the response, because only a successful status confirms that the content is safe to process.
A is incorrect: Reading and parsing the body first means you process content from a failed or rejected call, which is why the status check must come before ReadAs.
C is incorrect: Importing a response into a table field is a way to store media streams, not a way to confirm that the call and the status succeeded.
Q141 - Question
Your extension includes a finished wizard page, but the wizard does not appear in the Assisted Setup list. What must you implement so that users can start the wizard from Assisted Setup?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Subscribe to the OnRegisterAssistedSetup event of the Guided Experience codeunit 1990 and call InsertAssistedSetup.
- B. Add a page extension to the Assisted Setup page that adds an action for the wizard page.
- C. Set the wizard page as the startup object for the extension in the app.json file.
- D. Create a table extension on the setup table that stores the wizard name and completion state.
A is correct.
Explanation: You register a custom guide by subscribing to Guided Experience codeunit 1990's OnRegisterAssistedSetup event and calling InsertAssistedSetup.
B is incorrect: Adding an action through a page extension does not register the guide with Guided Experience.
C is incorrect: A startup object setting does not register a guide with Guided Experience.
D is incorrect: Storing the name and status in a table extension does not register the wizard; registration happens in the OnRegisterAssistedSetup subscriber.
Q142 - Question
A profile is delivered by another extension. You must apply your own page customizations to that role and change some of its profile properties, without editing the original object. What should you do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a new profile object that repeats all settings of the original profile and lists your customizations.
- B. Add the page customizations to a page extension so that they apply to the existing profile.
- C. Edit the original profile object to add your customizations to its Customizations property.
- D. Create a profile extension that overrides the profile properties and lists your page customizations.
D is correct.
Explanation: A profile extension overrides properties of an existing profile and applies page customizations to it. The customizations apply to the role center specified by that profile, and users pick the role in My Settings.
A is incorrect: A duplicate profile creates a second role instead of changing the existing one, so users of the original profile see no change.
B is incorrect: A page extension changes the page for all profiles and is not the object that links customizations to a specific profile.
C is incorrect: The profile is owned by another extension, so you cannot edit the original object; use a profile extension instead.
Q143 - 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.
Q144 - Question
During testing, several notifications are raised on the same page. A consultant asks how users will see them and how long they remain visible. What is the correct description of this behavior?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Only the most recent notification is shown, and it disappears after a fixed time.
- B. The messages appear in the notification bar in chronological order and stay for the page instance unless the user dismisses or acts on them.
- C. The messages are queued and shown one at a time, and each one blocks the page until it is closed.
- D. The messages are written to the notification bar and are removed each time the user changes a field on the page.
B is correct.
Explanation: Multiple notifications appear in the notification bar in chronological order, and each one persists for the page instance until the user dismisses it or selects an action on it.
A is incorrect: Notifications are not limited to the latest message, and they are not removed on a timer.
C is incorrect: Notifications are nonblocking, so they do not prevent the user from working with the page.
D is incorrect: Editing a field does not clear notifications; the user must dismiss or act on them.
Q145 - Question
A notification must let the user start a correction routine directly from the notification bar. Where must the method that runs from the notification action be placed, and which function connects it?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Place the method on the page object and connect it with SetData.
- B. Place the method in a codeunit and connect it with AddAction.
- C. Place the method on the table extension and connect it with Send.
- D. Place the method in a report and connect it with GetData.
B is correct.
Explanation: AddAction adds an action to the notification, and the action runs a method in a codeunit.
A is incorrect: SetData stores text data on the notification; it does not create an action, and the action method is not taken from the page object.
C is incorrect: Send displays the notification and does not attach the method that runs when the user selects an action.
D is incorrect: GetData reads the stored text values inside the handler; it does not define where the action runs.
Q146 - Question
You are building a home page for a warehouse role in Dynamics 365 Business Central. The page must host several parts and must be assignable as the starting page for the role. Which page definition do you use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. A page with PageType RoleCenter that contains one RoleCenter layout area hosting the parts.
- B. A page with PageType CardPart that contains a cuegroup control for each part.
- C. A page with PageType ListPart that repeats the parts in a repeater control.
- D. A page with PageType Card that groups the parts in a FastTab.
A is correct.
Explanation: A Role Center page is defined with PageType RoleCenter and uses a single RoleCenter layout area that hosts the parts shown to the user.
B is incorrect: CardPart is the page type used for an activity part that holds cuegroup controls, and it is placed inside a Role Center rather than acting as one.
C is incorrect: ListPart is used for Role Center lists that show a user's records, so it cannot serve as the page that hosts other parts.
D is incorrect: A Card page presents a single record on FastTabs and cannot be assigned as a Role Center layout.
Q147 - Question
A customer asks what business benefit they gain by implementing the banner, checklist, teaching tips, and tours together in their Business Central solution. Which statement is the correct response?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. The components migrate legacy data into the new company during first sign-in
- B. The components deliver consistent contextual onboarding that helps users reach productive usage more quickly
- C. The components remove the need to assign permission sets to new users
- D. The components replace the need to publish and install extensions in the tenant
B is correct.
Explanation: Banners, checklists, teaching tips, and tours work together to create consistent contextual onboarding, which helps users become productive sooner.
A is incorrect: These components guide users through setup and functionality; they do not perform data migration.
C is incorrect: Onboarding guidance does not change user access, so permission set assignment is still required.
D is incorrect: Onboarding components are delivered as part of a solution and do not remove the need to publish and install extensions.
Q148 - Question
A customer asks you to move a control, add an action, and show an extra table field on an existing page for one role only, without adding code logic. You decide to use a page customization object. Which statement correctly describes the result?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The added table field is read-only unless you make it editable, and the changes apply only through a linked profile.
- B. You can add a global variable and an OnAfterValidate trigger to control the added field.
- C. The changes apply to every user of the page as soon as the extension is installed.
- D. Page customization objects can only move existing controls, so the action must be added in a page extension.
A is correct.
Explanation: A page customization can move controls and add actions, groups, and table fields. Fields that you add are read-only unless you make them editable, and the customization takes effect only for users who work with a profile that links to it.
B is incorrect: Page customization objects do not support variables, procedures, or triggers, so logic must live in another object type.
C is incorrect: The customization applies only through the profiles that reference it, not to all users of the page.
D is incorrect: A page customization can add actions and groups in addition to moving controls, so a page extension is not required for the action.
Q149 - Question
Users report that the color indicators on your activity part cues do not match how their team works, and they want to change the thresholds themselves. What do you implement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Publish a new version of the extension with revised threshold values in the cue table.
- B. Add a Set Up Cues action to the activity page that calls CuesAndKpis.OpenCustomizePageForCurrentUser with a RecordRef.
- C. Add a CueGroupLayout wide layout to the cuegroup so the indicators resize.
- D. Add an OnDrillDown trigger to each cue field so users can edit the values.
B is correct.
Explanation: A Set Up Cues action on the activity page that calls CuesAndKpis.OpenCustomizePageForCurrentUser with a RecordRef lets each user customize the cue indicators and display preferences.
A is incorrect: Hard-coded thresholds in a new extension version still apply to everyone and do not give users per-user control.
C is incorrect: The wide CueGroupLayout changes how larger financial values are displayed and has no effect on indicator thresholds.
D is incorrect: OnDrillDown opens related data from a cue or headline value and does not expose the cue customization settings.
Q150 - Question
You finish coding a to-do wizard page, a codeunit that subscribes to Guided Experience registration, and an enum extension that adds a new Assisted Setup category. What should you do next to verify that the wizard works for users?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Export the objects to a configuration package and import them into the target company.
- B. Delete the temporary source table property so that the wizard can be tested with real data.
- C. Run the enum extension separately before publishing the codeunit that registers the guide.
- D. Publish the extension, then search for Assisted Setup and start the wizard from the list.
D is correct.
Explanation: You test the extension by publishing it and searching for Assisted Setup to start the wizard from the list.
A is incorrect: A configuration package does not deploy AL objects; the extension must be published to make the registered wizard available.
B is incorrect: The temporary source table is required so that entered values stay in memory until Finish.
C is incorrect: The enum extension is part of the same extension and is deployed when you publish it; it is not run on its own before the registration codeunit.
Q151 - Question
A partner plans an onboarding experience for customers who are new to Business Central. The goal is to reduce setup effort and help users learn product functionality. Which set of components makes up the Business Central onboarding framework?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Report layouts, dimensions, job queues, and number series
- B. Profiles, permission sets, user groups, and Role Centers
- C. Banner, checklist, teaching tips, and tours
- D. Environments, sandboxes, data migration, and extension publishing
C is correct.
Explanation: The onboarding framework in Business Central consists of the banner, the checklist, teaching tips, and tours. Together these components reduce setup effort and guide users through product functionality.
A is incorrect: Report layouts, dimensions, job queues, and number series are application setup and reporting features, not components of the onboarding framework.
B is incorrect: Profiles, permission sets, user groups, and Role Centers control access and user interface personalization rather than delivering onboarding guidance.
D is incorrect: Environments, sandboxes, data migration, and extension publishing are lifecycle and deployment activities, not onboarding components.
Q152 - 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.
Q153 - Question
Warehouse users need a predefined variant of a standard list page. The variant must filter on a table field, sort the records, and display a different set of columns than the standard list. How should you implement it?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Define a view in a table extension and set SharedLayout to false.
- B. Define a view in a page extension, filter on table fields, sort in one direction, and set SharedLayout to false.
- C. Define a view in a page extension and keep SharedLayout as true so the columns can differ.
- D. Define the filters and columns in a profile object, because views cannot be declared in page extensions.
B is correct.
Explanation: Views give an alternate presentation of list-page data and can be declared in pages, page extensions, and page customizations. They filter on table fields, sort in a single direction, and allow a custom layout when SharedLayout is false.
A is incorrect: Views belong to page objects, page extensions, or page customizations, not to table extensions.
C is incorrect: With SharedLayout set to true, the view keeps the layout of the list page, so the column set cannot differ.
D is incorrect: A profile object specifies a role center and customizations; views are declared in page objects, page extensions, or page customizations.
Q154 - Question
A functional consultant is onboarding a new company in Business Central. The consultant must review which guided configuration tasks, such as email setup and data migration, are still incomplete. Which approach meets this requirement?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. Open each setup card individually and check whether required fields contain values.
- B. Search for Assisted Setup and review the list of configuration wizards and their completion state.
- C. Run the data migration wizard again so that Business Central recalculates the remaining tasks.
- D. Create a temporary table that records which setup pages a user has opened.
B is correct.
Explanation: Assisted Setup is searchable and displays available configuration wizards with completion state. It supports common setup tasks such as email configuration and data migration.
A is incorrect: Reviewing individual setup cards does not show the consolidated completion state that Assisted Setup provides.
C is incorrect: Running a single wizard only affects that task and does not report the status of the other guided configuration tasks.
D is incorrect: Tracking page visits is not how completion state is surfaced; Assisted Setup already displays the status of each registered wizard.
Q155 - Question
You must add an activity part that shows the count of open sales invoices and the total outstanding amount. The counts must aggregate live data from the source tables. How do you design the supporting table?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a Cue table that follows the singleton pattern and define the aggregate values as FlowFields.
- B. Create a normal table with one record per user and store the aggregate values in normal fields updated by a codeunit.
- C. Create a My table keyed on User ID and store the aggregate values as FlowFilters.
- D. Create a query object and bind the query directly to the cuegroup control.
A is correct.
Explanation: An activity part is based on a Cue table that uses the singleton pattern, and the aggregate values are defined as FlowFields so the cues calculate totals and counts from the source data.
B is incorrect: Storing precalculated values in normal fields does not provide the FlowField aggregation that cues rely on, and it adds a separate update process.
C is incorrect: My tables combine a User ID with a record reference to store a user's favorite records for Role Center lists, not cue aggregates.
D is incorrect: A query does not replace the Cue table and its FlowFields that the CardPart page and its cuegroup controls require.
Q156 - Question
Users are confused by one field on a custom card page. The developer must show a short explanation when the user selects that field, without changing the rest of the page guidance. What should the developer do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Configure the AboutTitle and AboutText properties on the field control
- B. Configure the AboutTitle and AboutText properties at the page level only
- C. Add a checklist task that opens the page and explains the field
- D. Add a welcome banner call to action that describes the field
A is correct.
Explanation: Teaching tips use the AboutTitle and AboutText properties, and you can set them at the control level to explain a single field.
B is incorrect: Page-level AboutTitle and AboutText describe the page as a whole and do not target one field.
C is incorrect: A checklist task links the user to a page or an external URL; it does not display in-context help on a specific control.
D is incorrect: The welcome banner greets users who sign in to a new company and provides calls to action, so it is not the place for field-level guidance.
Q157 - Question
You build a three-step wizard page in AL. Only one step must be visible at a time, and the collected values must be written to the permanent setup record when the user selects Finish. Which two implementation techniques meet these requirements? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Create one page object for each step and open them in sequence from the Next action.
- B. Control the visibility of each step group with a Boolean variable that the Back and Next actions update.
- C. Commit the temporary record at the end of each step so that later steps can read the values.
- D. Use TransferFields in the Finish action to persist temporary data to the permanent record.
B and D are correct.
Explanation: Boolean-controlled groups manage step visibility, while Back, Next, and Finish actions manage navigation and TransferFields can persist temporary data.
A is incorrect: Wizard steps are shown as groups on one NavigatePage, so separate page objects per step are not needed and would break the single navigation flow.
C is incorrect: Committing after each step defeats the purpose of a temporary source table, which is to keep the data in memory until the user completes the wizard.
Q158 - Question
You are adding a My Customers list to a Role Center so that each user sees only the customers they marked as favorites. Which two design decisions support this requirement? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Create a My table with a key that combines the User ID and the reference to the customer record.
- B. Create a ListPart page that filters the records by UserId so each user sees only their own entries.
- C. Create a singleton Cue table and expose the customer names as FlowFields.
- D. Create a HeadlinePart page that rotates through the customer names as insight fields.
A and B are correct.
Explanation: A My table stores favorites by combining the User ID with a reference to the source record, and the ListPart page that shows the list filters on UserId so each user sees only their own records. The list part can also synchronize metadata from the source records when those values change.
C is incorrect: A singleton Cue table with FlowFields supports activity parts that show aggregate counts and amounts, not per-user lists of records.
D is incorrect: A HeadlinePart page rotates insight text and is not used to store or filter a user's favorite records.
Q159 - Question
A developer must warn users about a missing setup value when a page opens. The warning must not stop the user from continuing to work on the page. Which interaction meets this requirement?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Call the Error function so the user must correct the setup first.
- B. Call the Message function to display the warning in a dialog.
- C. Send a notification so the warning appears without blocking the user.
- D. Call the Confirm function and continue based on the user response.
C is correct.
Explanation: Notifications are small, non-modal alternatives to blocking interactions, so the user sees the warning and can keep working on the page.
A is incorrect: Error stops execution and forces the user to resolve the condition before continuing, which blocks the work you want to allow.
B is incorrect: Message shows a modal dialog that the user must close before continuing.
D is incorrect: Confirm is a blocking interaction that waits for a user response before code continues.
Q160 - Question
Users sign in to a new company from different signup sources. The welcome banner must show different labels and calls to action depending on the signup source. Which approach should the developer use?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Add a checklist item that rewrites the banner text when the user opens the Role Center
- B. Create a tour that runs before the banner is shown and replaces its text
- C. Change the banner captions directly in the base application page object
- D. Subscribe to the OnBeforeUpdateBannerLabels event and set the labels based on the SignupContext
D is correct.
Explanation: The welcome banner greets users who sign in to a new company, and you customize its labels dynamically by subscribing to the OnBeforeUpdateBannerLabels event and reading the SignupContext.
A is incorrect: Checklist items link users to pages or external URLs and start tasks; they are not the mechanism for setting banner labels.
B is incorrect: A tour sequences teaching tips through a page and does not set banner labels or calls to action.
C is incorrect: Base application page objects are not modified directly for this customization; use the event and SignupContext instead.
Q161 - Question
You design an extension that stores rental equipment as a primary business entity. The data changes rarely, users must open each record in a dedicated card, and users must be able to stop an individual equipment record from being used in transactions. Which table design follows the master table pattern?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Use a blank Primary Key field with a single record, and expose a Card page that disallows insert and delete.
- B. Use a Code[20] No. field as the primary key, expose Card, List, and Statistics pages, and add a Blocked field.
- C. Use an auto-incremented Entry No. field as the primary key, keep records immutable, and expose a List page only.
- D. Use a Code[10] Code field with a Description field as the primary key structure, and expose one editable plural-named List page.
B is correct.
Explanation: Master tables hold relatively static data about a primary entity, use a Code[20] No. field as the primary key, and commonly expose Card, List, and Statistics pages. A Blocked field lets you prevent a specific record from being used in transactions.
A is incorrect: A single record with a blank Primary Key and a Card page that disallows insert and delete is the setup table pattern, which stores company-wide configuration rather than many entity records.
C is incorrect: An auto-incremented Entry No. primary key with immutable records is the ledger table pattern for transactional data, so users could not maintain equipment details on a card.
D is incorrect: A Code[10] Code field with a Description and a single editable list is the supplemental table pattern for supporting subject data, not for a primary entity that needs card and statistics pages.
Q162 - Question
A customer asks you to prevent removal of a master record when related transactions exist, and to remove the subsidiary records that belong to the master record when removal is allowed. Which table trigger should contain this logic?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. OnInsert
- B. OnValidate
- C. OnModify
- D. OnDelete
D is correct.
Explanation: OnDelete is the trigger that checks for related transactions and removes subsidiary data, so both parts of the requirement belong there.
A is incorrect: OnInsert runs when a record is created and is used to assign numbers and defaults and to validate rules for the new record.
B is incorrect: OnValidate runs at field level to assign defaults and validate complex field rules, so it does not control record removal.
C is incorrect: OnModify runs when an existing record changes and is used to update metadata and validate the change, not to handle removal.
Q163 - Question
You are designing tables for a new application area in Business Central. One group of records must be created by the application when a transaction is completed, and users must not be able to change those records manually afterward. Which table category fits this requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Configuration tables
- B. Operational transaction tables
- C. Posted transaction tables
- D. Supplemental tables
C is correct.
Explanation: Posted transaction tables hold records that the application generates during posting, and those records usually cannot be changed manually, which matches the requirement.
A is incorrect: Configuration tables store setup values that change slowly and are maintained by users, so they do not represent completed transactions.
B is incorrect: Operational transaction tables hold data that users enter and edit before posting, so their records remain changeable.
D is incorrect: Supplemental tables provide additional values that feed defaults into other records rather than storing application-generated posted results.
Q164 - Question
You implement a rental order as a document in Business Central, with a header table, a line table, and posted history tables. Which two design characteristics match the document table pattern? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. The line table uses only an auto-incremented Entry No. as its primary key.
- B. The line table primary key repeats the document identifier from the header and adds a Line No. field.
- C. The header is edited on a Worksheet page that filters a template and a batch.
- D. The document page shows header fields and includes a ListPart subpage that lists the related lines.
B and D are correct.
Explanation: Document tables are implemented as header and line pairs. The header is keyed by the document identifier, the line table repeats that identifier and adds Line No., and the document page presents the header fields together with a ListPart subpage for the lines. Posted document history tables mirror the same structure.
A is incorrect: An auto-incremented Entry No. as the sole primary key belongs to ledger tables that store posted transactional entries, so document lines could not be tied to their header.
C is incorrect: A Worksheet page filtered by template and batch belongs to journal tables that support primary transaction entry, not to document headers.
Q165 - Question
Your extension must store posted service transactions for a new application area. Each posted transaction must not be changed afterward, and pages must display calculated totals for a related master record. Which table design matches the ledger table pattern?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Define a primary key of journal template name, journal batch name, and Line No., and edit lines on a Worksheet page.
- B. Define a primary key that includes the parent master record fields and an optional Line No.
- C. Define an auto-incremented Entry No. primary key, keep records unmodifiable after posting, and add secondary keys that support FlowField calculations.
- D. Define a Code[20] No. primary key and let users correct posted values on a Card page.
C is correct.
Explanation: Ledger tables store transactional data for an application area. They use an auto-incremented Entry No. as the primary key, records are normally not modified after posting, and secondary keys are added so FlowField calculations can total related amounts.
A is incorrect: A key of journal template name, journal batch name, and Line No. with a Worksheet page is the journal table pattern used for entering transactions before posting, not for storing posted entries.
B is incorrect: A key built from parent record fields and an optional Line No. is the subsidiary table pattern that holds additional master or supplemental information.
D is incorrect: A Code[20] No. primary key with editable card values is the master table pattern, and posted ledger records are normally immutable.
Q166 - Question
Users report that new journal lines in your extension open with empty fields that they must fill in manually every time. You must follow the standard data flow for journals in Business Central. Where should the default values for a journal line come from?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. The journal batch together with related master, supplemental, and subsidiary tables
- B. Posted transaction tables for the same application area
- C. The header of the most recently posted document
- D. Configuration tables, applied only after the line is posted
A is correct.
Explanation: Journal lines receive their defaults from the journal batch and from related master, supplemental, and subsidiary tables, so configure those sources instead of asking users to retype values.
B is incorrect: Posted transaction tables hold application-generated results of completed transactions and are not the source of defaults for new journal lines.
C is incorrect: Document headers belong to the document flow, where a document combines several table types and configuration checks, not to journal line defaulting.
D is incorrect: Defaults must be present while the user works on the line, so applying values only after posting does not meet the requirement.
Q167 - Question
You build a document page that has header FastTabs and a ListPart subpage for the document lines. The business wants a FactBox that shows details for the line that the user currently selects in the subpage, not details for the document header. What should you configure on the FactBox part?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Set SubPageLink on the FactBox part to the header table primary key fields.
- B. Move the FactBox into the ListPart page and remove it from the document page.
- C. Set the Provider property of the FactBox part to the line subpage part.
- D. Set the PageType of the document page to ListPlus so the FactBox follows the selection.
C is correct.
Explanation: The Provider property connects a FactBox part to another part on the page, so the FactBox displays data for the record that is selected in the line subpage instead of the document header record.
A is incorrect: SubPageLink filters a part against field values, and linking to the header key keeps the FactBox tied to the header record rather than the selected line.
B is incorrect: The ListPart page renders the lines grid, and relocating the FactBox does not create the link between the selected line and the FactBox content.
D is incorrect: PageType controls the layout of the page, not which part supplies the record to a FactBox.
Q168 - Question
A functional consultant asks you to summarize how data moves through an application area in Business Central so the team can plan a new customization. Which statement correctly describes the standard data process model?
Domain: Describe Business Central (10-15%) Type: Single choice
- A. All records in an application area are stored in a single table, and triggers decide which fields users can edit.
- B. Configuration tables supply setup values, users enter operational transaction data, and the application generates posted records that usually cannot be changed manually.
- C. Posted records are entered directly by users, and configuration tables are generated automatically from those entries.
- D. Master, document, and journal flows each use unrelated table structures and unrelated trigger patterns.
B is correct.
Explanation: The standard model links configuration tables, operational transaction tables, and posted transaction tables, where configuration changes slowly, users enter operational data, and posting produces records that usually cannot be changed manually.
A is incorrect: An application area uses separate table categories for configuration, operational, and posted data rather than one combined table.
C is incorrect: Users enter operational transaction data, and the application generates posted records, so the direction described here is reversed.
D is incorrect: Master, document, and journal flows use consistent table relationships and trigger patterns, which is what makes the model predictable for customization.
Q169 - Question
You create a header table, a line table, a Document page, a Document List page, and a ListPart page for the lines. When you open a document, the subpage shows lines from every document instead of only the current one. What should you correct first?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Change the Document List page to a Worksheet page.
- B. Add an AssistEdit trigger to the No. field on the header page.
- C. Move the Line No. field out of the line table primary key.
- D. Set SubPageLink on the lines part so the line table document number field matches the header number.
D is correct.
Explanation: A document page shows its lines by linking the ListPart to the header through SubPageLink, so the line table document number field must be filtered to the header number field.
A is incorrect: The Document List page lists existing documents and does not control how lines are filtered inside an open document.
B is incorrect: AssistEdit lets the user select a number series entry for the document number and has no effect on the filter applied to the lines part.
C is incorrect: Line No. is part of the line table key and supports line ordering with AutoSplitKey, so removing it does not filter lines to one document.
Q170 - Question
Your extension needs one set of company-wide configuration values for a new application area. Users must open a page to change the values, but they must not be able to create a second configuration record or delete the existing one. The record might not exist in a company yet. Which implementation meets the requirement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a supplemental table with a Code[10] Code primary key and expose an editable List page.
- B. Create a master table with a Code[20] No. primary key and hide the New and Delete actions on the List page.
- C. Create a register table with one record per posting process and expose a List page that shows entry ranges.
- D. Create a setup table that holds a single record with a blank Primary Key, and expose a Card page that disallows insert and delete and creates the record when the page opens if it is missing.
D is correct.
Explanation: Setup tables store company-wide configuration in one record whose Primary Key field is blank. The related Card page disallows insert and delete and creates the record when the page opens if it does not exist yet.
A is incorrect: A supplemental table with a Code[10] Code key and an editable List page is designed to hold many supporting records, so it does not restrict the data to a single configuration record.
B is incorrect: A master table with a Code[20] No. key is intended for many primary entity records, and hiding actions does not implement the single blank-key setup record pattern.
C is incorrect: A register table stores one record per posting process as a table of contents for ledger entries, so it grows with each posting instead of holding one configuration record.
Q171 - Question
You build a journal table and its entry page for a new posting routine. Users select a journal template and a journal batch, then enter multiple lines. You must make sure that users see only the lines of the selected template and batch, and that each new line receives an incremented Line No. Which page design should you use?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create a Worksheet page that filters on journal template name and journal batch name, and set AutoSplitKey to increment Line No.
- B. Create a Card page that disallows insert and delete, and create the record when the page opens if it is missing.
- C. Create a List page with no Line No. field, and rely on the automatic filter of the parent key fields.
- D. Create a document page that combines header fields with a ListPart subpage for the lines.
A is correct.
Explanation: Journal tables are keyed by journal template name, journal batch name, and Line No. The matching Worksheet page filters the selected template and batch and uses AutoSplitKey so that Line No. is incremented for each new line.
B is incorrect: A Card page that disallows insert and delete and creates the record on open is the setup table pattern for a single company-wide record, which cannot hold multiple journal lines.
C is incorrect: A List page without Line No. is used for subsidiary tables whose key has no line number, so it cannot support multiple lines per batch.
D is incorrect: A header page with a ListPart subpage is the document table pattern, which is based on separate header and line tables rather than a journal template and batch structure.
Q172 - 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.
Q173 - Question
You use the Round function to control decimal precision on document line amounts. Which two statements about the Round function are correct?
Domain: Develop by using AL (15-20%) Type: Multiple choice
- A. The direction parameter is required whenever you call Round.
- B. If you omit the precision parameter, the amount rounding precision from General Ledger Setup is used.
- C. Passing > as the direction parameter rounds the value down.
- D. Passing < as the direction parameter rounds the value down.
B and D are correct.
Explanation: Round takes a number plus optional precision and direction parameters. When precision is not supplied, the amount rounding precision defined in General Ledger Setup applies, and the < direction rounds the value down.
A is incorrect: The direction parameter is optional, and = rounds to the nearest value when no direction is supplied.
C is incorrect: The > direction rounds the value up, not down.
Q174 - Question
A developer adds an InitRecord function to a new document header table. Which statement correctly describes when InitRecord runs and what it should do?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. It runs after the number series initialization and assigns default field values such as posting date, order date, and document date from setup information.
- B. It runs before any number series logic and generates the document number itself.
- C. It runs only when the user posts the document and recalculates the posting date.
- D. It runs on every field modification and reapplies setup defaults to all fields.
A is correct.
Explanation: InitRecord runs after the number series is initialized, and it configures the remaining document fields, including defaults such as posting date, order date, and document date that are read from setup information.
B is incorrect: Number series initialization happens first, so the document number is already handled before InitRecord runs.
C is incorrect: InitRecord prepares a new document record rather than running as part of posting.
D is incorrect: InitRecord initializes a new record and is not a per-field validation routine that reruns on each modification.
Q175 - Question
You are reviewing the trigger design of a custom table. Which two tasks belong in the OnInsert trigger? Each correct answer presents part of the solution.
Domain: Develop by using AL objects (35-40%) Type: Multiple choice
- A. Update metadata when an existing record changes
- B. Assign the record number from a number series
- C. Check for related transactions before a record is removed
- D. Apply default values to fields on the new record
B and D are correct.
Explanation: OnInsert runs when a record is created, so use it to assign numbers, set defaults, and validate rules for that new record.
A is incorrect: Updating metadata for a changed record belongs in OnModify, which runs when an existing record is changed.
C is incorrect: Checking related transactions before removal belongs in OnDelete, which also removes subsidiary data.
Q176 - Question
You develop a new table that represents a key business subject, such as an entity that users maintain and reference from documents. Which page design follows master table and page standards in Business Central?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. Create both a Card page for maintaining one record and a List page for browsing the records.
- B. Create only a List page, because master records are always edited inline.
- C. Create only a Card page, because master records are opened one at a time.
- D. Create a Card page with insert and delete disabled, the same as a setup table.
A is correct.
Explanation: Master tables represent key business subjects and normally require both a Card page for maintaining a single record and a List page for viewing and selecting records.
B is incorrect: A List page alone omits the Card page that master data standards expect for maintaining one record.
C is incorrect: A Card page alone gives users no standard list to browse or select existing master records.
D is incorrect: Disabling insert and delete belongs to the single-record setup table pattern, not to a master table where users create and remove records.
Q177 - Question
Users report that new documents are created with a blank document number because the number series was never configured in the setup table. You must stop the record from being inserted and show a runtime error in that situation. What is the most appropriate approach?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. Add a Round call in OnInsert to normalize the number series value.
- B. Call TestField on the number series field of the setup record in the OnInsert trigger.
- C. Add a message in InitRecord that tells the user to open the setup page.
- D. Set the number series field as the primary key of the setup table.
B is correct.
Explanation: TestField verifies that a field is not blank or holds an expected value, and it raises a runtime error when the check fails. Calling it in OnInsert against the setup record stops document creation until the number series is configured.
A is incorrect: Round works on decimal values and precision, so it cannot validate that a setup field is filled in.
C is incorrect: A message is informational only and does not stop the insert from completing.
D is incorrect: Changing the primary key of the setup table does not validate the field value when a document is inserted.
Q178 - Question
You are developing an extension that stores configuration values for feature behavior and default number series. Each company must hold exactly one configuration record, and users must not add or remove records. Which design should you implement?
Domain: Develop by using AL objects (35-40%) Type: Single choice
- A. A master table with a No. Series field, a List page, and a Card page that users open to create additional configuration records.
- B. A table whose primary key accepts a unique code for each record, shown on a List page so users can pick the active configuration.
- C. A setup table with a blank, noneditable Code[10] primary key, shown on a Card page with insert and delete disabled that creates the record if it is missing, and initialized through OnCompanyInitialize.
- D. A table with a Blocked field that users set to true on every record except the one that should be active.
C is correct.
Explanation: A setup table follows the Singleton design pattern. The primary key is a noneditable Code[10] field that stays blank, the Card page disables insert and delete, and the page creates the record when it does not exist. Use OnCompanyInitialize to create and initialize the setup record for the company.
A is incorrect: A master table with a List page lets users create many records, so it cannot guarantee a single configuration record per company.
B is incorrect: A unique code per record produces multiple rows, which conflicts with the single-record requirement of a setup table.
D is incorrect: The Blocked field controls whether an entity can be used in transactions. It does not restrict a table to one record.
Q179 - Question
A customer wants to stop users from posting new transactions for selected master records, while the existing records and their history remain available. You add a Blocked field to the master table. Where should you validate the blocked status?
Domain: Develop by using AL (15-20%) Type: Single choice
- A. In the master table only, by preventing modification of any record where Blocked is set.
- B. In the transaction tables that reference the master record, so the blocked status is checked when the record is used.
- C. In the setup table, by storing a list of blocked records that the Card page reads.
- D. In the master table Card page, by hiding blocked records from the List page.
B is correct.
Explanation: The Blocked Entity design pattern keeps the blocking decision on the master record, but the validation belongs in the transaction tables that reference the entity. Those tables check the blocked status when the entity is used, so historical data stays intact.
A is incorrect: Blocking modification of the master record does not stop users from selecting that record in new transactions.
C is incorrect: A setup table holds one configuration record for the company and is not a store for per-entity blocked status.
D is incorrect: Hiding records on a page changes presentation only and does not prevent the entity from being used in transactions.
Q180 - Question
You implement the No. Series pattern on a new master table that contains No. and No. Series fields. Which two implementation steps support automatic numbering and manual series selection? Each correct answer presents part of the solution.
Domain: Develop by using AL (15-20%) Type: Multiple choice
- A. Use the OnCompanyInitialize trigger of the master table to assign the next number while a record is inserted.
- B. Use the OnInsert trigger to assign a number from the number series when the No. field is blank.
- C. Add a Blocked field to the master table so that the number series is skipped for blocked records.
- D. Implement AssistEdit on the table and on the page so that users can select a number series.
B and D are correct.
Explanation: The No. Series pattern assigns a number in the OnInsert trigger when the No. field is still blank, and it exposes AssistEdit on the table and the page so users can select a series. Use the supported number-series codeunits for the Business Central version you target.
A is incorrect: OnCompanyInitialize creates and initializes setup data for a company. It does not run for each record insert, so it cannot assign record numbers.
C is incorrect: The Blocked field prevents temporary or permanent use of an entity in transactions and has no role in number assignment.
Q181 - 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.
Q182 - Question
You need to set up a repeatable local environment to install the Test Toolkit and run automated tests for a Business Central extension. The environment must be separate from the environment used for functional demonstrations. Which approach should you use?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Run the automated tests directly from the AL Language extension in Visual Studio Code without a Business Central environment.
- B. Store the test codeunits in the same extension as the production code so that no separate environment is required.
- C. Provision a Docker container for Business Central and use BcContainerHelper to provide the testing infrastructure.
- D. Export the production database and restore it on each developer workstation before every test run.
C is correct.
Explanation: Docker containers and BcContainerHelper can provide the testing infrastructure for Business Central test automation, delivering a repeatable environment that is separate from demonstrations.
A is incorrect: Automated tests require a Business Central environment that has the Test Toolkit installed, making a tool-only setup insufficient.
B is incorrect: Storing test code in the production extension does not provide the separate testing infrastructure that the team requires.
D is incorrect: Restoring a production database on workstations is not the documented method for setting up Business Central test automation infrastructure.
Q183 - Question
During a planning meeting, a project manager states that choosing Git as the version control system means the team is using GitHub. How should you correct this statement?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Git and GitHub are the same product, making the statement accurate.
- B. Git is a commercial platform, and GitHub is the underlying version control technology.
- C. GitHub provides repository hosting but offers no continuous integration or project management features.
- D. Git is the version control technology, and GitHub is a distinct commercial platform built on it.
D is correct.
Explanation: GitHub is a commercial platform that is distinct from the underlying Git technology itself. Its capabilities overlap Azure DevOps in source control, continuous integration, project management, and package support.
A is incorrect: Git and GitHub are not the same; Git is the version control technology and GitHub is a commercial platform built around it.
B is incorrect: The roles are reversed; Git is the version control technology and GitHub is the commercial platform.
C is incorrect: GitHub features overlap Azure DevOps and include continuous integration (CI/CD) and project management, not only repository hosting.
Q184 - Question
Three developers work on the same remote branch that holds shared AL objects. One developer wants a linear history and proposes rebasing that shared remote branch onto main before the next release. What should you advise?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Rebase the shared remote branch, because rebase never creates conflicts that require resolution.
- B. Do not rebase the shared remote branch, because rebase rewrites history that the other developers depend on.
- C. Rebase the shared remote branch, because only the newest commit is replayed onto the new parent.
- D. Do not rebase any branch in the repository, because Git does not support rebase when more than one branch exists.
B is correct.
Explanation: Rebase replays commits onto a new parent and rewrites history, so it should be avoided on branches that are shared on the remote and that other users already based their work on.
A is incorrect: Replaying commits onto a new parent can produce conflicts that you must resolve during the rebase.
C is incorrect: Rebase replays all the commits of the branch onto the new parent, not only the latest commit.
D is incorrect: Rebase is a valid option for your own local branch work when you want a linear history; the restriction applies to shared branches.
Q185 - Question
You install a self-hosted build agent on a server so that Business Central builds can run on hardware that you control. During setup, the agent must connect to your Azure DevOps organization. What do you supply to authenticate the agent during configuration?
Domain: Work with development tools (10-15%) Type: Single choice
- A. A personal access token (PAT)
- B. The name of the build pipeline that will use the agent
- C. The work folder path used by the agent
- D. The Windows service account display name
A is correct.
Explanation: During agent configuration, you authenticate the agent to the Azure DevOps organization with a personal access token (PAT). You then continue with the agent name, work folder, and service option.
B is incorrect: You assign a pool to a pipeline later when you create the pipeline; the pipeline name is not part of agent authentication.
C is incorrect: The work folder is a configuration choice for where the agent stores build files, not an authentication credential.
D is incorrect: Choosing whether to run the agent as a service is a separate configuration step and does not authenticate the agent to the organization.
Q186 - Question
Your team is starting a new Azure Boards project to track Business Central extension development. During planning, the team asks which setting determines the work-item types, the states those items move through, and the planning terminology the team sees. What should you tell them?
Domain: Work with development tools (10-15%) Type: Single choice
- A. The process template selected for the project
- B. The iteration paths configured for the team
- C. The widgets added to the project dashboard
- D. The repository type used for the project wiki
A is correct.
Explanation: Each Azure Boards process template, such as Basic, Agile, Scrum, or CMMI, defines its own work-item types, states, and planning terminology. The process you select for the project controls what the team tracks and how the workflow states are named.
B is incorrect: Iteration paths organize work into time-boxed periods and do not define which work-item types or states exist.
C is incorrect: Dashboard widgets display information about the project, but they do not change the work-item types or states available.
D is incorrect: The wiki repository choice affects where documentation is stored, not the work tracking model.
Q187 - Question
A Business Central partner merges AL code changes to the main branch several times a day through pull requests. Each merge must automatically build the extension and produce an .app file, but the team wants a person to decide when a build goes to the production environment. Which combination describes this process?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Continuous Integration for the automated build, and Continuous Delivery for the manually started release
- B. Continuous Deployment for the automated build, and Continuous Integration for the manually started release
- C. Continuous Delivery for the automated build, and Continuous Deployment for the manually started release
- D. Continuous Integration for the automated build, and Continuous Deployment for the manually started release
A is correct.
Explanation: Continuous Integration merges changes frequently, often through pull requests, and automates the build that generates artifacts such as app files. Continuous Delivery makes the release available so that a person starts the deployment.
B is incorrect: Continuous Deployment releases automatically, so it does not describe the build stage, and Continuous Integration does not describe a manually started release.
C is incorrect: Continuous Delivery covers making releases available rather than the automated build on merge, and Continuous Deployment removes the manual release decision.
D is incorrect: Continuous Deployment releases automatically to the target environment, which conflicts with the requirement that a person approves the production release.
Q188 - Question
You are preparing a Business Central container for automated testing. You must install assertion helpers, a component that coordinates test runs, shared test libraries, and the standard tests. What should you install?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. The Test Toolkit, which includes modular apps for Library Assert, Test Runner, test libraries, and tests.
- B. A single Business Central application area that enables testing from the Assisted Setup page.
- C. The standard tests only, because Library Assert and Test Runner are part of the base application.
- D. The AL Language extension in Visual Studio Code, which contains the Test Runner and Library Assert components.
A is correct.
Explanation: The Test Toolkit is an AL extension that includes modular apps such as Library Assert, Test Runner, test libraries, and tests, which can be installed in a container.
B is incorrect: The Test Toolkit is installed as an AL extension with environment-specific installation options, not enabled as a single application area.
C is incorrect: Library Assert and Test Runner are distinct modular apps within the Test Toolkit, so installing tests alone does not provide them.
D is incorrect: The AL Language extension is a development tool and does not install the Test Toolkit apps into the Business Central environment.
Q189 - Question
A development team shares an AL extension project in Git. The team wants the repository to contain only the content that every developer needs, and to exclude generated or machine-specific content. Which two items should the team exclude by using patterns in the .gitignore file? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multiple choice
- A. Downloaded symbol files
- B. The app.json file of the extension
- C. The AL source files of the extension objects
- D. The launch configuration file
A and D are correct.
Explanation: Use .gitignore to keep generated or local files out of version control. Symbol files are downloaded for each workspace, and the launch configuration holds local connection settings, so both are typical exclusions along with RAD metadata and app packages.
B is incorrect: The app.json file defines the extension manifest that all developers need, so it belongs in the repository.
C is incorrect: AL source files are the tracked project content that source control is intended to version and share.
Q190 - Question
A Business Central developer works on an AL project in a local Git repository. The developer must know which part of the local repository stores the committed version history of the project, separate from the files currently open for editing.
Domain: Work with development tools (10-15%) Type: Single choice
- A. The working directory, because it holds every version of each AL file
- B. The staging area, because it keeps all previous commits until they are pushed
- C. The .git directory, because it stores the repository data for committed content
- D. The remote repository, because commit history exists only after a push
C is correct.
Explanation: A local repository consists of the working directory, the staging area, and the .git directory. The .git directory holds the repository data, so committed content remains available locally even before you connect to a remote.
A is incorrect: The working directory holds the current files you edit, and those files move through untracked, staged, unmodified, and modified states rather than storing history.
B is incorrect: The staging area only prepares selected changes for the next commit and is cleared as changes are committed.
D is incorrect: A remote repository is used to synchronize distributed work between developers, and local commits exist before any push.
Q191 - Question
A customer requires that the Business Central extension is installed in a QA environment first, and that a test manager signs off before the same build is installed in production. Which release pipeline configuration meets this requirement?
Domain: Install, develop, and deploy for Business Central (10-15%) Type: Single choice
- A. Create two build pipelines, one that publishes to QA and one that publishes to production
- B. Create one release pipeline with a QA stage and a production stage, and add an approval before the production stage
- C. Create one release pipeline with a single stage and run it twice with different variables
- D. Add a scheduled trigger to the build pipeline so the production install runs after the QA install
B is correct.
Explanation: A release pipeline selects the build artifact and defines deployment stages with triggers, conditions, and approvals, so one pipeline can deploy the same artifact to QA and then to production after the approval.
A is incorrect: Two build pipelines would produce separate builds, and the requirement is to deploy the same build artifact through both environments with a sign-off.
C is incorrect: A single stage run twice does not provide the stage-level approval and condition that gate the production deployment.
D is incorrect: A schedule only controls when a run starts; it does not record a test manager sign-off before the production deployment.
Q192 - Question
A partner company configures Azure DevOps for Business Central extension development. The IT team manages all employee accounts in Microsoft Entra ID and wants identity management for the new Azure DevOps organization to stay centralized. Which approach should you use when the organization is created?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Create the organization with a GitHub identity and invite employees as external users.
- B. Create the organization with a personal Microsoft account and add each developer manually.
- C. Create the organization with a Microsoft Entra ID identity so organization access uses the existing directory.
- D. Create the organization without an identity provider and rely only on agent pool permissions.
C is correct.
Explanation: An Azure DevOps organization can be created with a Microsoft, Microsoft Entra ID, or GitHub identity. Using Microsoft Entra ID centralizes identity management for the organization instead of maintaining separate account lists.
A is incorrect: A GitHub identity is a supported sign-in option, but it does not connect the organization to the company directory that already holds employee accounts.
B is incorrect: A personal Microsoft account works for sign-in, but adding developers individually keeps identity administration outside the centralized directory.
D is incorrect: An identity is required to create and own the organization. Agent pools configure build resources, not user identity.
Q193 - Question
A developer runs git add on a codeunit file that is not ready for the next commit. The developer must remove the file from the staging area but keep the current edits in the working directory. Which command should the developer use?
Domain: Work with development tools (10-15%) Type: Single choice
- A. git rm
- B. git reset HEAD
- C. git checkout
- D. git commit --amend
B is correct.
Explanation: git add stages a file, and git reset HEAD unstages it. The file returns to the modified state in the working directory, so your edits remain available.
A is incorrect: git rm deletes the file, and git rm --cached stops tracking it, which is more than unstaging a file you still want to edit.
C is incorrect: git checkout restores the committed version of a file, which discards the current edits.
D is incorrect: The amend option changes the most recent commit rather than removing a file from the staging area.
Q194 - 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.
Q195 - Question
A developer finished testing an extension in a Business Central container and wants to free the resources that the container uses on the workstation. The developer does not remember the container name. Which two commands should the developer use? Each correct answer presents part of the solution.
Domain: Work with development tools (10-15%) Type: Multiple choice
- A. docker ps to list containers and read the container ID or name
- B. docker pull to refresh the container definition before cleanup
- C. docker rm to delete the container that is identified by ID or name
- D. docker start to restart the container before cleanup
A and C are correct.
Explanation: Use docker ps to list containers and read the ID or name, then use docker rm with that ID or name to delete the container and release the resources it uses.
B is incorrect: docker pull downloads an image to the local system. It does not help you remove a container.
D is incorrect: docker start runs a stopped container, which keeps resources in use instead of releasing them.
Q196 - 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.
Q197 - Question
A developer already has a local Git repository with several commits for an AL project. The team creates an empty repository in Azure DevOps and wants the existing local commits published there. What should the developer do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Clone the empty Azure DevOps repository and copy the AL files into the clone
- B. Run git init again in the project folder to register the Azure DevOps repository
- C. Run git fetch --prune to connect the local branch to Azure DevOps
- D. Run git remote add to link the local repository to the Azure DevOps repository, then push the branch with an upstream origin
D is correct.
Explanation: Use git remote add to link an existing local repository to a remote, then push the existing branch with an upstream origin so later pushes target that remote. You can verify the link with git remote -v, and Visual Studio Code also provides an Add Remote command.
A is incorrect: Cloning creates a separate local copy and copying files into it loses the existing local commit history.
B is incorrect: git init initializes a repository in a folder and does not define a remote.
C is incorrect: git fetch --prune inspects the remote and removes references to deleted remote branches, so it cannot create the remote link.
Q198 - Question
A Business Central project team works daily in a Microsoft Teams channel. The team wants to create and view work items and receive notifications about work item changes in that channel instead of switching to the browser. What should you configure?
Domain: Work with development tools (10-15%) Type: Single choice
- A. A project wiki page that lists the current work items
- B. A burndown chart widget on the project dashboard
- C. Additional iteration paths for the team
- D. The Azure Boards app in the Teams channel, with notification subscriptions
D is correct.
Explanation: The Azure Boards app for Microsoft Teams supports linking work items to channels, viewing and creating work items, and configurable notifications, so the team can collaborate without leaving Teams.
A is incorrect: A wiki page stores documentation and does not create work items or send notifications to a channel.
B is incorrect: A dashboard widget reports progress in the Azure DevOps project rather than in the Teams channel.
C is incorrect: Iteration paths organize work into time-boxed periods and provide no Teams notifications or work item creation in the channel.
Q199 - Question
A developer opens a pull request from a feature branch to main. The team wants the pull request to complete as soon as the required reviewers approve and the policies pass, the linked work item to be set to completed, and the feature branch to be removed afterward. What should the developer do on the pull request?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Ask each reviewer to push the feature branch directly to main after approval.
- B. Set the review status to approved with suggestions so that the merge starts without further checks.
- C. Delete the feature branch before the pull request is completed.
- D. Set auto-complete and select the options to complete linked work items and delete the source branch after merging.
D is correct.
Explanation: A pull request supports auto-complete so that it completes when the policies are satisfied, and the completion options include completing linked work items and deleting the source branch after the merge.
A is incorrect: Pushing directly to main bypasses the pull request and the branch policies that require review before the change reaches main.
B is incorrect: Review statuses record reviewer feedback; they do not replace the remaining policy checks or trigger the merge on their own.
C is incorrect: The source branch still holds the commits that must be merged, so it can be deleted only after the pull request completes.
Q200 - Question
A developer configures a Personal Access Token so a build script can authenticate to Azure DevOps without user interaction. The developer closes the browser without saving the token value and cannot find it. What must the developer do?
Domain: Work with development tools (10-15%) Type: Single choice
- A. Regenerate the token, because the token value is shown only once and cannot be retrieved.
- B. Reopen the token details page in Azure DevOps to copy the existing value again.
- C. Change the token scope to make the existing value visible again.
- D. Sign in with a Microsoft Entra ID account to view all previously issued token values.
A is correct.
Explanation: A Personal Access Token provides noninteractive Azure DevOps authentication. The token value appears only once when it is created. If the value is lost, the token must be regenerated.
B is incorrect: The token details remain available for management, but the token value itself is not shown again after the initial creation screen.
C is incorrect: Scope controls what the token can access during creation and editing, but changing it does not reveal a lost value.
D is incorrect: The sign-in identity used for the organization does not expose previously issued token values.
Q201 - Question
A flow that creates Business Central records stopped working, and users report that no records are created. You must identify why the flow fails. What should you do first?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Rebuild the flow from a Business Central approval template
- B. Change the trigger from an automated trigger to a manual button
- C. Delete the flow run history and wait for the next run
- D. Open the flow run details and review the action inputs, outputs, status codes, and error details
D is correct.
Explanation: Run details show the inputs, outputs, status codes, and error details for each action, which identifies causes such as authentication problems, action configuration errors, transient service issues, or quota and licensing limits.
A is incorrect: Rebuilding the flow from a template discards the current configuration without showing which action failed, so the same error can return.
B is incorrect: Changing the trigger type alters how the flow starts and does not report the error that caused the failed runs.
C is incorrect: Run history is the monitoring source you need for diagnosis, so removing it and waiting delays the investigation.
Q202 - Question
You plan to create a Power Automate flow that reads customer records from Business Central by using the Business Central connector. During design, which configuration must you supply so that the connector reads the correct data?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. A Dataverse table mapping for each Business Central table.
- B. The Business Central environment and company.
- C. A desktop flow that opens the Business Central client.
- D. A canvas app that hosts the connection.
B is correct.
Explanation: The premium Business Central connector uses Business Central APIs through OData and requires environment and company selection before exposing tables and actions.
A is incorrect: The Business Central connector uses Business Central APIs through OData and does not require a Dataverse table mapping.
C is incorrect: Desktop flows support robotic process automation and are not required to configure the Business Central connector.
D is incorrect: The Business Central connector is available directly in Power Automate and does not require a canvas app to host it.
Q203 - Question
You plan to make Business Central customer data available in Microsoft Dataverse. The Business Central field names differ from the planned Dataverse column names. What should you do?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Create a Dataverse table, connect it to the Business Central source, and map the field data during integration setup.
- B. Rename every Business Central field to match the Dataverse column names before you create a connection.
- C. Export the Business Central data to a spreadsheet and keep the two data sets separate.
- D. Build the app directly on the Business Central tables without creating any Dataverse table.
A is correct.
Explanation: The evidence states that you create Dataverse tables and connect them to Business Central sources. The integration setup supports mapping and transformation of table and field data to handle differences.
B is incorrect: The integration setup supports mapping, so renaming source fields in Business Central is not required.
C is incorrect: Dataverse tables are required to connect to Business Central sources for data synchronization.
D is incorrect: You must create Dataverse tables to connect to Business Central sources for data synchronization.
Q204 - Question
You need to use a Business Central REST API in both a canvas app and an automated workflow. No built-in connector covers the required API operations. What should you do?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Build a separate integration for Power Apps and another one for Power Automate.
- B. Replace the REST API call with a direct database connection from Power Apps to the Business Central tables.
- C. Create a custom connector that wraps the REST API, and use the same connector in Power Apps and Power Automate.
- D. Wait for a built-in connector, because custom connectors can expose only operations that a built-in connector provides.
C is correct.
Explanation: A custom connector is a wrapper around a REST API, and you create one when no built-in connector provides the functionality you need. After you define it, the same connector can be used in Power Apps and in Power Automate.
A is incorrect: You do not need one integration per service, because a single custom connector definition is usable across Power Apps and Power Automate.
B is incorrect: The documented integration method is a REST API wrapper, not a direct connection to Business Central tables.
D is incorrect: Custom connectors exist specifically to extend Power Platform where no built-in connector is available, so waiting is not required.
Q205 - Question
You build an approval flow for general journal batches from a Power Automate template. Before you hand the flow to the accounting team, you must confirm that the flow targets the correct data and contains no configuration errors. Which two steps address these requirements? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Verify the connections and set the environment and company on the approval-request trigger
- B. Replace the approval action with a Create record action for the journal line
- C. Run Flow Checker to validate the flow configuration
- D. Change the trigger to Recurrence so the flow runs nightly
A and C are correct.
Explanation: A general journal approval flow validates connections and sets the environment and company on the approval-request trigger so the flow reads the correct data, and Flow Checker reports configuration problems before the flow is used.
B is incorrect: A Create record action inserts data instead of requesting and handling an approval response, so the approval requirement is lost.
D is incorrect: The Recurrence trigger runs work on a schedule and does not respond to an approval request raised in Business Central.
Q206 - Question
An organization requires every internal user to be able to use a Business Central custom connector without changing it, while a small development team must be able to modify the connector definition. Which two sharing configurations meet these requirements? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple choice
- A. Publish the connector for public external use so that all internal users can reach it.
- B. Share the connector with the whole organization by using the view-only permission level.
- C. Grant every internal user the view-and-share permission level.
- D. Grant the development team the edit permission level on the connector.
B and D are correct.
Explanation: You can share a custom connector with the entire organization at the view-only level so users can use it without changing it, and you can grant specific users or groups the edit permission level so the development team can modify the connector definition.
A is incorrect: Public external sharing requires Microsoft certification and review, and it is not the way to give internal users access.
C is incorrect: View-and-share lets users pass the connector to others, which exceeds the stated requirement that general users only use the connector.
Q207 - Question
A company wants a mobile app for warehouse workers with a tailored screen layout. The app must read and write Business Central data. Which Microsoft Power Platform app type fits this requirement?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. A model-driven app because it starts from the data model.
- B. A model-driven app because it stores data in Dataverse.
- C. A canvas app that connects to Business Central APIs.
- D. A desktop flow published as an app.
C is correct.
Explanation: Canvas apps prioritize the user experience and can use many data sources, including Business Central APIs.
A is incorrect: Model-driven apps are data-model-first apps with responsive no-code user interfaces, which do not prioritize a highly tailored custom user experience like canvas apps do.
B is incorrect: Model-driven apps are Dataverse-based apps with responsive no-code user interfaces, rather than custom user experiences that connect to Business Central APIs.
D is incorrect: Desktop flows are a Power Automate feature that supports robotic process automation, not an app type in Power Apps.
Q208 - Question
You plan to create a model-driven app that uses Business Central data. You need to understand how the user interface is generated. How is the user interface of a model-driven app generated?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. It runs without a data source and does not require Dataverse tables.
- B. It requires a developer to manually define each screen layout pixel by pixel.
- C. It connects exclusively to on-premises SQL Server databases.
- D. It uses Dataverse tables as a foundation and generates a responsive interface from the data model and configured components.
D is correct.
Explanation: The evidence states that model-driven apps require Dataverse data and use tables as their foundation. Their responsive user interface is generated from the data model and configured components.
A is incorrect: The evidence explicitly states that model-driven apps require Dataverse data and use tables as their foundation.
B is incorrect: The responsive user interface is generated from the data model and configured components, unlike canvas apps.
C is incorrect: The evidence states that Dataverse is a cloud-scale database for Power Apps, not an on-premises SQL Server database.
Q209 - Question
A customer wants a Business Central related task to run every Monday morning in the local time of the finance team. Which configuration meets the requirement?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use the Recurrence trigger and set the time zone, start time, frequency, and day settings
- B. Use a business event trigger and add a delay action for one week
- C. Use a selected-record trigger and instruct users to run it each Monday
- D. Use an approval trigger and set the approval due date to Monday
A is correct.
Explanation: Scheduled flows use the Recurrence trigger, where you configure the time zone, start time, frequency, and the day or time settings that the schedule requires.
B is incorrect: A business event trigger reacts to activity in Business Central, so the flow start time depends on user activity rather than a fixed weekly schedule.
C is incorrect: A selected-record trigger depends on a user selecting a record and starting the flow manually, which does not provide a scheduled run.
D is incorrect: An approval trigger responds to approval requests and does not control when a recurring task runs.
Q210 - Question
You need to load Business Central data into a new Microsoft Dataverse table and keep the data updated. Which sequence of tasks should you perform?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Create the Dataverse table, publish the model-driven app, and publish a Business Central web service.
- B. Publish a Business Central web service, create a Dataverse table and columns, define a key, connect through Power Query, schedule a refresh, and map source columns.
- C. Schedule a refresh in Power Query, and then create the Dataverse columns after the initial data load completes.
- D. Create a many-to-many relationship in Dataverse, and then import the Business Central data without defining a key.
B is correct.
Explanation: The evidence describes the required sequence: publish a Business Central web service, create a Dataverse table and columns, define its key, connect through Power Query, schedule a refresh, and map source columns into Dataverse.
A is incorrect: Publishing a model-driven app does not load Business Central data into a Dataverse table, and the sequence omits Power Query and mapping.
C is incorrect: The Dataverse table, columns, and key must be created before you connect through Power Query and map the source columns.
D is incorrect: The evidence specifies creating a Dataverse table and defining its key, not creating a many-to-many relationship without a key to load the data.
Q211 - Question
You are creating a custom connector from blank for a Business Central online environment. You collected the tenant, environment, and company information. Which authentication configuration should you use?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Configure OAuth 2.0 and reference a Microsoft Entra ID app registration.
- B. Configure basic authentication with the user name and password of a Business Central user.
- C. Configure no authentication and restrict access by sharing the connector only with selected users.
- D. Configure an API key that you generate inside the Power Apps maker portal.
A is correct.
Explanation: For Business Central online, the custom connector uses OAuth 2.0, and the connector references an app registration in Microsoft Entra ID. You need that app registration before the connector can authenticate.
B is incorrect: Basic authentication with a user name and password is not the documented authentication type for an online connector.
C is incorrect: Sharing permissions control who can use or edit the connector, but they do not replace the required authentication configuration.
D is incorrect: The connector authenticates through OAuth 2.0 and an Entra ID app registration, not through a key created in the maker portal.
Q212 - Question
In a canvas app connected to Business Central, a data card on an edit form uses the default control for a field. The developer must replace that default control with a different standard control that suits the field better. What must the developer do first?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Delete the edit form and rebuild it from the data source.
- B. Republish the app so the control list refreshes.
- C. Unlock the data card so the default control can be replaced.
- D. Remove the field from the Business Central table and add it again.
C is correct.
Explanation: Unlock the data card before you replace its default control with a different standard or advanced control, then arrange the fields in a logical layout.
A is incorrect: Rebuilding the form discards your other customizations, and the control change only requires unlocking the individual card.
B is incorrect: Publishing makes saved changes available to app users and does not change which controls a locked card allows.
D is incorrect: Changing the Business Central table is not required, because the control selection is an app design setting on the data card.
Q213 - Question
You add a Create action to a Business Central custom connector. You need to validate that the action works before makers use it in a canvas app. What should you do?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Publish the connector to the organization first, then ask users to report failures from the canvas app.
- B. Use the Test tab with sample data, verify that the response returns HTTP 201, then update the connector.
- C. Delete and recreate the connector from the API definition each time you change an action.
- D. Test the action only from a Power Automate cloud flow, because the Test tab validates request parameters but not responses.
B is correct.
Explanation: Use the Test tab of the custom connector, supply sample data for the Create action, and confirm the HTTP 201 response. After the test succeeds, update the connector so the validated definition is saved.
A is incorrect: Sharing the connector before testing moves error detection to users instead of validating the action directly.
C is incorrect: You can test and update an existing connector definition, so deleting and recreating it for each change is unnecessary.
D is incorrect: The Test tab returns the response, including the HTTP status code, so you can validate the action there.
Q214 - Question
Sales staff need to add a new customer record to Business Central from the Power Automate mobile app by filling in a few fields on demand. Which flow design meets this requirement?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. An automated flow that uses a record change trigger and an Update record action
- B. A scheduled flow that uses the Recurrence trigger and a Get record action
- C. An instant flow with a manually triggered button whose inputs map to a Create record action
- D. An approval flow started from an embedded Business Central document approval
C is correct.
Explanation: Instant flows use a manually triggered button in the browser or mobile app, and the button inputs can map to the Business Central Create record action, followed by a notification or another action.
A is incorrect: A record change trigger starts only after data already changes in Business Central, so staff cannot start it on demand to create a record.
B is incorrect: A scheduled flow runs at configured times rather than when a user selects a button, and Get record retrieves data instead of creating it.
D is incorrect: Embedded document approval flows handle approval of sales and purchase documents, not manual entry of a new customer.
Q215 - Question
A developer builds a blank canvas app that connects to a Business Central table. The first screen must show a scrollable list of all records so that a user can select one, and the second screen must show the fields of the selected record for editing. Which control choice meets these requirements?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use a gallery on the first screen and an edit form on the second screen.
- B. Use a detail form on the first screen and a gallery on the second screen.
- C. Use a gallery on both screens and set the second gallery to a single record.
- D. Use an edit form on the first screen and a detail form on the second screen.
A is correct.
Explanation: A gallery displays a scrollable list of records from the connected Business Central table, and an edit form displays and updates the fields of the record that the user selects.
B is incorrect: A detail form shows the fields of one selected record, so it cannot present the scrollable list that the first screen requires.
C is incorrect: A gallery is built for browsing multiple records and does not provide the field update behavior that the second screen requires.
D is incorrect: This reverses the roles, because a detail form only displays field values and does not update the record.
Q216 - Question
You built a Business Central custom connector with several actions. The business requires an unattended process that runs those operations as part of a workflow. What should you do?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Rebuild each action as a Business Central page extension, because connector actions run only inside canvas apps.
- B. Export the connector definition and import it as a Power Apps component, then run it on a schedule.
- C. Add each action as a separate custom connector, because a cloud flow can reference only one operation per connector.
- D. Create a Power Automate cloud flow that uses the custom connector and select the configured connector operations as flow steps.
D is correct.
Explanation: A Power Automate cloud flow can use a custom Business Central connector, and the operations you configured in the connector definition are exposed as steps that the flow executes.
A is incorrect: Connector operations are not limited to canvas apps, so rebuilding them as page extensions is unnecessary.
B is incorrect: A custom connector is used directly by the flow, not imported into Power Apps as a component to schedule.
C is incorrect: A single custom connector can expose multiple actions, and a flow can use those operations from the same connector.
Q217 - Question
A development team must call an internally hosted API that is not covered by any existing connector. The same connection must be reusable in Power Apps, Power Automate, and Logic Apps. Which approach meets the requirement?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Build a custom connector for the hosted API.
- B. Configure a standard connector and change its data source setting.
- C. Create a separate API call inside each app and flow.
- D. Use a premium connector to connect to the hosted API.
A is correct.
Explanation: Custom connectors call public or hosted APIs and can be reused across Power Apps, Power Automate, and Logic Apps.
B is incorrect: Custom connectors are required to call hosted APIs, whereas standard connectors bridge predefined tabular or function-based data sources.
C is incorrect: Custom connectors allow the connection to be reused across Power Apps, Power Automate, and Logic Apps without creating separate API calls.
D is incorrect: Custom connectors are used to call hosted APIs; premium connectors refer to existing published connectors.
Q218 - Question
A functional consultant must deliver a mobile app that lets sales staff browse Business Central customer records, open a single record to read its fields, and add or change records. The consultant wants the fastest starting point in Power Apps with the least manual screen building. Which approach should the consultant use?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Start a blank canvas app and add a gallery, a detail form, and an edit form manually.
- B. Create the app from the Business Central table data, which generates a three-screen app for browsing, viewing details, and creating, updating, or deleting records.
- C. Create the app from a Power Apps template and replace the sample data with the Business Central table.
- D. Create a Power BI report on the Business Central table and embed it in Business Central.
B is correct.
Explanation: When you connect Power Apps to a Business Central table and build the app from that data, Power Apps generates a three-screen app that already supports browsing records, viewing record details, and creating, updating, or deleting records.
A is incorrect: A blank canvas app starts with only a layout and a data connection, so you must add the gallery and the detail and edit forms yourself.
C is incorrect: Templates are prebuilt apps that ship with sample data, so you still have to rework the screens instead of getting screens generated from your table.
D is incorrect: A Power BI report embedded in Business Central does not provide the record creation, update, and delete screens the staff need.
Q219 - Question
A developer finished a canvas app that reads a Business Central table and saved the app. Colleagues in a Microsoft Entra ID group report that they cannot use the latest changes, and one colleague who opened an earlier version cannot see any records. Which two actions address these issues? Each correct answer presents part of the solution.
Domain: Integrate Business Central with other applications (10-15%) Type: Multiple select
- A. Publish the app so the saved changes become available to app users.
- B. Save the app again under a new name for each user.
- C. Verify that the users are authorized to access the Business Central data source.
- D. Restore the app to its first version from version history.
A and C are correct.
Explanation: Saving retains your changes for editors only, so you must publish the app to make them available to app users. Sharing the app with users or Microsoft Entra ID groups does not grant data access, so each user must also be authorized to access the underlying Business Central data source.
B is incorrect: Creating a separate copy for each user duplicates maintenance and still does not publish the changes or grant data access.
D is incorrect: Restoring the first version from version history returns the app to earlier content instead of delivering the latest changes.
Q220 - Question
A functional consultant wants to configure approval workflows in Business Central. Approval is needed on a supported page that offers the Request Approval action, and on another entity that does not offer the action. What should the consultant do?
Domain: Integrate Business Central with other applications (10-15%) Type: Single choice
- A. Use the predefined approval template from the Request Approval action on the supported page, and create a flow in Power Automate for the other entity.
- B. Create both approvals from the Request Approval action on the supported page.
- C. Build a model-driven app in Dataverse to handle both approvals.
- D. Use a desktop flow to record the approval steps for both entities.
A is correct.
Explanation: Business Central can embed predefined Power Automate approval templates through the Request Approval action on supported pages. Additional flows for other entities are created in Power Automate.
B is incorrect: The Request Approval action only embeds predefined templates on supported pages, not for every entity.
C is incorrect: Model-driven apps are Dataverse-based, data-model-first apps, not a method for configuring approval workflows.
D is incorrect: Desktop flows support robotic process automation, whereas Power Automate approval templates and event-driven flows are used for approvals.