Site icon Exam4Training

Microsoft MB-820 Microsoft Dynamics 365 Business Central Developer Online Training

Question #1

Topic 1, Case Study Alpine Ski House

Overview

Alpine Ski House is a company that owns and operates hotels, restaurants, and stores.

Currently, the company uses the following software and interlace:

• Property management software (PMS) to manage hotel rooms

• On-premises accounting software to generate sales invoices and create purchase orders

• 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 serval 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.

The company is moving from a different system to 8usiness 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.

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:

• Pages that provide multiple configurations in a multistep dialog, like a wizard, to provide required information when the extensions are first installed

• Department-specific Role Center pages to show relevant information and pages with additional information

The IT department plans to use Power 61 to analyze departmental information. The database must be configured to provide optimal performance.

The housekeeping department requires the following to increase efficiency and help avoid data entry errors:

• A Housekeeping Role Center to minimize navigation to relevant areas In Business Central online and to show relevant information in it

• Pages to embed into a new Room page to show additional information about the Room entity

• A table named Room Incident for the housekeeping team to enter room issue information

• A Housekeeping canvas app that connects to an extension

The department requires the development of an extension with a new API page named RoomsAPI.

• The housekeeping team will use RoomsAPI to publish room details, update when work is complete, or provide repair notifications from the canvas app.

• 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 end to connect to the custom API.

• A developer provides the following details for the API page:

APIPublisher = ‘alpine’;

APIGroup – ‘integration’;

APIVersion – ‘v2.6’;

fntityName ■ ‘room’;

EntitySetName = ‘rooms’;

• The extension must be published in Business Central online and include a list page named Room List that includes all hotel rooms.

• Installation or updates to this extension must meet the following requirements: o Some web services must be published automatically.

o The version of the specified application’s metadata must be obtained in AL language.

o 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:

• Incident entry: An incremental number

• Room No.: A room from the Room table

• Incident Date: The work date

o The table definition in the Room Incident table must autofill the Incident Date when the housekeeping team inserts a new record.

o The value for Incident Date must be the work date configured in the Business Central online client.

• Status: Includes the following options lo identify the status of the incident:

o Open: When the Room Incident is created

o In Progress: When someone starts repair work

o Closed: When the incident is solved

• Incident Closing Date: Auto-updating field (when the status passes to Closed, the field will update with the work date)

• Incident Description: Text

• Image. Media data type

o The stored picture must be downloadable from a menu action.

o A Room Incident page must be developed to contain the download action.

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.

• The company requires a code unit called from a job queue to read the information from the POS terminal APIs.

• The POS terminal information must be stored in a table named POS Information, have an ID 50100. and be editable on a page.

• 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:

• A custom API named ticketAPI to export the information to Power BI

• Use of the Read Scale-Out feature to improve database performance

The purchasing department requites a new entity in Business Central online to log non-conformities of goods received from vendors.

The entity must be set up as follows:

• The non-conformity entity must have two tables:

o a header with common information

o one or more lines with the detailed received items that are non-conforming

• 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 01 quality issues is received, the entity must create a non-conformity document in the system.

The following information must be nick the document:

• Non-conformity Number: must use the No.

Series table from Business Central online to manage this field and use these features:

o Alphanumeric values

o Number format that includes "NO and the year as part of the number: for example, NC24-001

• Non-conformity Date: stores only the creation date

• Vendor No.: stores the number of the vendor that sent the items; only vendors from the company must be included

• Owner: code of an employee defined in the company

• Receipt No.: must meet the following conditions:

o Be an existing receipt No.

o Be received from the vendor indicated in the Vendor No. field

• Comments: can include comments with rich text and pictures to illustrate quality problems

• Status: includes nonconformity statuses, such as:

o Open

o Notified

o Closed

• Lines must contain the following details:

o Item No.: item received (for existing inventory items only)

o Description: item description

0 Quantity: non-conforming quantity

0 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.

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 Solution Hide Solution

Correct Answer:

Explanation:

var

TempBlob: Codeunit "Temp Blob";

IncidentOutStream: OutStream;

IncidentInStream: InStream;

ImageFilter, FileName: Text;

begin

// Initialize the TempBlob and streams TempBlob.CreateOutStream(IncidentOutStream); Rec.Image.ExportStream(IncidentOutStream); // ‘Rec’ refers to the current Room Incident record TempBlob.CreateInStream(IncidentInStream);

// Set the filters and filename for the image

ImageFilter := ‘Image Files (*.bmp,*.jpg,*.jpeg,*.gif)|*.bmp;*.jpg;*.jpeg;*.gif’; FileName := ‘Customer Picture’;

// Prompt the user to download the image

if not DownloadFromStream(IncidentInStream, ”, ‘Download Incident Picture’, ”, ImageFilter, FileName) then

Error(‘Unable to download the image.’);

end;


Question #2

HOTSPOT

You need to create the codeunit to read the POS terminal APIs.

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 Solution Hide Solution

Correct Answer:

Explanation:

codeunit 52102 "POS API Management"

{

Access = Public;

Permissions = TableData "POS Information" = rwdx;

trigger OnRun()

begin

readAPI();

end;

procedure readAPI()

begin

// Your code here to read from the POS API

end;

}


Question #3

HOTSPOT

You need to define the properties of the comments field of the Non-conformity 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 Solution Hide Solution

Correct Answer:


Question #4

You need to define the data types for the fields of the N on-conformity table.

Which two data types should you use? Each correct answer presents part of the solution. NOTE: Each correct selection is worth one point.

  • A . Integer for the N on-conformity Number field
  • B . Date Time for the Non-Conformity Date field
  • C . Char for the Non-Conformity Number field
  • D . Date for the Non-Conformity Date field
  • E . Code for the Non-Conformity Number field

Reveal Solution Hide Solution

Correct Answer: C, E
C, E

Explanation:

In Business Central, fields in tables are assigned specific data types that determine the kind of data they can store. For the Non-conformity table mentioned in the case study, the following data types should be used:

Date for the Non-Conformity Date field: This is because the Non-conformity Date field is required to store only the date when the non-conformity was recorded. The Date data type is appropriate for storing dates without times.

Code for the Non-Conformity Number field: The Non-conformity Number field is described to use alphanumeric values with a format that includes "NC" and the year, like "NC24-001". In Business Central, the Code data type is used for fields that store alphanumeric keys. It is a text field with a limited length, which makes it suitable for number series that contain letters and numbers.

Other options are not suitable:

Question #5

HOTSPOT

You need to create the Install codeunit that is requited in the extension used for installing or updating the Housekeeping app.

Which data type or declaration should you use? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

For the Install codeunit required for the extension used for installing or updating the Housekeeping app, you should use the following data type and declaration:

Data type for information: ModuleInfo

Start of the declaration of the method or procedure to perform the tasks: local procedure

In AL language, which is used for developing extensions in Business Central, an Install codeunit is a special type of codeunit that is used to handle installation or upgrade logic for an extension. ModuleInfo is a data type that contains information about the current extension, such as its version. It is typically used within the OnInstallAppPerCompany or OnUpgradePerCompany triggers of an Install codeunit to determine if the app is being installed for the first time or upgraded.

A local procedure within an Install codeunit is a method that is only accessible within the codeunit itself. It is not visible to other objects or extensions. This is suitable for tasks that are internal to the installation process and should not be exposed globally.

These selections align with the requirements of handling installation and update procedures in a controlled and encapsulated manner within Business Central extensions.


Question #6

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 Solution Hide Solution

Correct Answer:

Explanation:

For the requirements provided, the appropriate page types should be selected as follows:

Display relevant insights in the Housekeeping Role Center: HeadlinePart

Display the additional information for the Room table: FactBox

Configure the first installation: StandardDialog

Comprehensive Detailed Explanation

In the context of Microsoft Dynamics 365 Business Central, page types are crucial for determining how information is presented to the user.

HeadlinePart: This page type is designed to display key data and insights in a concise and visually appealing manner, often used in Role Centers to highlight important information. It is suitable for the Housekeeping Role Center to display relevant insights.

FactBox: This page type is used to display supplementary information related to a selected record in the main part of the page. It’s often used to show additional details about a record in a list, card, or document page. In this scenario, it is suitable for showing additional information about a specific Room when viewing the Room table.

StandardDialog: This is a page type that provides a modal dialog for user interaction, commonly used for setup wizards, confirmations, and input forms that require user action before proceeding. This is appropriate for configuring the first installation, where a step-by-step guided interaction is necessary.


Question #7

HOTSPOT

You need to provide the endpoint to the PMS provider for the RoomsAPI page.

How should you complete the API page endpoint? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point

Reveal Solution Hide Solution

Correct Answer:

Explanation:

https://api.businesscentral.dynamics.com/v2.6/myTenant/myEnvironment/api/alpine/integration/ro oms


Question #8

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 Solution Hide Solution

Correct Answer: B
B

Explanation:

Table Structure in Business Central: When creating entities such as "non-conformity" entities in Business Central, you use document tables to represent entities that have a header and line structure.

In this case, the non-conformity entity has:

A header with common information (Non-conformity Number, Date, Vendor No., etc.). One or more lines representing the detailed information for each non-conforming item.

Document Table Usage:

Document Table: A document table is the correct table type for scenarios where you have a header (with general information like vendor details) and lines (with detailed, item-specific information). Document tables are typically used for entities such as Sales Orders, Purchase Orders, or any other transactional data where you have both header and line information.

Supplemental Table (Option C):

Supplemental tables are usually used to add supplementary information to existing data in Business Central. In this case, we need to store detailed line information, which is a core part of the entity rather than supplementary data, so a supplemental table would not be appropriate here. Document History Table (Option A):

Document history tables are used to track changes and historical data for entities but are not suitable for the main introduction of the entity and its lines. This option is also not appropriate.

Reference Documentation:

Introduction to Business Central Tables

Document Tables in Business Central

Question #9

HOTSPOT

You need to define the properties for the Receipt No. field in the Non-conformity table when storing the information to the purchasing 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 Solution Hide Solution

Correct Answer:

Explanation:

field(3; "Receipt No."; Code[20])

{

DataClassification = CustomerContent;

TableRelation = "Purch. Rcpt. Header"."No." where ("Buy-from Vendor No." = field("Vendor No."));

}

Field Declaration:

The field(3; "Receipt No."; Code[20]) part defines the field in the table with ID 3 and type Code with a length of 20. This field will hold the receipt number. DataClassification:

CustomerContent is selected for the DataClassification property, which categorizes the data for privacy and compliance management. This aligns with Business Central’s recommendations for handling sensitive data in customer-related tables. TableRelation Property:

The TableRelation property links the "Receipt No." field to another table, which in this case is the "Purch. Rcpt. Header" table. This ensures that only valid receipt numbers from the Purchase Receipt Header table can be selected or entered in this field. Relation Filter:

The filter condition is applied using the where clause. It ensures that the Receipt No. is only from the Purchase Receipt Header records where the "Buy-from Vendor No." matches the "Vendor No." of the current record.

The condition field("Vendor No.") is selected from the drop-down as shown in the image. This links the vendor information in the non-conformity table to the receipt in the Purchase Receipt Header table.

By linking the "Vendor No." fields, you ensure that only receipt numbers from the correct vendor are available, which improves data consistency and reduces errors during data entry.

DRAG DROP to AL Language:

The TableRelation property is frequently used to create references between tables in Business Central. In this case, the correct relationship between the "Purch. Rcpt. Header" and the Non-conformity table is established using the TableRelation and filter. Reference Documentation:

AL TableRelation Property

AL Field Syntax


Question #10

You need to access the RoomsAPI API from the canvas app.

What should you do?

  • A . Use the default API configuration in Business Central
  • B . Enable the APIs for the Business Central online environment.
  • C . Open the Web Services page and publish the RoomsAPI page as a web service.
  • D . Include in the extension a codeunit of type Install that publishes RoomsAPI.

Reveal Solution Hide Solution

Correct Answer: D
D

Explanation:

API Publishing for Extensions:

In Business Central, when creating custom APIs like RoomsAPI, it is important to ensure that they are automatically published during the installation or upgrade of the extension.

To achieve this, you can include a codeunit of type Install in the extension that explicitly publishes the custom API (RoomsAPI) as a web service. This ensures that it is available for use immediately after the extension is deployed without requiring manual intervention. Codeunit Type:

A codeunit of type Install runs when the extension is installed or upgraded. This type of codeunit can be used to perform setup tasks such as publishing web services or APIs like RoomsAPI.

Why Not Other Options?

Option A (default API configuration): This would not automatically publish the RoomsAPI. Default APIs do not cover custom APIs.

Option B (enable APIs for the environment): Enabling APIs in Business Central allows the standard APIs to be used, but custom APIs still need to be manually published.

Option C (publish via Web Services page): This would work but requires manual intervention to publish RoomsAPI, which does not fulfill the requirement of automatic publishing during installation. Reference Documentation:

Publishing APIs in Extensions

Codeunit Types in Business Central

Question #11

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 Solution Hide Solution

Correct Answer: C
C

Explanation:

Read Scale-Out:

Read scale-out is a feature in Business Central that allows you to improve performance by distributing read-only queries (such as the ones from the ticketAPI) across multiple read replicas in the cloud database. This reduces the load on the primary database and helps improve the response time for read-intensive operations, like analyzing POS data through the ticketAPI. Data Access Intent – ReadOnly:

When enabling read scale-out, you can configure the DataAccessIntent property of APIs to be ReadOnly. This directs the system to use read replicas to handle read-only queries, which enhances performance by offloading such queries from the primary database.

Why Not Other Options?

Option A (ODataReadonlyGetEnabled): This parameter is unrelated to read scale-out and primarily affects OData services behavior, not API performance tuning.

Option B (AccessByPermission): Setting the permission to Read does not directly affect the performance. It only controls access based on user permissions.

Option D (DataAccessIntent ReadOnly): While setting this property to ReadOnly helps in read-only operations, enabling read scale-out (option C) ensures the underlying infrastructure is optimized to handle such read operations, which is the fundamental action required. Reference Documentation:

Read Scale-Out in Business Central

Data Access Intent in AL

Question #12

HOTSPOT

You need to create the configuration table and page for the non-conformity functionality.

Which table configurations should you use? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Design pattern for the setup table:

The correct selection here is Adapter. The Adapter design pattern is commonly used when you need to handle integration points or create a setup table that acts as an intermediary for data manipulation, which fits the requirement for the configuration of the non-conformity functionality.

Data type of the primary key field:

The correct data type is Code. In Business Central, when creating a table with a primary key field, the Code data type is typically used for fields such as document numbers, codes, and identifiers. For a setup table, a Code field is appropriate for keys like "No." series or setup identifiers.

Property required to prevent users from adding records:

The correct property is InitValue. This property is used to set initial values for fields and can be configured in such a way that users are prevented from adding records directly, typically enforcing control over record creation and editing in configuration scenarios.


Question #13

HOTSPOT

You need to populate the Incident Date and Status fields in the Room Incident table.

Which instructions or trigger should you use? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Instructions to use for Incident Date and Status fields:

The correct instruction is "Incident Date" := Workdate(); "Status" := Status::Open;. This ensures that

when a new record is created, the Incident Date is set to the current work date, and the Status field is

initialized to ‘Open’. This is essential for ensuring that the incident data is always timestamped and

correctly marked upon creation.

Trigger to introduce the function:

The correct trigger is Trigger OnModify. This trigger ensures that when a record is modified, such as when an update to the status is made (e.g., from Open to Closed), the necessary logic will be executed to handle the update of fields like Incident Date and Status. Step-by-Step

DRAG DROP:

Workdate Function in AL

Triggers in AL


Question #14

Topic 2, Contoso, Ltd.

Overview

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. Contoso, Ltd. uses Business Central online as the main ERP for financial. 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.

Contoso, Ltd. has the following tenant management considerations:

IT department

• The IT department requires the ability to monitor the tenant to prevent performance problems and detect possible anomalies.

• The IT department plans to use Azure Application Insights and Log Analytics to inspect the ingested telemetry signals.

• All tenant upgrades are automatically handled by Microsoft. The IT department does not check for update availability or for tenant-related notifications.

• The IT department has not configured the receipt of tenant-related notifications from the Business Central admin center.

External business partner

• The external business partner must add custom telemetry to an application created for Contoso. Ltd. to monitor a business process.

• Custom telemetry signals for the application must be visible only on the partner’s telemetry.

SOAP

• Contoso, Ltd. plans to dismiss using the SOAP protocol for integrations.

• 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.

Contoso. Ltd. plans to create a custom mobile application that has the following requirements:

• 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.

• An AL extension must be created for handling archived issues.

• Business Central development guidelines must be followed when implementing modules.

• 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 nan Postlude.

• Code modifications will be required over time.

• The Issue Management process must be split into two extensions: o ISSUE BASE: main extension

o ISSUE EXT: second extension with dependency from ISSUE BASE

• 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 Issue Total.

• 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:

field (2; Description; Text[SG])

{

DataClassificstion * CustoaerContent;



• The Issue table defined in ISSUE BASE extension contains a Clone procedure defined as follows: procedure Corte () begin end;

• In the ISSUE EXT extension, you create a table extension object of the Issue table.

• The table extension object of the Issue table must access the Issue Total: 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:

(Service Enabled]

procedure Copy (vary action Context: WebServiceActionContext) begin

end;

Contoso, Ltd. must create an API in Business Central to expose item details to the mobile application.

• The API must have the lowest possible impact on the production environment when used during working hours.

• The API must only support Get operations.

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.

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:

• The business partner will provide a REST API secured with basic authentication. Credentials to access the API will be shared with Contoso, ltd.

• The API for sending subcontracting orders must be called by sending an authenticated POST request to the given endpoint.

• 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.

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 Solution Hide Solution

Correct Answer:

Explanation:

In Business Central, when you need to handle the removal of fields and procedures to ensure that other extensions are not affected by these changes, you typically follow a two-step deprecation process. This allows other developers and users to adapt to the changes before they are fully enforced.

Here are the steps to handle the removal:

Mark as Obsolete: In the first version where the decision to remove the field or procedure is made, you set the ObsoleteState to Pending and provide an ObsoleteReason. This doesn’t remove the feature but indicates to users and developers that it will be removed in the future. This step is crucial for backward compatibility.

Removal: In a subsequent version, after users have had time to adapt to the deprecation warning, you can then remove the field or procedure or set the ObsoleteState to Removed.

Based on these guidelines, here are the three actions you should perform in sequence:

Set the Description field as ObsoleteState = Pending and ObsoleteReason = ‘Not in use’ in version 2.0.0.0.

Set the Clone procedure as ObsoleteState = Pending and ObsoleteReason = ‘Not in use’ in version 2.0.0.0.

Remove the Description field from the Issue table in version 2.0.0.1.

These steps will ensure that anyone using the Description field or Clone procedure will receive a warning about the pending deprecation before it is actually removed, thereby minimizing the impact on other extensions and providing a clear path for migration.

When handling the removal of fields and procedures in Microsoft Dynamics 365 Business Central, the process should be carried out in a way that allows other extensions or dependent features to adapt to the changes without causing immediate failures.

Set Obsolete State and Reason for Description Field (Version 2.0.0.0): The first step involves marking the Description field as obsolete by setting the ObsoleteState to ‘Pending’. This is a non-breaking change, signaling to other developers and users that the field is planned for removal in a future version. An ObsoleteReason should also be provided to explain why the field is being deprecated. Set Obsolete State and Reason for Clone Procedure (Version 2.0.0.0): Similarly, the Clone procedure should be marked as obsolete with the ObsoleteState set to ‘Pending’. This indicates that the procedure is no longer in use and will be removed in the future. Providing an ObsoleteReason is best practice as it explains the rationale behind the decision.

Remove the Description Field (Version 2.0.0.1): In the subsequent version, after the developers and users have been given time to adapt to the deprecation notice, the Description field can be safely removed from the Issue table. This is considered a breaking change, hence it is done after the field has been marked as obsolete in a previous version.

The reason for not removing the Description field and Clone procedure immediately in version 2.0.0.0 is to avoid causing runtime errors for any extensions or integrations that may depend on these components. By following this sequence, you provide a clear deprecation path that helps maintain the stability of the overall system while evolving the schema.


Question #15

You need to determine If you have unwanted incoming web service calls in your tenant during the last seven days.

Which two KQL queries should you use? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.

A)

B)

C)

D)

E)

  • A . Option A
  • B . Option B
  • C . Option C
  • D . Option D

Reveal Solution Hide Solution

Correct Answer: AC
AC

Explanation:

The task is to identify unwanted incoming web service calls during the last seven days. To do this, we

need to look at KQL (Kusto Query Language) queries that would filter out web service calls based on

the timestamp (to ensure the calls are within the last seven days) and by certain characteristics that

would indicate they are unwanted, such as the wrong type of protocol (SOAP in this case, as Contoso

Ltd. plans to dismiss using it).

Looking at the options:

Option A: This query selects all traces where the timestamp is within the last 7 days and where the custom dimension has a value of ‘RT0008’, and where the category is either ‘ODataV4’, ‘ODataV3’, or ‘Api’. This query would show all API calls except SOAP, so it does not directly answer the question about unwanted calls.

Option B: This query filters for traces with a timestamp within the last 7 days, where ‘RT0008’ is present, and specifically looks for the category ‘SOAP’. This query is correct because it directly targets SOAP calls, which are the unwanted calls according to Contoso Ltd.’s plans.

Option C: Similar to option B, this query filters for traces within the last 7 days and looks for ‘RT0008’ but uses the equality operator for the category ‘SOAP’. This would also correctly return the unwanted SOAP calls.

Option D: This query also filters for traces within the last 7 days, but it excludes the ‘ODataV4’ category, which doesn’t necessarily target the unwanted SOAP calls.

Option E: This query selects traces where the timestamp is within the last 7 days and the custom dimension has ‘RT0008’. However, it filters out categories ‘ODataV4’ and ‘Api’, which does not directly help in identifying the unwanted SOAP calls.

Therefore, the queries that should be used to determine if there are unwanted incoming web service calls (SOAP calls) in the tenant during the last seven days are Options B and

C. These queries are specific to identifying SOAP protocol usage, which is what Contoso Ltd. considers unwanted.

Question #16

You need to call the Issue API action from the mobile application.

Which action should you use?

  • A . POST/issues (88122e0e-5796-ec11-bb87-000d3a392eb5yMicrosoit.NAV.copy
  • B . PATCH /issues {88122 eOe-5796-ed 1 -bb87-000d3a392eb5)/Mkrosotl.NAV.Copy
  • C . POST /issues (88122e0e-5796-ec11 -bb87-000d3a392eb5)/Copy
  • D . POST /issues (88122e0e-5796-ec11 -bb87-000d3a392eb5)/copy
  • E . POST/issues(88122e0e-5796-ec11-bb87-000d3a392eb5)/MicrosoftNAV.Copy

Reveal Solution Hide Solution

Correct Answer: C
C

Explanation:

In the context provided by the case study, when calling an API action from a mobile application, the correct format for a POST request to an action in Business Central typically involves specifying the entity (/issues), the ID of the entity (88122e0e-5796-ec11-bb87-000d3a392eb5), and the action to be called (/Copy). The action name should match the exact name as defined in the AL code, which is case-sensitive.

Option A is incorrect because it uses a non-standard format for the action call.

Option B uses the PATCH method, which is generally used for update operations, not for calling actions.

Option C is correct as it uses the POST method, which is appropriate for calling actions, and correctly

specifies the entity, ID, and action name.

Option D is incorrect because the action name /copy is in lowercase, while AL is case-sensitive, and it should match the case exactly as defined in the code.

Option E incorrectly adds ‘MicrosoftNAV’ before the action name, which is not standard for calling actions in Business Central APIs.

Hence, the correct action to use when calling the Issue API action from the mobile application is given in Option C.

Question #17

You need to determine why the extension does not appear in the tenant.

What are two possible reasons for the disappearance? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.

  • A . The extension was published as a DEV extension.
  • B . The extension was not compatible with the new version within 60 days of the first notification.
  • C . The extension was published as PTE. and the Platform parameter was not updated in the application file.
  • D . The extension was published as PTE. and the Platform and Runtime parameters were not updated in the application file.
  • E . The extension was not compatible with the new version within 90 days of the first notification.

Reveal Solution Hide Solution

Correct Answer: BD
BD

Explanation:

In the context of Microsoft Dynamics 365 Business Central, an extension may not appear in the tenant for several reasons, particularly after an upgrade to a new major version.

Option A suggests that the extension was published as a DEV extension, which typically would not cause it to disappear after an upgrade because DEV extensions are intended for development and testing within sandbox environments.

Option B indicates that the extension was not compatible with the new version within 60 days of the first notification. This is a likely reason because Microsoft enforces compatibility rules, and extensions that are not made compatible within the specified timeframe might be removed or disabled.

Option C refers to the extension being published as a PTE (Per-Tenant Extension) and mentions the Platform parameter not being updated. This could cause issues, but not specifically the disappearance of the extension after an upgrade.

Option D expands on Option C by adding that both the Platform and Runtime parameters were not updated in the application file. This is a critical aspect because if these parameters are not correctly set to indicate compatibility with the new version of Business Central, the extension could be disabled or removed.

Option E is similar to Option B but mentions a 90-day period. This option does not align with standard Business Central practices for version compatibility requirements.

Therefore, the two possible reasons for the disappearance of the extension in the tenant after an upgrade are that the extension was not compatible with the new version within the required timeframe (Option B) and that the extension was published as a PTE without the Platform and Runtime parameters being updated (Option D).

Question #18

DRAG DROP

You need to configure telemetry for the SaaS tenant and test whether the ingested signals are displayed.

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.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

The correct sequence of actions to configure telemetry for the SaaS tenant and test whether the ingested signals are displayed would be:

Create an Azure Application Insights instance by using the Azure Portal in the Customer’s subscription.

Select the environment in the Admin Center and place the connection string in the Application Insights Connection String field.

Select the Application Insights instance, select Logs and then inspect the Traces table.

To set up telemetry for a SaaS tenant using Azure Application Insights, you need to follow these steps:

Create an Azure Application Insights instance: This is the first step where you create an instance in Azure that will collect the telemetry data. This should be done in the customer’s Azure subscription because it’s their data that you’re monitoring.

Configure the SaaS tenant to use the created Application Insights instance: This involves entering the correct connection string in the Business Central Admin Center so that telemetry data from the tenant is sent to the Application Insights instance.

Verify that telemetry is being collected: After configuring, you would check if the telemetry is arriving as expected by inspecting the Traces table in the Azure Application Insights instance. The ‘Traces’ table holds the telemetry data, which you can query to verify that the correct signals are being ingested.


Question #19

HOTSPOT

You need to create the API page according to the requirements.

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 Solution Hide Solution

Correct Answer:


Question #20

You need to determine why the debugger does not start correctly.

What is the cause of the problem?

  • A . The "userld" parameter must have the GUID of the user specified, not the username.
  • B . The "breakOnNext" parameter is not set to -WebServiceClient".
  • C . The "userld" parameter is specified, and the next user session that is specified in the ‘breakOnNext" parameter is snapshot debugged.
  • D . The "executionContext* parameter is not set to "Debug".

Reveal Solution Hide Solution

Correct Answer: A
A

Explanation:

In Microsoft Dynamics 365 Business Central, when configuring snapshot debugging, it is crucial that the parameters in the configuration file are correctly set. From the options provided, the issue with the debugger not starting correctly is most likely due to an incorrect "userId" parameter.

Option A is the cause of the problem. The "userId" parameter must be the GUID of the user, not the username. The snapshot debugger needs the exact GUID to attach to the right session for debugging. Option B is incorrect because "breakOnNext" set to "WebClient" is a valid setting. This tells the debugger to break on the next client action in the web client, which is a typical scenario.

Option C is not the cause of the problem. The "userId" parameter is meant to specify which user session to debug, and this works in conjunction with the "breakOnNext" parameter.

Option D is incorrect as the "executionContext" parameter does not need to be set to "Debug" for snapshot debugging to work. "DebugAndProfile" is a valid value for the "executionContext" parameter, as it allows for debugging and collecting performance information.

Therefore, the reason why the debugger does not start correctly is due to Option A: The "userId" parameter must have the GUID of the user specified, not the username.

Question #21

HOTSPOT

You need to write the code to call the subcontractor’s REST API.

How should you complete the code segment? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

To correctly write the code to call the subcontractor’s REST API, you would need to set the Authorization header with the base64 encoded username and password for basic authentication. The code segment indicates the use of the Base64Convert codeunit to convert the username and password to base64 format, which is then prefixed with "Basic " to form the proper Authorization header value.

The correct method to add the Authorization header to the RequestHeaders would be:

RequestHeaders.Add(‘Authorization’, ‘Basic ‘ + Base64Convert.ToBase64(Username + ‘:’ + Password));

And the correct method to set the httpContent with the body of the request would be:

httpContent.WriteFrom(Body);

These are the necessary steps to form a well-structured HTTP request for basic authentication and to include the body of the request in the API call.


Question #22

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 Solution Hide Solution

Correct Answer: B
B

Explanation:

In Business Central development using AL (the language for Business Central extensions), the use of access modifiers defines how variables and procedures are accessed within and outside of an object or codeunit.

Access Modifiers in AL:

Public: A public variable can be accessed from any object or codeunit within the same module or extension.

Protected: This restricts access to the current object and objects that inherit from the current object. However, in AL (at least in versions used for Business Central), the Protected access modifier is used with methods but not variables.

Internal: This modifier restricts the visibility to the current extension. This means that variables or methods declared as internal can only be accessed from within the same extension. This is appropriate when you want to provide functionality that is shared within the extension but not exposed externally.

Local: This restricts the variable or method to the current object or method where it is declared. It cannot be accessed from anywhere else, even within the same extension. Scenario Justification:

In the scenario for Contoso, Ltd., IssueTotal is a global variable in the ISSUE BASE extension, and the ISSUE EXT extension needs to access it. Therefore, the variable cannot be declared as Local, because this would restrict access to just the current object (or method).

Using Public would expose the variable outside of the extension, which is unnecessary because you only want other parts of the extension (specifically the ISSUE EXT extension) to have access.

The best choice in this case is Internal because it restricts access to the variable to within the same extension, which includes the base extension and any dependent extensions like ISSUE EXT. It strikes the right balance between visibility and encapsulation. Microsoft Dynamics 365 Business Central Developer

DRAG DROP:

Access Modifiers in AL: Microsoft’s documentation on AL provides the details on access modifiers, where it is specified that internal variables can be accessed within the extension, and the public variable is accessible across all extensions 【 source: Microsoft Learn on AL Programming 】 .

Best Practices for AL Development: Business Central development best practices suggest keeping variables internal unless they need to be accessed outside of the current extension 【 source: Microsoft Learn on AL development guidelines 】 .

Question #23

DRAG DROP

You need to implement the Issue Management module and expose the Postlssue method.

Which four 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: Note than one order of answer choices is correct. You will receive credit for any of the correct orders you select.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Here is the most logical sequence of actions for implementing the Issue Management module in Business Central and exposing the PostIssue method:

Correct Order:

Create a codeunit named "Issue Management Impl." and set the value of Access property to Internal. This is the first step because Issue Management Impl. is the implementation layer where the actual business logic resides, and setting it to Internal ensures that it is only accessible from within the module, following best practices in encapsulation.

Create a local procedure named PostIssueImpl in the "Issue Management Impl." codeunit.

This step adds the actual PostIssueImpl method, which contains the core logic of posting an issue. Create a codeunit named "Issue Management" and set the value of Access property to Public. After defining the implementation logic, you need to create a public-facing Issue Management codeunit to expose the service externally.

Create a PostIssue procedure in the "Issue Management" codeunit, and in it call the PostIssueImpl method.

Lastly, expose the PostIssue method in the Issue Management codeunit, which will internally call the PostIssueImpl method, completing the chain.


Question #24

HOTSPOT

You need to log an error in telemetry when the business process defined in the custom application developed for Contoso, Ltd fails.

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 Solution Hide Solution

Correct Answer:

Explanation:

Verbosity::Critical: This ensures that the telemetry logs the failure as a critical event.

DataClassification::CustomerContent: This helps classify the error as related to customer data.

TelemetryScope::All: This ensures that the error is visible across all relevant telemetry scopes, making it easier to monitor the issue in real-time.


Question #25

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 Solution Hide Solution

Correct Answer:

Explanation:

Code Segment Analysis:

The AL code is trying to read JSON data from a response and process it to extract subcontracting order numbers. It uses JsonToken, JsonObject, and JsonArray to work with the JSON data. JToken.ReadFrom(Data): This line reads the incoming JSON data and converts it into a token. It processes the full JSON body so you can start working with it.

JToken.SelectToken("results"): This line selects the part of the JSON containing the results array. The key "results" is where the JSON response data is expected to be found.

JsonArray: Once the results are extracted, they are stored as an array, and each element in the array (which is expected to contain subcontracting order numbers) is processed. SubcontractingOrderNo: The extracted order_no from the JSON is stored in this variable.

Breakdown of Steps:

JToken.ReadFrom(Data): This step reads the entire JSON response.

JToken.SelectToken("results"): This step selects the results array from the JSON response. JArray.AsArray(): This step converts the selected results token into a JSON array that can be iterated over.

GetValueAsText(JToken, ‘order_no’): This step retrieves the order_no from each element in the array.

Correct Code Completion:

JToken.ReadFrom(Data): This is the correct method to read the incoming JSON response, as it will convert the string into a JsonToken that can be further processed.

JToken.SelectToken("results"): This is the correct method to extract the results array from the token.

This method looks for the key "results" in the JSON and retrieves the relevant array.

Final Code Segment:

al

Copy code

procedure ReadJsonData(Data: text)

var

JToken: JsonToken;

JObject: JsonObject;

JArray: JsonArray;

SubcontractingOrderNo: Code[20];

begin

if Data = ” then

exit;

JToken := JToken.ReadFrom(Data); // Step 1: Read the JSON response data.

JToken := JToken.SelectToken(‘results’); // Step 2: Select the "results" array.

JArray := JToken.AsArray(); // Convert the token into a JSON array.

foreach JToken in JArray do begin

SubcontractingOrderNo := GetValueAsText(JToken, ‘order_no’); // Retrieve the order number. end;

end;

Explanation=

JToken.ReadFrom(Data): This reads the raw JSON data string and converts it into a JSON token that can be processed.

JToken.SelectToken("results"): This extracts the results array from the JSON data.

JArray.AsArray(): Converts the token into an array so we can iterate over it.

GetValueAsText(JToken, ‘order_no’): Extracts the order_no value from each item in the array.


Question #26

HOTSPOT

You need to write an Upgrade codeunit and use the DataTransfer object to handle the data upgrade.

Which solution should you use for each requirement? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Upgrade codeunit trigger: OnValidateUpgradePerDatabase

Since the question specifies that you are handling data upgrades, and you need to use validation before upgrading at the database level, the correct choice is OnValidateUpgradePerDatabase. This method ensures that the upgrade process is validated before applying to the entire database, making it more efficient when data affects multiple companies or structures. DataTransfer method to use: CopyRows

CopyRows is the appropriate method when you are handling large data transfers between tables, especially in an upgrade scenario where you are migrating or transferring data from one table to another. It copies entire rows of data and is optimal for bulk data operations during upgrades.


Question #27

Topic 3, Misc. Questions

You are developing an app that will be published to Microsoft AppSource.

The app requires code analyzers to enforce some rules. You plan to add the analyzers to the settings.json file.

You need to activate the analyzers for the project.

Which three code analyzers should you activate to develop the app for AppSource? Each correct answer presents part of the solution. NOTE: Each correct selection is worth one point.

  • A . CodeCop
  • B . UlCop
  • C . a custom rule set
  • D . PerTenantExtensionCop
  • E . AppSourceCop

Reveal Solution Hide Solution

Correct Answer: A, D, E
A, D, E

Explanation:

When developing an app for Microsoft AppSource, it is crucial to adhere to specific guidelines and standards to ensure compatibility and compliance. The three code analyzers you should activate are: CodeCop (A): This is the default analyzer for AL language extensions. It enforces the AL Coding Guidelines, ensuring that the code follows best practices for readability, maintainability, and performance. It checks for a wide range of issues, from syntax errors to best practice violations, making it essential for any AL development.

PerTenantExtensionCop (D): This analyzer is specifically designed for extensions that are intended to be installed for individual tenants. It includes rules that ensure the extension does not interfere with the per-tenant customizations and adheres to the guidelines for extensions that can be safely installed and uninstalled without affecting the underlying application.

AppSourceCop (E): This analyzer is tailored for extensions that are intended for publication on Microsoft AppSource. It enforces additional rules that are specific to AppSource submissions, such as checking for the use of reserved object ranges and ensuring that all prerequisite dependencies are correctly declared. This is crucial for ensuring that your app meets all the requirements for listing on AppSource.

By activating these three analyzers, developers can ensure their app adheres to the standards required for AppSource, as well as maintain high code quality and compatibility with Business Central.

Question #28

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 Solution Hide Solution

Correct Answer: D
D

Explanation:

When developing an app for Microsoft AppSource, it is essential to use an object range that is specifically designated by Microsoft to avoid conflicts with other apps and the base application.

The correct object range to use is:

An object range within the range of 70000000 to 74999999 that is requested from Microsoft (D): This range is reserved for AppSource apps. Developers need to request this range from Microsoft to ensure that the objects used in their extension do not conflict with those used by other extensions or by the base application. Using this reserved range helps maintain the integrity and compatibility of extensions published on AppSource.

It’s important to note that the other ranges mentioned (A, B, C, and E) are not suitable for apps intended for AppSource. Ranges 50000 to 59999 and 50000 to 99999 are typically reserved for per-tenant customizations or partner solutions, not for distribution on AppSource. The standard range 1 to 49999 is reserved for the base application objects, and using an object range divided by countries (C) is not a standard practice for AppSource apps.

Question #29

A company is deploying Business Central on-premises.

The company plans to use a single-tenant deployment architecture.

You need to describe how the data is stored and how the Business Central Server is configured.

In which two ways should you describe the single-tenant architecture? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.

  • A . Each customer has their own Business Central Server.
  • B . The application and the business data are stored in the same database.
  • C . Multiple customers share a single Business Central Server.
  • D . The application and business data are stored in separate databases.
  • E . Multiple customers share multiple Business Central Server instances.

Reveal Solution Hide Solution

Correct Answer: A, B
A, B

Explanation:

In a single-tenant deployment architecture of Business Central on-premises, the following characteristics describe how the data is stored and how the Business Central Server is configured: The application and the business data are stored in the same database (B): In a single-tenant architecture, each tenant (which typically corresponds to a single customer) has its own dedicated database. This database contains both the application objects (such as pages, reports, codeunits, etc.) and the business data (such as customer, vendor, and transaction records). This setup ensures that each tenant’s data is isolated and can be managed independently.

The application and business data are stored in separate databases (D): While (B) is a characteristic of a single-tenant deployment, it’s important to clarify that in some configurations, the application objects can be stored in a separate database from the business data. This approach can be used for easier maintenance and upgrades of the application code without affecting the business data. However, each tenant still has its own set of databases, maintaining the single-tenancy model.

The other options provided do not accurately describe a single-tenant architecture:

Each customer has their own Business Central Server (A): This statement might be misleading. In a single-tenant deployment, while each customer has their own database, they do not necessarily have their own Business Central Server instance. Multiple databases (tenants) can be hosted on a single server instance, although they are not shared across customers.

Multiple customers share a single Business Central Server (C) and Multiple customers share multiple Business Central Server instances (E): These options describe a multi-tenant architecture rather than

a single-tenant one. In a multi-tenant setup, multiple customers (tenants) can share the same server instance and even the same application database, with data isolation ensured at the application level.

Question #30

DRAG DROP

A company plans to deploy Business Central.

The company has the following deployment requirements:

• Use the company hardware architecture to run the deployment.

• Use sandbox environments to develop extensions.

• Allow tenants to connect to Shopify with the standard connector.

• Use Microsoft Power Automate to create a workflow that calls a business event.

You need to identify the deployment type for each requirement.

Which deployment types should you use? To answer, move the appropriate deployment types to the correct requirements. You may use each deployment type once, more than once, or not at all.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Use the company hardware architecture to run the deployment: On-premises

Use sandbox environments to develop extensions: Online

Allow tenants to connect to Shopify with the standard connector: Online

Use Microsoft Power Automate to create a workflow that calls a business event: Online

When deploying Microsoft Dynamics 365 Business Central, there are two main deployment types to consider: On-premises and Online.

On-premises Deployment:

The requirement to use the company’s hardware architecture implies a need for an on-premises deployment. This is because on-premises deployment allows for the application to be installed and run directly from the company’s in-house servers and computing infrastructure, giving full control over the environment and data.

Online Deployment:

The use of sandbox environments for developing extensions is a feature provided in the online version of Business Central. Sandbox environments are a part of the service offered in the cloud-based version, which allows developers to test and develop without affecting the live environment. Connection to Shopify with the standard connector implies an online deployment. The standard connector is typically a cloud-based service that allows Business Central to connect with other cloud platforms like Shopify, which is more seamlessly integrated with the online version.

Lastly, the use of Microsoft Power Automate to create a workflow that calls a business event suggests an online deployment. Power Automate is a cloud-based service designed to create automated workflows between applications and services – which aligns with the services provided by the online version of Business Central.

Therefore, each requirement aligns with the deployment types as indicated above.


Question #31

DRAG DROP

A company is examining Connect apps and Add-on apps for use with Business Central.

You need to describe the development language requirements for Connect apps and Add-on apps.

How should you describe the app language requirements? To answer, move the appropriate app types to the correct descriptions. You may use each app type once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content. NOTE: Each correct selection is worth one point.

Reveal Solution Hide Solution

Correct Answer:

Explanation:

Developed by using any coding language: Connect app

Developed by using AL language in Visual Studio Code: Add-on app

In Microsoft Dynamics 365 Business Central, there are distinct types of applications that can be developed: Connect apps and Add-on apps. Each has its own development language requirements: Connect apps:

Connect apps are designed to connect Business Central with external services or applications. They are often developed using a variety of programming languages, not limited to the AL language, and can be hosted outside of the Business Central environment. Therefore, when a description states that the app is developed using any coding language, it generally refers to a Connect app. This type of app integrates with Business Central through APIs and web services.

Add-on apps:

Add-on apps are built to extend the functionality of Business Central within the application itself. These are developed using the AL language, which is the programming language for Business Central, and they are created and managed within the Visual Studio Code environment with the AL Language extension. An Add-on app is typically a Business Central extension that is directly installed into the Business Central environment.

The language and environment used for developing these apps are key differentiators between Connect apps and Add-on apps.


Question #32

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:

• All records from TableA Header even if no matching record value exists in the linked TableA Line

• 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 Solution Hide Solution

Correct Answer:

Explanation:

Include all records from TableA Header even if no matching record value exists in the linked TableA Line: LeftOuterJoin

Include only matched records from TableB Header: InnerJoin

In SQL and similarly in Business Central when defining table relationships in query objects, the type of join determines how records from one table are combined with records from another table. Here’s what each join type means in the context of the company’s requirements: LeftOuterJoin:

A LeftOuterJoin includes all records from the ‘left’ table (TableA Header) and the matched records

from the ‘right’ table (TableA Line). If there is no match, the result is NULL on the side of the ‘right’

table. This is why it fits the requirement to include all records from TableA Header even if there is no

matching record in TableA Line.

InnerJoin:

An InnerJoin includes records when there is at least one match in both tables. So, it will only include records from TableB Header where a corresponding match is found in TableB Line. If there is no match, the records from TableB Header will not appear in the result set. This aligns with the requirement to include only matched records from TableB Header.

By using these join types, the company can ensure that their dataset includes the appropriate records from the document tables and document history tables according to their specified requirements.


Question #33

HOTSPOT

A company has a page named New Job Status connected to a source table named Job. The page has an action named Item Ledger Entries.

The company requires the following changes to the page:

• Filter the page to display only jobs with open or quote status.

• Add the following comment for internal use: This page does not include completed jobs.

• Item Ledger Entries action must open the selected job on the page and display it in the Ul for users to modify.

You need to select the property selections to use for each requirement.

Which property selections should you use? To answer, select the appropriate options in the answer area. NOTE: Each correct selection is worth one point.

Reveal Solution Hide Solution

Correct Answer:


Question #34

A company plans to meet new regulatory requirements.

The regulator has issued new tax tiers.

You need to update the base application table by using a table extension.

Which table field property can you change?

  • A . CalcFormula
  • B . DecimalPlaces
  • C . BlankZero
  • D . AutoFormatType

Reveal Solution Hide Solution

Correct Answer: B
B

Explanation:

When updating the base application table using a table extension in Microsoft Dynamics 365 Business Central, certain properties of table fields can be modified to meet new requirements, such as regulatory changes. The DecimalPlaces property (B) is one such property that can be adjusted in a table extension. This property determines the number of decimal places that are displayed and stored for decimal fields in the table. Adjusting the DecimalPlaces property can be particularly useful when dealing with financial data and tax calculations that require precision to meet new tax tiers set by a regulator. It’s important to note that not all properties can be modified in a table extension; for example, the CalcFormula property (A) cannot be changed as it affects how the field’s value is calculated, which could have significant implications on the base application’s logic.

Question #35

HOTSPOT

You have the following XML file sample for the Items list:

You plan to create the next XML file by using an XMLport object.

You need to complete the code segment to export the file in the required format

How should you complete the code segment? To answer, select the appropriate options in the answer area.

Reveal Solution Hide Solution

Correct Answer:


Exit mobile version