Preview real exam questions, verified answers and available explanations before choosing a study plan.
Question 1
Drag & drop
DRAG DROP
You are developing a test application to test the posting process of a sales order. You must provide the following implementation:
1. Specify the value of post options (dialog: Ship, Invoice, Ship&; Invoice) as Invoice. 2. Perform calculations and values checking.
You need to complete the development of the test codeunit.
Which methods should you use? To answer, move the appropriate methods to the correct implementation. You may use each method once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
The post-options dialog must be handled by a handler method because it simulates the user's menu choice and supplies Invoice automatically. The calculations and assertions belong in the test method, which drives the posting scenario and checks the expected values. Reversing those roles would put assertions in a UI handler and leave the dialog selection outside the handler mechanism.
Question 2
Multiple choice
You are customizing Business Central by using Visual Studio Code. You create a project that will extend Business Central. The AL extension contains JSON files, which are automatically generated and are used to store configuration data For testing purposes, you plan to add the following changes to the files:
Specify that page 21 must be opened after publishing.
Enable debugging
Disable the capability to download the source code
You need to add the configurations to the JSON files.
Which two configurations should you add? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
A
Set "startupObjectld": 27 on launchjson.
B
In the "resourceExposurePolicy" tag, set "at low Debugging". true and allowDownloadingSource": false on launchjson.
C
Set "start upObjectld": 27 on appjson.
D
In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDown loading Source": true on appjson.
E
In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDownloadingSource": false on appjson.
Reveal answer detailsClose answer details
Correct answersA, E
Explanation
The startup page after publishing is configured in launch.json with the startup object settings, while debugging and source-download exposure are configured in app.json under resourceExposurePolicy. The correct combination is therefore the launch configuration for the startup object and the app manifest policy that allows debugging while disabling source download.
Putting startupObjectId in app.json is the wrong file, and setting allowDownloadingSource to true contradicts the requirement to disable source download. The source answer appears to have treated the startup-object setting as an app manifest setting, which is not how AL projects separate launch and app packaging configuration.
Case study
Case Study 2
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
Question 3
Testlet 2Hotspot
HOTSPOT
You need to download a stored picture from the Room Incident page.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
The stored media value must first be exported into an OutStream, so Temp Blob needs an OutStream before Incident.Image.ExportStream is called. After the blob contains the picture content, Temp Blob must create an InStream, and DownloadFromStream must receive that InStream to send the file to the client. Passing an OutStream to the download call or trying to read before writing would reverse the stream flow.
Question 4
Testlet 2Single choice
You need to improve performance when ticketAPI is used to analyze the POS data.
What should you do?
A
Set the ODataReadonlyGetEnabled parameter to True in the Business Central admin center.
B
Set the AceesByPermission property to Read on the ticketAPI API page.
C
Enable read scale-out on the Business Central database.
D
Set the DataAccesslntent property to Readonly on the ticketAPI API page.
Reveal answer detailsClose answer details
Correct answerC
Explanation
Read scale-out is the performance feature named in the case for analyzing POS information through ticketAPI. It lets read-heavy reporting or analytics workloads use a read-only replica instead of putting the same pressure on the primary database.
DataAccessIntent = ReadOnly on an API page can help route reads, but the requirement specifically says the database must use the Read Scale-Out feature for optimal performance. AccessByPermission controls UI/action visibility, and ODataReadonlyGetEnabled is not the feature described by the case.
Question 5
Single choice
You are creating an AppSource submission for a Business Central app. You need static analysis rules that check AppSource requirements.
Which analyzer should be enabled?
A
AppSourceCop
B
PerTenantExtensionCop only
C
CodeCop only
D
UICop only
Reveal answer detailsClose answer details
Correct answerA
Explanation
AppSourceCop is the analyzer focused on AppSource requirements for Business Central apps. It checks rules that matter when an extension is prepared for marketplace validation.
CodeCop and UICop cover general code and UI guidance, and PerTenantExtensionCop is aimed at per-tenant extension constraints. For AppSource-specific requirements, AppSourceCop is the analyzer that must be enabled.
Question 6
Drag & drop
DRAG DROP
A company is implementing Business Central.
The company has the following requirements for a report:
The report must be loaded for users in a specific location only.
Data entered in the request page must be validated before any further processing.
A filter must be defined for users based on the Department field defined in user setup.
You need to implement the given requirements.
Which triggers should you use? To answer, move the appropriate triggers to the correct requirements. You may use each trigger once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
OnInitReport is appropriate for early report loading decisions such as location-specific availability. OnPreReport runs after the request page values are available and before dataset processing, which is the right point to validate request-page data. OnPreDataItem runs before a data item is processed, so it is where user-specific filters such as Department from User Setup should be applied to the data item.
Case study
Case Study 3
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
Question 7
Testlet 3Multiple choice
You need to evaluate the version values of the Quality Control extension to decide how the quality department must update it.
Which two values can you obtain in the evaluation? Each correct answer presents part of the solution. (Choose two.)
NOTE: Each correct selection is worth one point.
A
AppVersion - 1.0.0.1
B
AppVersion = 1.0.0.2
C
DataVersion = 0.0.0.0
D
DataVersion = 1.0.0.1
E
DataVersion = 1.0.0.2
Reveal answer detailsClose answer details
Correct answersB, D
Explanation
In an upgrade from version 1.0.0.1 to version 1.0.0.2, NavApp.GetCurrentModuleInfo returns the current app package version as AppVersion = 1.0.0.2 and the previously installed data version as DataVersion = 1.0.0.1. That is exactly what an upgrade codeunit needs: the new app version and the data version being upgraded from.
DataVersion = 0.0.0.0 is the install/no-previous-data case, not this upgrade scenario. AppVersion = 1.0.0.1 would describe the old installed package, but the code is running from the new extension version during the upgrade.
Question 8
Single choice
You are developing an app.
You plan to publish the app to Microsoft AppSource.
You need to assign an object range for the app.
Which object range should you use?
A
custom object within the range 50000 to 59999
B
custom object within the range 50000 to 99999
C
divided by countries and use specific a country within the range 100000 to 999999
D
an object range within the range of 7000000 to 74999999 that is requested from Microsoft
E
free object within the standard range 1 to 49999
Reveal answer detailsClose answer details
Correct answerD
Explanation
An AppSource app must use the object ID range assigned for AppSource submissions. That range is deliberately separated from customer-specific and per-tenant ranges so marketplace apps do not collide with tenant customizations or other extension ownership.
The lower 50000-style ranges are commonly used for customer, partner, or per-tenant development, but they are not the correct object range for a validated AppSource package. Using the assigned AppSource range is part of making the app deployable across many tenants.
Question 9
Hotspot
HOTSPOT
You are designing an AL interface and an implementation codeunit for a Business Central app.
For each of the following statements, select Yes if the statement is true. Otherwise, select No.
Reveal answer detailsClose answer details
Explanation
A codeunit can implement an interface with the implements keyword, and it must implement the interface procedures. Interfaces declare procedure signatures, not trigger implementations, and object IDs do not need to match.
Case study
Case Study 1
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
Question 10
Testlet 1Hotspot
HOTSPOT
You need to parse the API JSON response and retrieve each order no. in the response body.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
The response body is JSON text, so it should first be read into a JsonToken. The results property is then selected from that token and converted to a JsonArray for iteration. Reading directly into a JsonObject is less flexible for this pattern, and Get(Data) would look for a property named by the whole data string rather than parsing the JSON payload.
Question 11
Single choice
You are creating a profile for a group of Business Central users. The users must open a specific Role
Center by default.
Which property should you set on the profile object?
A
RoleCenter
B
SourceTable
C
ApplicationArea
D
UsageCategory
Reveal answer detailsClose answer details
Correct answerA
Explanation
The RoleCenter property on a profile object sets the Role Center page that users with that profile open by default. That is the profile-level setting for assigning a role-specific home page.
SourceTable, ApplicationArea, and UsageCategory are page or object exposure concepts, not the profile property that selects the default Role Center for a user group.
Question 12
Multiple choice
A company uses Business Central.
The company plans to use the AL object model in Business Central to extend the Base Application.
You need to extend the objects.
Which two objects can you extend? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
A
Codeunit
B
Report
C
Query
D
API page
E
Enum
Reveal answer detailsClose answer details
Correct answersB, E
Explanation
Reports and enums are extensible AL object types through reportextension and enumextension objects. Those extension objects let an app add report dataset/layout behavior or enum values without modifying the base object directly.
Codeunits are extended through events and interfaces rather than codeunitextension objects. API pages and queries are not the selected extensible object types for this question's AL object model choices.
Question 13
Hotspot
HOTSPOT
You need to use a query data type to retrieve requited data.
How should you complete the code? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
A query variable must be opened before rows can be read from it. Open initializes the dataset, and Read advances through the rows while data is available. Close is used after reading is complete, and TopNumberOfRows limits the row count rather than starting or iterating the query.
The pattern is therefore to open the query and then read it in the loop that processes returned data.
Case study
Case Study 1
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
Question 14
Testlet 1Single choice
You need to create the access modifier for IssueTotal.
Which variable declaration should you use?
A
Protected vat IssueTotal: Decimal
B
Internal var IssueTotal: Decimal
C
Public var IssueTotal: Decimal
D
Local var IssueTotal: Decimal
E
Var IssueTotal; Decimal
Reveal answer detailsClose answer details
Correct answerA
Explanation
The variable should be declared as protected var IssueTotal: Decimal. A protected variable on an extensible object is available to extension objects such as a tableextension, which matches the requirement that ISSUE EXT must access IssueTotal from the base Issue table.
Internal limits access to objects inside the same app/module boundary and does not provide the tableextension access pattern required by the dependent extension. Public is broader than needed, and local would hide the variable from extension code entirely.
Case study
Case Study 3
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
Question 15
Testlet 3Hotspot
HOTSPOT
You need to define the XML file properties for the accounting department.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
The accounting department must generate an XML file and, for security reasons, must not receive data through the XMLport, so the format is Xml and the direction is Export. The file represents accounting movements with posting date, amount, and account number, which are sourced from G/L Entry rather than subcontract document records. Direction = Both would allow import, which conflicts with the security requirement.
Case study
Case Study 1
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
Question 16
Testlet 1Drag & drop
DRAG DROP
You need to handle the removal of the Description field and the Clone procedure without breaking other extensions.
Which three actions should you perform in sequence? To answer, move the appropriate actions from the list of actions to the answer area and arrange them in the correct order.
NOTE: More than one order of answer choices is correct. You will receive credit for any of the correct orders you select.
Reveal answer detailsClose answer details
Explanation
Removing a field or procedure that other extensions may reference should be handled as an obsolescence lifecycle, not as an immediate deletion. Pending gives consumers a warning window, Removed blocks new use at the later version boundary, and the physical removal happens only after the object member has been formally marked obsolete. That sequence reduces the chance of breaking dependent extensions without notice.
Question 17
Single choice
A company has a test application.
A user observes the following error messages when running the test:
Unhandled Ul: Message' Unhandled Ul: Confir";
You need to resolve the errors.
Which action should you take?
A
Create a separate test runner codeunit that has Message Handler and Confirm Handler methods.
B
Create the Message Handler and Confirm Handler methods in the test runner codeunit.
C
Create a separate test codeunit that has Message Handler and Confirm Handler methods.
D
Create the Message Handler and Confirm Handler methods in the test codeunit.
Reveal answer detailsClose answer details
Correct answerB
Explanation
Unhandled UI errors for Message and Confirm in a test run are resolved by adding MessageHandler and ConfirmHandler methods to the test runner codeunit that is executing the tests. The runner is where the framework can route those UI interactions during automated execution.
Creating unrelated codeunits does not help unless the runner is wired to use them. The error is not about business logic; it is about the test infrastructure lacking handlers for UI calls raised during the test.
Case study
Case Study 3
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
Question 18
Testlet 3Hotspot
HOTSPOT
You need to create the Fabrikam Vendor API for the accounting department.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
The accounting department needs a custom API page that exposes Vendor information and uses the replica database for performance. A page object with PageType = API creates the custom Business Central API endpoint, and DataAccessIntent = ReadOnly tells the platform that this API is read-only and can use read scale-out routing. A query object or page extension would not define this vendor API page in the same way.
Case study
Case Study 2
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
Question 19
Testlet 2Hotspot
HOTSPOT
You need to select the appropriate page types to solve the reporting requirements.
Which page types should you use? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Reveal answer detailsClose answer details
Explanation
A Role Center uses headline or cue-style parts to surface relevant insights, so HeadlinePart fits the housekeeping insight requirement. Extra information embedded on a Room page should be provided with a CardPart so it can appear as a related part on the page. First-install multistep configuration should use NavigatePage, the wizard-style page type for guided setup.
Question 20
Single choice
You want a FlowField to calculate and display a value that is stored in related ledger entries.
Which property defines the calculation formula?
A
CalcFormula
B
TableRelation
C
DataClassification
D
CaptionClass
Reveal answer detailsClose answer details
Correct answerA
Explanation
CalcFormula defines how a FlowField calculates its value from related records, such as summing ledger entries or looking up a value from another table. A FlowField needs this formula to know what related data to display.
TableRelation controls lookup relationships, DataClassification classifies data sensitivity, and CaptionClass controls dynamic caption behavior. They do not define the FlowField calculation.
Case study
Case Study 2
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
Question 21
Testlet 2Single choice
You need to define the tables used for the non-conformity entity.
What should you use?
A
document history table to introduce the non-conformity entities
B
document table to introduce the non-conformity entities
C
supplemental table to introduce the non-conformity lines
Reveal answer detailsClose answer details
Correct answerB
Explanation
A non-conformity with a header and one or more lines is a document-style business entity. The header contains common information such as number, vendor, date, owner, and status, while the lines hold item- level non-conforming details.
A document history table is used after a document is posted or archived, which is not the initial entity being created here. A supplemental table can support extra reference data, but it does not describe the main header-line non-conformity document structure.
Question 22
Drag & drop
DRAG DROP
A company is implementing Business Central.
In the per-tenant extension, TableA Header and TableA Line are document tables, and TableB Header and TableB Line are document history tables.
The company requires that the resulting dataset of query objects contain the following records:
1. All records from TableA Header even if no matching record value exists in the linked TableA Line 2. Records from TableB Header where a match is found in the linked TableB Line field
You need to configure the linked data item to generate the required dataset.
Which SqlJoinType should you use? To answer, move the appropriate SqUoinTypes to the correct dataset requirements. You may use each SqlJoinType once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
Reveal answer detailsClose answer details
Explanation
LeftOuterJoin includes all parent TableA Header records even when no linked TableA Line record exists, which satisfies the first dataset requirement. InnerJoin includes only records where the TableB Header has a matching TableB Line value, which satisfies the second requirement. CrossJoin would multiply unrelated records, and RightOuterJoin would preserve the child side rather than the requested parent side.
You are developing a test application to test the posting process of a sales order. You must provide the following implementation:
1. Specify the value of post options (dialog: Ship, Invoice, Ship&; Invoice) as Invoice. 2. Perform calculations and values checking.
You need to complete the development of the test codeunit.
Which methods should you use? To answer, move the appropriate methods to the correct implementation. You may use each method once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
The post-options dialog must be handled by a handler method because it simulates the user's menu choice and supplies Invoice automatically. The calculations and assertions belong in the test method, which drives the posting scenario and checks the expected values. Reversing those roles would put assertions in a UI handler and leave the dialog selection outside the handler mechanism.
QUESTION 2
You are customizing Business Central by using Visual Studio Code. You create a project that will extend Business Central. The AL extension contains JSON files, which are automatically generated and are used to store configuration data For testing purposes, you plan to add the following changes to the files:
Specify that page 21 must be opened after publishing.
Enable debugging
Disable the capability to download the source code
You need to add the configurations to the JSON files.
Which two configurations should you add? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
A.
Set "startupObjectld": 27 on launchjson.
B.
In the "resourceExposurePolicy" tag, set "at low Debugging". true and allowDownloadingSource": false on launchjson.
C.
Set "start upObjectld": 27 on appjson.
D.
In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDown loading Source": true on appjson.
E.
In the "resourceExposurePolicy" tag, set "allowDebugging": true and "allowDownloadingSource": false on appjson.
Correct Answer: AE
Explanation
Explanation/Reference:
The startup page after publishing is configured in launch.json with the startup object settings, while debugging and source-download exposure are configured in app.json under resourceExposurePolicy. The correct combination is therefore the launch configuration for the startup object and the app manifest policy that allows debugging while disabling source download.
Putting startupObjectId in app.json is the wrong file, and setting allowDownloadingSource to true contradicts the requirement to disable source download. The source answer appears to have treated the startup-object setting as an app manifest setting, which is not how AL projects separate launch and app packaging configuration.
Case Study 2
Case Study Questions
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
QUESTION 3
HOTSPOT
You need to download a stored picture from the Room Incident page.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
The stored media value must first be exported into an OutStream, so Temp Blob needs an OutStream before Incident.Image.ExportStream is called. After the blob contains the picture content, Temp Blob must create an InStream, and DownloadFromStream must receive that InStream to send the file to the client. Passing an OutStream to the download call or trying to read before writing would reverse the stream flow.
QUESTION 4
You need to improve performance when ticketAPI is used to analyze the POS data.
What should you do?
A.
Set the ODataReadonlyGetEnabled parameter to True in the Business Central admin center.
B.
Set the AceesByPermission property to Read on the ticketAPI API page.
C.
Enable read scale-out on the Business Central database.
D.
Set the DataAccesslntent property to Readonly on the ticketAPI API page.
Correct Answer: C
Explanation
Explanation/Reference:
Read scale-out is the performance feature named in the case for analyzing POS information through ticketAPI. It lets read-heavy reporting or analytics workloads use a read-only replica instead of putting the same pressure on the primary database.
DataAccessIntent = ReadOnly on an API page can help route reads, but the requirement specifically says the database must use the Read Scale-Out feature for optimal performance. AccessByPermission controls UI/action visibility, and ODataReadonlyGetEnabled is not the feature described by the case.
QUESTION 5
You are creating an AppSource submission for a Business Central app. You need static analysis rules that check AppSource requirements.
Which analyzer should be enabled?
A.
AppSourceCop
B.
PerTenantExtensionCop only
C.
CodeCop only
D.
UICop only
Correct Answer: A
Explanation
Explanation/Reference:
AppSourceCop is the analyzer focused on AppSource requirements for Business Central apps. It checks rules that matter when an extension is prepared for marketplace validation.
CodeCop and UICop cover general code and UI guidance, and PerTenantExtensionCop is aimed at per-tenant extension constraints. For AppSource-specific requirements, AppSourceCop is the analyzer that must be enabled.
QUESTION 6
DRAG DROP
A company is implementing Business Central.
The company has the following requirements for a report:
The report must be loaded for users in a specific location only.
Data entered in the request page must be validated before any further processing.
A filter must be defined for users based on the Department field defined in user setup.
You need to implement the given requirements.
Which triggers should you use? To answer, move the appropriate triggers to the correct requirements. You may use each trigger once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
OnInitReport is appropriate for early report loading decisions such as location-specific availability. OnPreReport runs after the request page values are available and before dataset processing, which is the right point to validate request-page data. OnPreDataItem runs before a data item is processed, so it is where user-specific filters such as Department from User Setup should be applied to the data item.
Case Study 3
Case Study Questions
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
QUESTION 7
You need to evaluate the version values of the Quality Control extension to decide how the quality department must update it.
Which two values can you obtain in the evaluation? Each correct answer presents part of the solution. (Choose two.)
NOTE: Each correct selection is worth one point.
A.
AppVersion - 1.0.0.1
B.
AppVersion = 1.0.0.2
C.
DataVersion = 0.0.0.0
D.
DataVersion = 1.0.0.1
E.
DataVersion = 1.0.0.2
Correct Answer: BD
Explanation
Explanation/Reference:
In an upgrade from version 1.0.0.1 to version 1.0.0.2, NavApp.GetCurrentModuleInfo returns the current app package version as AppVersion = 1.0.0.2 and the previously installed data version as DataVersion = 1.0.0.1. That is exactly what an upgrade codeunit needs: the new app version and the data version being upgraded from.
DataVersion = 0.0.0.0 is the install/no-previous-data case, not this upgrade scenario. AppVersion = 1.0.0.1 would describe the old installed package, but the code is running from the new extension version during the upgrade.
QUESTION 8
You are developing an app.
You plan to publish the app to Microsoft AppSource.
You need to assign an object range for the app.
Which object range should you use?
A.
custom object within the range 50000 to 59999
B.
custom object within the range 50000 to 99999
C.
divided by countries and use specific a country within the range 100000 to 999999
D.
an object range within the range of 7000000 to 74999999 that is requested from Microsoft
E.
free object within the standard range 1 to 49999
Correct Answer: D
Explanation
Explanation/Reference:
An AppSource app must use the object ID range assigned for AppSource submissions. That range is deliberately separated from customer-specific and per-tenant ranges so marketplace apps do not collide with tenant customizations or other extension ownership.
The lower 50000-style ranges are commonly used for customer, partner, or per-tenant development, but they are not the correct object range for a validated AppSource package. Using the assigned AppSource range is part of making the app deployable across many tenants.
QUESTION 9
HOTSPOT
You are designing an AL interface and an implementation codeunit for a Business Central app.
For each of the following statements, select Yes if the statement is true. Otherwise, select No.
Correct Answer:
Explanation
Explanation/Reference:
A codeunit can implement an interface with the implements keyword, and it must implement the interface procedures. Interfaces declare procedure signatures, not trigger implementations, and object IDs do not need to match.
Case Study 1
Case Study Questions
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
QUESTION 10
HOTSPOT
You need to parse the API JSON response and retrieve each order no. in the response body.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
The response body is JSON text, so it should first be read into a JsonToken. The results property is then selected from that token and converted to a JsonArray for iteration. Reading directly into a JsonObject is less flexible for this pattern, and Get(Data) would look for a property named by the whole data string rather than parsing the JSON payload.
QUESTION 11
You are creating a profile for a group of Business Central users. The users must open a specific Role
Center by default.
Which property should you set on the profile object?
A.
RoleCenter
B.
SourceTable
C.
ApplicationArea
D.
UsageCategory
Correct Answer: A
Explanation
Explanation/Reference:
The RoleCenter property on a profile object sets the Role Center page that users with that profile open by default. That is the profile-level setting for assigning a role-specific home page.
SourceTable, ApplicationArea, and UsageCategory are page or object exposure concepts, not the profile property that selects the default Role Center for a user group.
QUESTION 12
A company uses Business Central.
The company plans to use the AL object model in Business Central to extend the Base Application.
You need to extend the objects.
Which two objects can you extend? Each correct answer presents a complete solution.
NOTE: Each correct selection is worth one point.
A.
Codeunit
B.
Report
C.
Query
D.
API page
E.
Enum
Correct Answer: BE
Explanation
Explanation/Reference:
Reports and enums are extensible AL object types through reportextension and enumextension objects. Those extension objects let an app add report dataset/layout behavior or enum values without modifying the base object directly.
Codeunits are extended through events and interfaces rather than codeunitextension objects. API pages and queries are not the selected extensible object types for this question's AL object model choices.
QUESTION 13
HOTSPOT
You need to use a query data type to retrieve requited data.
How should you complete the code? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
A query variable must be opened before rows can be read from it. Open initializes the dataset, and Read advances through the rows while data is available. Close is used after reading is complete, and TopNumberOfRows limits the row count rather than starting or iterating the query.
The pattern is therefore to open the query and then read it in the loop that processes returned data.
Case Study 1
Case Study Questions
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
QUESTION 14
You need to create the access modifier for IssueTotal.
Which variable declaration should you use?
A.
Protected vat IssueTotal: Decimal
B.
Internal var IssueTotal: Decimal
C.
Public var IssueTotal: Decimal
D.
Local var IssueTotal: Decimal
E.
Var IssueTotal; Decimal
Correct Answer: A
Explanation
Explanation/Reference:
The variable should be declared as protected var IssueTotal: Decimal. A protected variable on an extensible object is available to extension objects such as a tableextension, which matches the requirement that ISSUE EXT must access IssueTotal from the base Issue table.
Internal limits access to objects inside the same app/module boundary and does not provide the tableextension access pattern required by the dependent extension. Public is broader than needed, and local would hide the variable from extension code entirely.
Case Study 3
Case Study Questions
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
QUESTION 15
HOTSPOT
You need to define the XML file properties for the accounting department.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
The accounting department must generate an XML file and, for security reasons, must not receive data through the XMLport, so the format is Xml and the direction is Export. The file represents accounting movements with posting date, amount, and account number, which are sourced from G/L Entry rather than subcontract document records. Direction = Both would allow import, which conflicts with the security requirement.
Case Study 1
Case Study Questions
Background
Contoso, Ltd. is a sales company in the manufacturing industry. It has subsidiaries in multiple countries/ regions, each with its own localization. The subsidiaries must be data-independent from each other. Contoso. Ltd. uses an external business partner to manage the subcontracting of some manufacturing items. Contoso, Ltd. has different sectors with data security between sectors required.
Current environment
Contoso, Ltd. uses Business Central online as the main ERP for financials, sales, purchase, warehouse, and manufacturing processes. It has employees that use the Business Central web application and external applications. The company has a custom external mobile app under development.
The IT department and its partners installed custom extensions to satisfy the company's requirements where the functionality is not available natively.
Contoso, Ltd. interacts with external services provided by customers and partners. Different applications interact with SOAP and OData endpoints exposed from Business Central.
An external business partner of Contoso, Ltd. exposed a REST API for receiving details about new subcontracting orders and for sending the planned release date of each subcontracting order received.
Contoso, Ltd. has not activated the monitoring of the tenant and has no internal telemetry for its apps.
Custom reporting must be created to meet the requirements of the different departments.
Tenant management
Contoso, Ltd. has the following tenant management considerations:
IT department
1. The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies. 2. The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals. 3. All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications. 4. The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.
External business partner
1. The external business partner must add custom telemetry to an application created for Contoso, Ltd. to monitor a business process. 2. Custom telemetry signals for the application must be visible only on the partner's telemetry.
SOAP
1. Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations. 2. Contoso, Ltd. must be able to detect if external applications are using its Business Central SOAP endpoints.
Issue
The Business Central tenant is upgraded by Microsoft to a new major version during the night.
Users report that one of the Contoso, Ltd. extensions disappeared from the tenant. The IT department confirms that the extension is still published.
Custom mobile application requirements
Contoso, Ltd. plans to create a custom mobile application that has the following requirements:
1. The app must be used by employees to check item details from the ERP in real time and to report issues that occur during the manufacturing process. 2. An AL extension must be created for handling archived issues. 3. Business Central development guidelines must be followed when implementing modules. 4. A module must be implemented for the reporting and tracking of issues information. You plan to call this module Issue Management. The module must expose a method named PostIssue. 5. Code modifications will be required over time. 6. The Issue Management process must be split into two extensions: ISSUE BASE: main extension ISSUE EXT: second extension with dependency from ISSUE BASE 7. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to create an Issue table that contains a global Decimal variable named IssueTotal. 8. In the version 1.0.0.0 of the ISSUE BASE extension, you plan to define a table named Issue Category with a Description field defined as follows:
9. The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows:
procedure Clone() begin end;
10. In the ISSUE EXT extension, you create a tableextension object of the Issue table. 11. The tableextension object of the Issue table must access the IssueTotal: Decimal variable.
After weeks of usage, you discover that you must remove the Description field and the Clone procedure because they are no longer required.
In a new version of the ISSUE BASE extension, you create a new Issue Type table. You must move data row by row from a previously obsolete Issue Category table to the new Issue Type table. Because a large amount of data must be moved, you must write an Upgrade codeunit by using the DataTransfer object.
The IT department creates a custom API for exposing the custom Issue table. The API provides an action for copying an issue to a new table. The action is defined as follows:
[ServiceEnabled] procedure Copy(var actionContext: WebServiceActionContext) begin end;
Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.
1. The API must have the lowest possible impact on the production environment when used during working hours. 2. The API must only support Get operations.
Debugging problems
A user of the ISSUE BASE extension in Business Central reports a problem.
To debug the problem, snapshot debugging with the following configuration was activated:
You discover that the debugging is not triggering.
Integration with business partner for subcontracting
Contoso, Ltd. must connect Business Central to the external API provided by the business partner. This will be used for the partner to send the details of new subcontracting orders to fulfill the sales demand, and for receiving the planned release date of each order sent. The integration requirements are as follows:
1. The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, Ltd. 2. The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint. 3. The API for retrieving the order no. and planned release date of each subcontracting order responds with the following JSON:
Each order no. must be retrieved.
QUESTION 16
DRAG DROP
You need to handle the removal of the Description field and the Clone procedure without breaking other extensions.
Which three actions should you perform in sequence? To answer, move the appropriate actions from the list of actions to the answer area and arrange them in the correct order.
NOTE: More than one order of answer choices is correct. You will receive credit for any of the correct orders you select.
Correct Answer:
Explanation
Explanation/Reference:
Removing a field or procedure that other extensions may reference should be handled as an obsolescence lifecycle, not as an immediate deletion. Pending gives consumers a warning window, Removed blocks new use at the later version boundary, and the physical removal happens only after the object member has been formally marked obsolete. That sequence reduces the chance of breaking dependent extensions without notice.
QUESTION 17
A company has a test application.
A user observes the following error messages when running the test:
Unhandled Ul: Message' Unhandled Ul: Confir";
You need to resolve the errors.
Which action should you take?
A.
Create a separate test runner codeunit that has Message Handler and Confirm Handler methods.
B.
Create the Message Handler and Confirm Handler methods in the test runner codeunit.
C.
Create a separate test codeunit that has Message Handler and Confirm Handler methods.
D.
Create the Message Handler and Confirm Handler methods in the test codeunit.
Correct Answer: B
Explanation
Explanation/Reference:
Unhandled UI errors for Message and Confirm in a test run are resolved by adding MessageHandler and ConfirmHandler methods to the test runner codeunit that is executing the tests. The runner is where the framework can route those UI interactions during automated execution.
Creating unrelated codeunits does not help unless the runner is wired to use them. The error is not about business logic; it is about the test infrastructure lacking handlers for UI calls raised during the test.
Case Study 3
Case Study Questions
Current environment
Fabrikam Inc. is a medium-sized company that plans to implement Dynamics 365 Business Central as an ERP system. The company has a development department that will help with the ERP implementation.
Most employees work remotely from different countries or regions and speak different languages. The various locations and languages cause issues with the current on-premises software.
Planned improvements
Fabrikam Inc. plans to implement new and modern software to manage the company. The company wants to use Business Central because it is cloud-based and meets all company requirements.
The company intends to improve reporting and integration functionality by using modern tools such as Power BI and APIs. To reduce the amount of information sent by email, the company plans to expose vendor information to be consumed from external users.
Technical specifications
The development department installed Visual Studio Code to create Business Central extensions so the ERP system could be customized according to company needs. All extensions must be developed for the Business Central 2024 wave 1 online version.
The development department plans to use telemetry to control the appropriate use of each new development and works directly in licensed sandbox environments supplied by Microsoft.
Department-specific requirements
The following departments at Fabrikam Inc. have multiple requirements: 1. Development
2. Control 3. Accounting 4. Quality
Development department
The development department designed an extension for the purchase department. Because the developers plan to work with telemetry for monitoring operations, they need the Application Insights information. To accomplish this, the department must add a setting in the corresponding file.
The quality department does not want to receive any warning about the Application Insights setting when the extension is compiled.
Control department
The control department requires customizations to Business Central by using a per-tenant extension (PTE) named Subcontract Docs. The PTE includes a table named Subcontract Documents. The table has the following fields:
ID: A unique identifier
Subcontract No.: Related to the standard Vendors table Description: A short description of a received document Document: A media type that has the document Comments: Comments about the document Date: When the document was imported Amount: Amount related with the imported document Posted: Indicates if the document is managed
The extension must be in English - United States (ENU) and Spanish Traditional Sort (ESP) so the application can be used in both languages. The translations must be on the table, not on the page, to avoid repeating them. The control department does not want to use translation files.
The control department manager requires a brief guide for the Description and Comments fields when employees create a new record so users know what to include in the fields. The guide must disappear as soon as users add a value in the fields.
The Subcontract Documents table must be displayed on a new page named Subcontract Document List through an action from the standard Vendor page.
The Amount field, included in the Subcontract Document List, must be formatted in bold format when the record is posted (field Posted = true).
The control department also requires a report to display a list of subcontract documents named Subcontract Documents Excel List. The report must meet the following requirements: 1. Downloads a file only in Microsoft Excel. 2. Includes a predefined format with two worksheets: one with the posted subcontract documents and another with the unposted subcontract documents.
Accounting department
The accounting department plans to use Power BI to analyze information generated by the control department. The accounting department plans to expose an API named API Customer Lines. To improve the performance, the API must use read-only information and work with a Query object to summarize the data.
You have the following code:
The accounting department must expose data such as the following:
The qty column must be the sum of the Outstanding quantity field of Sales Order Lines. It must be in descending order by quantity.
The department also exposes a page named Fabrikam Vendor API that includes vendor information from the Vendor table, such as number and name. The API must use the replica database to improve performance.
Because Fabrikam Inc. is based in multiple countries and regions, the company periodically must send accounting movements between two dates to the local tax offices named Fabrikam Accounting.
The format for this file must be an XML file generated by an XMLport object. For security reasons, it is not possible to receive data from this XMLport.
The generated XML file must have a schema like this:
Quality department
The quality department requires that every new app or extension is designed to meet standard company guidelines. The quality department plans to follow the standard Business Central data model. The quality development must be able to use triggers correctly.
The department must ensure that when a vendor is deleted, the system also removes each record in the Subcontract Documents table related to the vendor. If the subcontract document record has the field Posted = false, it must not be possible to delete the record.
The department has a version 1.0.0.1 installed for an extension named Quality Control. The department develops a new version 1.0.0.2 and uses a codeunit with the subtype Upgrade to update it. The department requires the values for AppVersion and DataVersion on the trigger OnUpgradePerCompany after using NavApp.GetCurrentModuleInfo(myinfo).
QUESTION 18
HOTSPOT
You need to create the Fabrikam Vendor API for the accounting department.
How should you complete the code segment? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
The accounting department needs a custom API page that exposes Vendor information and uses the replica database for performance. A page object with PageType = API creates the custom Business Central API endpoint, and DataAccessIntent = ReadOnly tells the platform that this API is read-only and can use read scale-out routing. A query object or page extension would not define this vendor API page in the same way.
Case Study 2
Case Study Questions
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
QUESTION 19
HOTSPOT
You need to select the appropriate page types to solve the reporting requirements.
Which page types should you use? To answer, select the appropriate options in the answer area.
NOTE: Each correct selection is worth one point.
Correct Answer:
Explanation
Explanation/Reference:
A Role Center uses headline or cue-style parts to surface relevant insights, so HeadlinePart fits the housekeeping insight requirement. Extra information embedded on a Room page should be provided with a CardPart so it can appear as a related part on the page. First-install multistep configuration should use NavigatePage, the wizard-style page type for guided setup.
QUESTION 20
You want a FlowField to calculate and display a value that is stored in related ledger entries.
Which property defines the calculation formula?
A.
CalcFormula
B.
TableRelation
C.
DataClassification
D.
CaptionClass
Correct Answer: A
Explanation
Explanation/Reference:
CalcFormula defines how a FlowField calculates its value from related records, such as summing ledger entries or looking up a value from another table. A FlowField needs this formula to know what related data to display.
TableRelation controls lookup relationships, DataClassification classifies data sensitivity, and CaptionClass controls dynamic caption behavior. They do not define the FlowField calculation.
Case Study 2
Case Study Questions
Testlet 1
##Case
Case study
This is a case study. Case studies are not timed separately. You can use as much exam time as you would like to complete each case. However, there may be additional case studies and sections on this exam. You must manage your time to ensure that you are able to complete all questions included on this exam in the time provided.
To answer the questions included in a case study, you will need to reference information that is provided in the case study. Case studies might contain exhibits and other resources that provide more information about the scenario that is described in the case study. Each question is independent of the other questions in this case study.
At the end of this case study, a review screen will appear. This screen allows you to review your answers and to make changes before you move to the next section of the exam. After you begin a new section, you cannot return to this section.
To start the case study
To display the first question in this case study, click the Next button. Use the buttons in the left pane to explore the content of the case study before you answer the questions. Clicking these buttons displays information such as business requirements, existing environment, and problem statements. If the case study has an All Information tab, note that the information displayed is identical to the information displayed on the subsequent tabs. When you are ready to answer a question, click the Question button to return to the question.
Company Background
Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.
Currently, the company uses the following software and interface:
1. Property management software (PMS) to manage hotel rooms 2. On-premises accounting software to generate sales invoices and create purchase orders 3. An API that allows restaurants and stores to obtain necessary information
Restaurants and stores use standalone software for point of sale (POS) devices. Each day, the POS terminals generate a text file of sales data and save the files in a server folder. An account assistant must manually import the files to the current software tables to be processed by the system.
The general manager receives several reports monthly from department managers. The reports take too much time to prepare.
Planned improvements
The company is moving from a different system to Business Central online to manage the whole company.
The company plans to increase efficiency in every department by using APIs to obtain or share information between the different systems.
Each department involved in purchasing must be able to make purchase requests automatically and easily. The departments do not need access to the full ERP management system.
Technical specifications
Alpine Ski House requires the development of several extensions for the planned improvements. Business Central design patterns must be used to develop all extensions.
Alpine Ski House must develop the following pages:
1. Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed 2. Department-specific Role Center pages to show relevant information and pages with additional information
The IT department plans to use Power BI to analyze departmental information. The database must be configured to provide optimal performance.
Department-specific requirements. Housekeeping department
The housekeeping department requires the following to increase efficiency and help avoid data entry errors:
1. A Housekeeping Role Center to minimize navigation to relevant areas in Business Central online and to show relevant information in it 2. Pages to embed into a new Room page to show additional information about the Room entity 3. A table named Room Incident for the housekeeping team to enter room issue information 4. A Housekeeping canvas app that connects to an extension
The department requires the development of an extension with a new API page named RoomsAPI.
1. The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app. 2. This custom API page must expose a custom table named Rooms and have an ID 50000. The table must be able to update from the PMS. The PMS team must know the endpoint to connect to the custom API. 3. A developer provides the following details for the API page:
1. The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms. 2. Installation or updates to this extension must meet the following requirements: Some web services must be published automatically. The version of the specified application's metadata must be obtained in AL language, The code required to perform tasks cannot be accessible from other parts of the application.
The Room Incident table information must include the following fields:
1. Incident entry: An incremental number 2. Room No.: A room from the Room table 3. Incident Date: The work date The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record, The value for Incident Date must be the work date configured in the Business Central online client. 4. Status: Includes the following options to identify the status of the incident: Open: When the Room Incident is created In Progress: When someone starts repair work Closed: When the incident is solved 5. Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date) 6. Incident Description: Text 7. Image: Media data type The stored picture must be downloadable from a menu action, A Room Incident page must be developed to contain the download action.
Department-specific requirements. Restaurants and stores
To increase efficiency, the new system must manage the generated data from the restaurants and stores directly by using the API on the POS terminals.
1. The company requires a codeunit called from a job queue to read the information from the POS terminal APIs. 2. The POS terminal information must be stored in a table named POS Information, have an ID 50100, and be editable on a page. 3. The account manager requires an option on the menu of the page to run the process manually.
To analyze the information received from the POS terminals, the company requires:
1. A custom API named ticketAPI to export the information to Power BI 2. Use of the Read Scale-Out feature to improve database performance
Department-specific requirements. Purchasing department and non-conformity handling
The purchasing department requires a new entity in Business Central online to log non-conformities of goods received from vendors. The entity must be set up as follows:
1. The non-conformity entity must have two tables: a header with common information one or more lines with the detailed received items that are non-conforming 2. The entity requires a page named Non-conformity and a subpage named Non-conformity Lines to store the information.
When a purchase order with incorrect quantity or quality issues is received, the entity must create a non-conformity document in the system. The following information must be included in the document:
1. Non-conformity Number: must use the No. Series table from Business Central online to manage this field and use these features: Alphanumeric values Number format that includes "NC" and the year as part of the number; for example, NC24-001 2. Non-conformity Date: stores only the creation date 3. Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included 4. Owner: code of an employee defined in the company 5. Receipt No.: must meet the following conditions: Be an existing receipt No. Be received from the vendor indicated in the Vendor No. field 6. Comments: can include comments with rich text and pictures to illustrate quality problems 7. Status: includes non-conformity statuses, such as: Open Notified Closed Lines must contain the following details: Item No.: item received (for existing inventory items only) Description: item description Quantity: non-conforming quantity Non-conformity Type: *Quality *Quantity *Delivery date
The serial numbers of the non-conformities and the period in which they can be created must be in a configuration table and its corresponding page to allow them to be modified for the users.
QUESTION 21
You need to define the tables used for the non-conformity entity.
What should you use?
A.
document history table to introduce the non-conformity entities
B.
document table to introduce the non-conformity entities
C.
supplemental table to introduce the non-conformity lines
Correct Answer: B
Explanation
Explanation/Reference:
A non-conformity with a header and one or more lines is a document-style business entity. The header contains common information such as number, vendor, date, owner, and status, while the lines hold item- level non-conforming details.
A document history table is used after a document is posted or archived, which is not the initial entity being created here. A supplemental table can support extra reference data, but it does not describe the main header-line non-conformity document structure.
QUESTION 22
DRAG DROP
A company is implementing Business Central.
In the per-tenant extension, TableA Header and TableA Line are document tables, and TableB Header and TableB Line are document history tables.
The company requires that the resulting dataset of query objects contain the following records:
1. All records from TableA Header even if no matching record value exists in the linked TableA Line 2. Records from TableB Header where a match is found in the linked TableB Line field
You need to configure the linked data item to generate the required dataset.
Which SqlJoinType should you use? To answer, move the appropriate SqUoinTypes to the correct dataset requirements. You may use each SqlJoinType once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content.
Correct Answer:
Explanation
Explanation/Reference:
LeftOuterJoin includes all parent TableA Header records even when no linked TableA Line record exists, which satisfies the first dataset requirement. InnerJoin includes only records where the TableB Header has a matching TableB Line value, which satisfies the second requirement. CrossJoin would multiply unrelated records, and RightOuterJoin would preserve the child side rather than the requested parent side.