94 free Microsoft MB-500 practice questions from the CertStash pack of 399, each with the correct answer and a full explanation. The rule is the same for every exam: ten free on the product page, 94 free here, all 399 in the pack, and each step includes the one before it.
Get all 399 questions (US$39) · Download the first 10 as a PDF
Question 1
You are implementing Dynamics 365 Supply Chain Management for a customer. The complete solution involves an ISV product that was obtained from Microsoft AppSource. You notice that there is a significant slowdown in certain screens once the ISV product is installed. You need to determine the cause of the issue. Which Lifecycle Services (LCS) tool or functionality should you use?
Show answer and explanation
Correct answer: B. SQL Insights
SQL Insights is the LCS tool designed to analyze database performance issues and query execution, making it ideal for diagnosing slowdowns caused by ISV product installations. It provides detailed metrics on SQL Server performance, blocking queries, and resource utilization to identify bottlenecks.
Why the other options are wrong
- A. SQL Server Runtime is not an LCS diagnostic tool for performance analysis.
- C. RSAT is used for testing and validating functional scenarios, not performance diagnosis.
- D. Impact analysis reports assess code changes but don't directly diagnose runtime performance issues.
- E. Issue search is a knowledge base lookup tool, not a performance diagnostic tool.
Question 2
You are training a new Dynamics 365 Finance developer. You need to recommend where asynchronous integrations should be used instead of synchronous integrations. For which scenario should you recommend asynchronous integration?
Show answer and explanation
Correct answer: A. A retailer requires all new customer data captured at point of sale (POS) terminals through the day sent back to the system.
Asynchronous integration is appropriate when data doesn't require immediate response confirmation. POS customer data collected throughout the day can be batched and sent to the system asynchronously without disrupting point-of-sale operations, improving responsiveness and resilience.
Why the other options are wrong
- B. Gift card balance verification requires synchronous integration for immediate validation at the point of sale.
- C. Production data in near real-time scenarios requires synchronous or highly time-sensitive patterns.
- D. Inventory tracking from scanners requires synchronous integration for immediate system updates and accuracy.
Question 3
A company has a cloud-based installation of Dynamics 365 Finance. A user reports slow response times in the application when accessing the production environment. You need to diagnose the performance issue by using the Environment monitoring tool. Which two features of the Environment monitoring tool should you use? Each correct answer presents part of the solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: C, E. Health metrics; SQL insights
Health metrics provide performance indicators and system health status, while SQL insights offers detailed database query analysis and performance metrics. Together, these features comprehensively diagnose slow response times by examining both overall system health and specific database performance issues.
Why the other options are wrong
- A. System diagnostics is not a primary feature for diagnosing user-facing performance issues.
- B. Customization analysis identifies code changes but doesn't measure runtime performance impact.
- D. Availability monitoring tracks uptime and service availability, not response time performance.
Question 4
A company uses Dynamics 365 Supply Chain Management. You create a customization in a development environment. You need to create a software deployable package so that you can deploy the customization to a test environment. What are two possible ways to achieve the goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, D. In Azure DevOps, queue a build from the corresponding branch and upload the package to the asset library; In Visual Studio, create a Dynamics 365 deployment package and upload the package to the asset library.
Azure DevOps can queue builds that produce deployable packages, which are then uploaded to the asset library for deployment. Visual Studio can directly create Dynamics 365 deployment packages that contain compiled code and models, which are then uploaded to the asset library.
Why the other options are wrong
- A. Visual Studio exports projects but doesn't create deployable packages directly in this manner.
- C. Extracting models from packages is not the correct workflow for creating new deployable packages.
Question 5
A company uses Dynamics 365 Finance. You create a new form that must have the ability to open from the menu. You need to set up the form for the menu. What should you add to the menu?
Show answer and explanation
Correct answer: A. display menu item
A display menu item is the correct menu item type for opening forms. Display menu items are designed to navigate users to specific forms or reports and are the standard approach for menu-based form access in Dynamics 365.
Why the other options are wrong
- B. Menu reference is not a standard menu item type in Dynamics 365.
- C. Output menu items are used for reporting functionality, not form navigation.
- D. Action menu items perform business logic operations, not form navigation.
Question 6
You need to prepare to deploy a software deployable package to a test environment. What should you do to prepare?
Show answer and explanation
Correct answer: A. In Visual Studio, create a Dynamics 365 deployment package and upload the package to the asset library.
In Visual Studio, you create a Dynamics 365 deployment package containing your customizations and then upload it to the LCS asset library, from which it can be deployed to test environments. This is the standard workflow for preparing packages for environment deployment.
Why the other options are wrong
- B. While Azure DevOps can queue builds, uploading models rather than packages is not the correct deployment preparation method.
- C. Azure DevOps builds produce artifacts, but the standard preparation flow uses Visual Studio deployment packages uploaded directly to the asset library.
Question 7
You are training a new Dynamics 365 Finance developer. You need to recommend where asynchronous integrations should be used instead of synchronous integrations. For which scenario should you recommend asynchronous integration?
Show answer and explanation
Correct answer: C. A company uses an on-premises inventory management system that needs to receive sales order data every hour throughout the day.
An hourly batch process for inventory data is a clear asynchronous scenario where data doesn't need real-time delivery. Batch transfers occurring every hour allow the on-premises system to work independently and reliably without requiring immediate synchronous responses.
Why the other options are wrong
- A. Workflow approvals require timely notification, making synchronous or near-synchronous patterns more appropriate.
- B. Near real-time production data movement requires synchronous or high-frequency patterns.
- D. Inventory movement tracking requires synchronous integration for immediate system accuracy.
Question 8
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Mark the class as final.
Extension classes in Dynamics 365 Finance must be marked as final to prevent further extension and ensure proper behavior of the extension framework. The final modifier is mandatory for creating valid extension classes.
Why the other options are wrong
- B. Extension classes do not require the public modifier; they have specific visibility requirements but this is not the defining characteristic.
- C. File naming conventions use specific patterns but the .extension suffix is not required.
- D. Extension classes do not use the protected modifier; they use specific extension syntax instead.
Question 9
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You create a new form in a project. You need to display tabs in a vertical alignment. Solution: Apply the Operational Workspaces pattern. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The Operational Workspaces pattern is designed for workspace-based layouts and does not specifically provide vertical tab alignment. To display tabs in vertical alignment, you need a pattern that explicitly supports this layout orientation. The Operational Workspaces pattern addresses workspace organization rather than tab orientation.
Why the other options are wrong
- A. The Operational Workspaces pattern is used for workspace organization, not for controlling tab alignment to vertical orientation.
Question 10
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You create a new form in a project. You need to display tabs in a vertical alignment. Solution: Apply the Details Master pattern. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
The Details Master pattern is specifically designed to support vertical tab alignment in forms. This pattern organizes content with a master view on one side and details pane on the other, allowing tabs to be displayed vertically to organize different sections of detail information.
Why the other options are wrong
- B. The Details Master pattern directly supports vertical tab alignment as part of its design structure.
What people say about the full MB-500 pack 5.0 from 7
The MB-500 exam dumps were a lifesaver! After using these questions and answers, I felt confident enough to take the test. The matching percentage on my exam was 85%. Thank you!
MB-500 exam dumps from certstash was the best decision. I mean I had several other options but thought of choosing them after going through their demos. And now that I got my result and I scored 90% I am so so thankful to you guys! I will surely come again.
The material was well organized and had clear explanations. I took it easy and read it carefully once a day. Everything felt familiar during the exam. Great for anyone who prefers simple, clean prep.
Question 11
A company uses Dynamics 365 Finance. The company deploys a custom table named LoyaltyCustomerTable. The table has a 1:1 relationship with a table named CustTable. Both tables contain a unique field named AccountNum and share the same data. Using event handlers, all edits to CustTable are reflected within LoyaltyCustomerTable. The LoyaltyCustomerTable data is maintained by using the LoyaltyCustomerTable form. This form selects all data from both LoyaltyCustomerTable and CustTable and displays the records sorted by LoyaltyCustomerTable.AccountNum. LoyaltyCustomerTable was mistakenly created with no indexes. A significant delay occurs when users open the LoyaltyCustomerTable form. You need to improve performance by creating an index. Which method should you use?
Show answer and explanation
Correct answer: D. Create a foreign key relation on LoyaltyCustomerTable with Related Table set to CustTable and Index set to AccountIdx.
To improve performance on the LoyaltyCustomerTable form that filters and sorts by AccountNum, a foreign key relation should be created on LoyaltyCustomerTable referencing CustTable. The Index property of this foreign key should be set to AccountIdx, which is an index on the AccountNum field. This creates the necessary index on LoyaltyCustomerTable.AccountNum while establishing the relationship, enabling efficient sorting and filtering.
Why the other options are wrong
- A. Setting Index to RecId would create an index on the wrong field; sorting occurs on AccountNum, not RecId.
- B. A foreign key on CustTable referencing LoyaltyCustomerTable does not help with performance on the LoyaltyCustomerTable form.
- C. Creating an index on CustTable does not address the performance issue for sorting LoyaltyCustomerTable records.
Question 12
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify the properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: B. Create an extension for AccountBase and modify the Form Help property.
In Dynamics 365, when extending an EDT using an extension, you can modify properties like Form Help, Help Text, and other metadata properties, but you cannot change structural properties like field size. AccountBase is a Root EDT, and extensions allow property modifications that don't alter the fundamental structure. For AccountId, which derives from AccountBase, creating a derived EDT would allow structural changes like increasing field size, but decreasing it is not a supported operation. Creating an extension for AccountBase allows modification of the Form Help property, which is a valid non-structural property change.
Why the other options are wrong
- A. Extensions cannot decrease field size; structural modifications through extensions are not permitted in Dynamics 365.
- C. While derived EDTs can increase field size, AccountId derives from AccountBase, making this a valid technical option, but extensions are the appropriate mechanism for the given scenario.
- D. Derived EDTs cannot be created from Root EDTs in the standard way; derived EDTs are created from existing EDTs, and structural modifications to root EDTs require extensions rather than derivation.
Question 13
A company uses Dynamics 365 Finance. The company requires that a custom field named ExternalCustomerId on the table CustTable be added to an index to enhance performance. You need to create the index. Which field should you include in the index?
Show answer and explanation
Correct answer: B. CustTable.ExternalCustomerId
When creating an index to enhance performance on a custom field like ExternalCustomerId, that field must be explicitly included in the index. An index should contain the field you intend to query or filter by. Including only RecId or AccountNum would not improve performance for queries filtering on ExternalCustomerId.
Why the other options are wrong
- A. While AccountNum is a key field in CustTable, it would not optimize queries on ExternalCustomerId.
- C. RecId is automatically included in all indexes and should not be explicitly added; including it does not enhance performance for ExternalCustomerId queries.
Question 14
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are adding a new field to the SalesTable form. You must use an extension to add a status field onto the form. You need to create the extension in the Application Object Tree (AOT) and add the extension to the demoExtensions model. Solution: Navigate to the user interface forms section for the SalesTable form and create an extension. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
To add a field to a form using an extension in Dynamics 365 Finance, you navigate to the forms section in the AOT and create an extension of the existing form. This approach allows you to extend the SalesTable form without modifying the base object, which is the proper extensibility pattern. The extension can then be added to the demoExtensions model as required.
Question 15
You create an extension for the InventTable table. Which two field properties can you modify in the extension? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, D. Allow Edit; Label
In a table field extension for InventTable, you can modify Allow Edit to control whether users can edit the field, and Label to provide a user-friendly display name for the field. These properties control field behavior and presentation and are extensible without affecting the base table definition.
Why the other options are wrong
- B. Extended Data Type is locked at the base field level and cannot be changed in an extension, as it defines the fundamental data type of the field.
- C. Visible is a property that is typically locked and cannot be modified in a field extension to maintain data model consistency.
Question 16
Accompany is implementing Dynamics 365 Supply Chain Management. A developer creates a new form in Visual Studio. The developer must conduct manual unit testing on the functionality of the form before releasing it for functional testing by non-developers. You need to preview the new form to conduct manual unit testing. Which action should you conduct first on the form object?
Show answer and explanation
Correct answer: C. Set as Startup Object
Before conducting manual unit testing and previewing a form, you must set it as the Startup Object. This designates the form as the entry point for execution when you run the project from Visual Studio. Setting the Startup Object allows you to immediately preview and test the form's functionality without additional navigation steps.
Why the other options are wrong
- A. Performance Profiler is used after testing to analyze performance, not before previewing.
- B. Debug is used during testing to step through code, not as the first action to preview a form.
- D. Attach to process is used for debugging running applications, not for initial form preview.
- E. Scope to this is a filter option in debugging tools, not relevant to previewing a form.
Question 17
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are developing a form for Dynamics 365 Finance. You need to add a button that allows users to run a report. Solution: Create an action menu item. Add the action menu item to the form button and then link the report to the action menu item. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Action menu items are intended to run classes that perform business logic, not to launch reports. Reports are exposed through output menu items, so linking the report to an action menu item is not the correct solution.
Why the other options are wrong
- A. Reports are run through output menu items, so using an action menu item does not meet the goal.
Question 18
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You must extend the class SalesLineType and add a new method that returns the day of week for the system's current date as an integer value. You need to create a class that extends SalesLineType and adds the new method. Solution: You create the following code: Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The solution does not meet the goal because the code uses `dayOfWk(systemDateGet())` which calls a method `dayOfWk()` that is not defined in the extension class. The method signature required is to return the day of week as an integer value for the system's current date, but the implementation relies on an undefined `dayOfWk()` method. Additionally, the extension class lacks proper encapsulation, it does not demonstrate a complete, self-contained solution that would reliably work without external dependencies or undefined method calls. A proper solution would need to either define the `dayOfWk()` method within the extension class or use a built-in function that reliably returns the day of week as an integer.
Why the other options are wrong
- A. The code is incomplete and references an undefined method `dayOfWk()`, making it a non-functional solution that does not meet the stated requirements.
Question 19
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. A company uses Dynamics 365 finance and operations apps. You have a custom enumeration named CarType. The enumeration has the following elements: Sedan, SUV. You must extend CarType and add a new element named MUV to CarType. You need to develop a solution that meets the requirements. Solution: Set the is Extensible property to false for the CarType enumeration. Create a new enumeration to add the MUV element. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The solution does not meet the goal. Setting the IsExtensible property to false explicitly prevents the enumeration from being extended. Creating a new separate enumeration is not the same as extending the CarType enumeration with a new element; it creates an unrelated enumeration. To successfully extend CarType and add the MUV element, IsExtensible must be set to true.
Why the other options are wrong
- A. Setting IsExtensible to false prevents extension, making this solution incorrect.
Question 20
You have a table in which multiple properties must be changed. Multiple table properties are locked down at the base table and must not be overwritten. You need to modify the table properties by extending the table. Which table property can you populate in a table extension by using the property sheet?
Show answer and explanation
Correct answer: A. Created by
Table extensions allow only a small set of table properties to be changed, including the audit properties such as Created by. Created by can be set in the extension property sheet, while structural and data partitioning properties stay locked on the base table.
Why the other options are wrong
- B. The clustered index is defined on the base table and cannot be changed in a table extension.
- C. Configuration key is locked on the base table and cannot be set in a table extension.
- D. Save data per company is locked on the base table because changing it would alter how data is stored.
Question 21
You are a Dynamics 365 Finance developer. You make changes to an existing custom class. The code comparison tool shows version conflicts between your version and the latest checked-in version of the custom class. In Visual Studio, you open the Source Control Explorer. You locate the latest changeset for the class and you open the changeset in Team Explorer. You need to compare the latest code that is in source control with the code that you created. Which option should you use?
Show answer and explanation
Correct answer: D. Compare with Latest Version
When you have opened a changeset in Team Explorer and need to compare your current workspace code with the latest checked-in version in source control, you use 'Compare with Latest Version'. This option directly compares your modified code against the most recent version that exists in the repository, helping you identify conflicts and differences.
Why the other options are wrong
- A. Compare with Workspace Version would compare against your local workspace, not the latest version in source control.
- B. Compare with Previous Version shows the prior changeset, not the latest version currently in the repository.
- C. View History displays the change history but does not perform a direct code comparison.
Question 22
A company uses Dynamics 365 Finance. You are performing a code review for several segments of code that use the Boolean data type. You need to validate the segments for the correct X++ structure. Which two code statements will compile? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, C. boolean exprValue; exprValue = (8*6 == 48);; boolean exprValue; exprValue = (8*6 == 48) ? 1:0;
Both statements A and C compile correctly. Statement A assigns a boolean expression result directly to the boolean variable. Statement C uses a ternary operator that returns integers 1 and 0, which are implicitly converted to boolean values true and false respectively.
Why the other options are wrong
- B. Comparing an integer with a string literal '48' is a type mismatch, and Yes/No are not valid boolean values in X++.
- D. Comparing an integer with a string literal '48' is a type mismatch that will fail compilation.
Question 23
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify the properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and increase the field size.
In Dynamics 365, when extending an EDT (Extended Data Type), you can increase the field size through an extension because extensions allow additive changes that are backward compatible. AccountBase is a root EDT, and creating an extension for it permits increasing its field size property. Decreasing field size is not possible with extensions as it would break backward compatibility. Derived EDTs inherit from their parent EDT but cannot override the parent's field size to a larger value, the derived type is constrained by its parent. Since AccountId derives from AccountBase, a derived EDT from AccountId is further constrained and cannot increase beyond AccountBase's size.
Why the other options are wrong
- A. Extensions cannot decrease field size as this violates backward compatibility and would corrupt existing data.
- B. A derived EDT cannot increase field size beyond its parent EDT (AccountBase), as it inherits the parent's constraints.
- C. A derived EDT from AccountId (which itself derives from AccountBase) cannot increase field size beyond AccountBase's defined size.
Question 24
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and increase the field size.
In Dynamics 365 Finance, extensions allow you to modify properties of root EDTs (Extended Data Types) like AccountBase. When creating an extension for a root EDT, you can increase the field size, which is a backward-compatible operation that doesn't break existing functionality. Creating derived EDTs or extensions on AccountId (which derives from AccountBase) and decreasing field size is not possible, as decreasing field size on any EDT is not a supported operation due to data loss risks. Extensions on derived EDTs are also more restrictive than on root EDTs.
Why the other options are wrong
- A. You cannot decrease field size on a derived EDT; field size reduction is not supported as it causes data loss.
- B. Extensions on AccountId (a derived EDT) have more restrictions than on root EDTs; you cannot increase field size on derived EDT extensions.
- C. Decreasing field size is never a supported operation on any EDT extension due to potential data loss.
Question 25
You are a Dynamics 365 Finance developer. You are testing a workflow in a user acceptance testing environment. You need to ensure that a specific user can accept purchase requisitions only if the requisition is in a specific status. Which two options can you configure to achieve the goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, C. approval process; conditional decision
To ensure a user can accept purchase requisitions only in a specific status, you can use an approval process (option B), which can be configured with conditions to check the requisition status before allowing approval, or a conditional decision (option C), which explicitly evaluates whether the requisition meets the required status before routing to the user. Both provide the conditional logic needed to enforce status-based requirements.
Why the other options are wrong
- A. Manual decision allows a user to choose a path but does not automatically enforce status conditions.
- D. Automated task performs actions without user intervention and cannot restrict user actions based on conditions.
- E. Manual task is a simple work assignment and does not provide conditional status checking capabilities.
Question 26
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify the properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: C. Create an extension for AccountBase and modify the Form Help property.
In Dynamics 365, AccountBase is the root EDT and AccountId derives from it. Extensions allow modification of properties like Form Help without changing the base definition, making them the appropriate tool for non-structural changes. Derivations create new EDTs but cannot increase field size beyond the parent's constraints, and you cannot create extensions for derived EDTs (only root EDTs), making extension of AccountBase the only viable operation that achieves the stated goal of modifying properties.
Why the other options are wrong
- A. You cannot create a derived EDT for AccountId because it is already a derived EDT, not a root EDT.
- B. Extensions cannot be created for AccountId since it is a derived EDT; only root EDTs can be extended.
- D. Derivations from AccountBase do not allow increasing field size beyond the parent's constraints and do not modify the parent properties.
Question 27
A company is using Dynamics 365 finance and operations apps. A user reports that a custom report does not provide the expected results. After updating the report, you receive an alert that there are conflicting changes to the report when checking it in to source control. You need to troubleshoot the cause of the conflict. What are two causes of the conflict? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, C. A developer rolled back the changeset at the same time you were working on the report; You did not perform a Get Latest Version from source control prior to working on the report.
Conflicts occur when another developer rolls back a changeset affecting the same report, and when you fail to get the latest version before making changes. Both scenarios create situations where your local changes diverge from the repository state. Getting the latest version would prevent conflicts, and rollbacks by others directly cause conflicts on modified objects.
Why the other options are wrong
- A. Creating annotations on prior versions does not cause check-in conflicts; annotations are metadata that don't trigger conflict detection.
- D. A code review request and approval do not inherently cause conflicts unless the changeset is rolled back.
- E. While shelvesets represent pending changes, they do not automatically create conflicts during check-in unless explicitly merged with conflicting changes.
Question 28
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Mark the class as final.
When creating an extension class in X++, the class must be marked as final. This prevents further extension and ensures the extension class wraps the original class appropriately in the Chain of Command pattern.
Why the other options are wrong
- B. The class buffer is not added as a parameter; extension classes use Chain of Command syntax without explicit parameters.
- C. Extension classes do not require a specific file naming convention with '.extension' suffix.
- D. Public accessibility is not a requirement for extension class creation.
Question 29
You are a Dynamics 365 Finance developer. You have a table named FMVehicle that contains a field named VehicleId. The table has an index named VehicleIdIdx on the VehicleId field. You declare a table buffer named vehicle to refer to the table. You need to select all records from the FMVehicle table in ascending order based on VehicleId field in the vehicle variable. Which embedded-SQL statement should you use?
Show answer and explanation
Correct answer: B. select vehicle order by VehicleId;
In X++ embedded SQL, 'select vehicle order by VehicleId;' sorts by the VehicleId field in ascending order by default. When using order by with a field name, ascending is the default sort direction.
Why the other options are wrong
- A. The desc keyword sorts in descending order, not ascending as required.
- C. Index names are used with the index keyword, not with order by; order by requires field names.
- D. Selecting only VehicleId from vehicle retrieves only that field, not all records as required.
Question 30
You add a new field in an extension to the SalesTable table in Dynamics 365 Finance. You must test the field in the SalesTable form to ensure that you can enter data from the UI. When you open the form in the browser, you receive a SQL error. You need to resolve the issue. What should you do?
Show answer and explanation
Correct answer: D. Synchronize the database.
When a new field is added in an extension to a table, the database schema must be synchronized with the application metadata before the field becomes accessible. A SQL error when accessing the new field indicates a schema mismatch. Synchronizing the database will apply the new field definition to the physical database tables, resolving the error.
Why the other options are wrong
- A. Restarting SQL Server service does not synchronize metadata with the database schema.
- B. Building the solution compiles the code but does not synchronize the database schema.
- C. Restarting IIS clears application state but does not sync the database structure.
Question 31
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify the properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and increase the field size.
In Dynamics 365, when creating an extension for a root EDT like AccountBase, you can increase the field size because extensions allow additive changes to the base type's properties. Decreasing field size is not possible as it would break backward compatibility and could cause data loss. For derived EDTs like AccountId, you cannot use extensions to modify properties; derived types have fixed relationships to their parent type. Option D is correct because extending AccountBase with an increased field size is a supported operation that maintains backward compatibility.
Why the other options are wrong
- A. Extensions for root EDTs cannot decrease field size, as this breaks backward compatibility and risks data loss.
- B. Derived EDTs like AccountId cannot be extended; they inherit fixed properties from their parent type and modifications would violate that inheritance model.
- C. AccountId is a derived EDT (not a root type), so extensions cannot be created for it, and decreasing size would be invalid regardless.
Question 32
A company uses Dynamics 365 Finance. You implement an abstract class named Car. The Car class has the following: • A real member called weight that is used to store the weight of the car. • An abstract getWeight method that returns the value of the weight member. The Car class code is: You must create a child class named BigCar. You need to implement the Car class by using the BigCar child class. Which code segment should you use?
Show answer and explanation
Correct answer: A. class BigCar extends Car { void new(real _weight) { weight = _weight; } public real getweight() { return weight; }}
In X++ (Dynamics 365 Finance programming language), abstract classes are extended using the 'extends' keyword, not 'implements' or ':' syntax. Option A correctly uses 'class BigCar extends Car' to inherit from the abstract Car class, provides a constructor to initialize the weight member, and implements the abstract getWeight() method with the correct signature. The method must be public to override the abstract method, and it returns the weight value as required.
Why the other options are wrong
- B. Uses 'implements' which is incorrect for class inheritance in X++; implements is used for interfaces, not abstract classes.
- C. While it uses correct 'extends' syntax, it omits the constructor needed to initialize the weight member, making it incomplete.
- D. Uses ':' syntax which is not valid X++ syntax for class inheritance; X++ requires the 'extends' keyword.
Question 33
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and increase the field size.
In Dynamics 365, when creating an extension for an EDT, you can increase field size properties because extensions allow additive modifications that maintain backward compatibility. Creating an extension for AccountBase (the root EDT) and increasing the field size is a supported operation. Decreasing field size is not possible with extensions as it would break existing data and compatibility. Derived EDTs inherit from their parent and cannot decrease size constraints. Extensions are the mechanism for safely extending root EDTs with compatible property changes like increasing field sizes.
Why the other options are wrong
- A. Extensions cannot decrease field size; this would violate backward compatibility and risk data loss.
- B. Derived EDTs inherit size constraints from their parent and cannot increase beyond the parent's field size limits.
- C. AccountId derives from AccountBase, so decreasing its field size would violate inheritance constraints and break compatibility.
Question 34
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are developing a form for Dynamics 365 Finance. You need to add a button that allows users to run a report. Solution: Create an output menu item. Add the output menu item to the form button and then link the report to the output menu item. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Creating an output menu item and linking it to a form button does not correctly enable report execution. Output menu items are designed for managing report output destinations and routing, not for triggering report runs from form buttons.
Why the other options are wrong
- A. This approach does not meet the goal because output menu items are not designed for report execution triggering.
Question 35
You are a Dynamics 365 Finance developer. You have a solution that records product weights. You must store up to four decimals of precision by using a standard Extended Data Type (EDT). You need to add the field in a new table. Which EDT should you extend?
Show answer and explanation
Correct answer: D. WeightBase
WeightBase is the standard EDT designed for weight storage with support for up to four decimal places of precision. This EDT is specifically created to handle weight measurements with the required level of precision.
Why the other options are wrong
- A. AmountMST is used for monetary amounts and currency values, not for physical weights.
- B. MarkupValue is designed for percentage or markup calculations, not weight measurements.
- C. Weight may not provide the necessary decimal precision requirements for this scenario.
Question 36
You are a Dynamics 365 Finance developer. You have a table named FMVehicle that contains a field named VehicleId. The table has an index named VehicleIdIdx on the VehicleId field. You declare a table buffer named vehicle to refer to the table. You need to select all records from the FMVehicle table in ascending order based on VehicleId field in the vehicle variable. Which embedded-SQL statement should you use?
Show answer and explanation
Correct answer: D. select vehicle index VehicleIdIdx;
The correct syntax to select records using an index in X++ is 'select vehicle index VehicleIdIdx;'. This directs the query optimizer to use the specified index for optimal performance and returns records in the order defined by that index.
Why the other options are wrong
- A. Order by should not reference the index name; it should reference the field name, and desc would give descending order not ascending.
- B. The syntax 'index VehicleId' is incorrect; the index name should be used instead of the field name.
- C. Using order by desc would retrieve records in descending order, not ascending as required.
Question 37
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution. Determine whether the solution meets the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are developing a form for Dynamics 365 Finance. You need to add a button that allows users to run a report. Solution: Create a command button and link the button to the report by using the button's object property. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Linking a button to a report using the button's object property is not the correct approach in Dynamics 365 Finance. Instead, buttons should use the clicked event handler or delegate handler to programmatically call the report using the Report class or SrsReportRun class. The object property on a button is not designed to directly link to reports, so this solution does not meet the goal of allowing users to run a report.
Question 38
You need to prepare to deploy a software deployable package to a test environment. What are two possible ways to achieve the goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: C, D. In Azure DevOps, queue a build from the corresponding branch and upload the package to the asset library; In Visual Studio, create a Dynamics 365 deployment package and upload the package to the asset library.
To prepare a software deployable package for test environment deployment, you can either create a Dynamics 365 deployment package in Visual Studio and upload it to the asset library, or queue a build from Azure DevOps and upload the resulting package to the asset library. Both approaches result in a deployable package stored in the asset library for test deployment.
Why the other options are wrong
- A. Exporting a project and uploading it to the asset library does not create a deployable package suitable for deployment.
- B. While Azure DevOps can queue a build, uploading a model to the asset library is not the correct deployment artifact; a package must be uploaded instead.
Question 39
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. A company uses Dynamics 365 finance and operations apps. You have a custom enumeration named CarType. The enumeration has the following elements: Sedan, SUV. You must extend CarType and add a new element named MUV to CarType. You need to develop a solution that meets the requirements. Solution: Set the is Extensible property to true for the CarType enumeration. Create an extension for the CarType base enumeration to add the MUV element. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
To extend an enumeration in Dynamics 365 Finance and Operations, you must first set the IsExtensible property to true on the base enumeration. This allows the enumeration to be extended. Once enabled, you create an extension for the CarType enumeration to add the new MUV element. This is the standard approach for extending enumerations without modifying the original artifact.
Why the other options are wrong
- B. Setting IsExtensible to true and creating an extension is the correct procedure; the solution does meet the goal.
Question 40
You create a new interface class in Dynamics 365 Finance. The class has two methods. You need to create a valid interface class. Which two actions should you perform? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, D. Declare the class and all its methods as public; Declare all methods in the classes that implement the interface.
To create a valid interface class in Dynamics 365 Finance, the class and all its methods must be declared as public (option A). Additionally, any class that implements the interface must declare and implement all methods defined in the interface (option D). An interface defines a contract that implementing classes must fulfill completely.
Why the other options are wrong
- B. Implementing only some methods violates the interface contract; all methods must be implemented.
- C. Interfaces themselves are declared as public abstract, but this is implicit in Dynamics 365; the focus is on how implementing classes handle methods.
Question 41
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are adding a new field to the SalesTable form. You must use an extension to add a status field onto the form. You need to create the extension in the Application Object Tree (AOT) and add the extension to the demoExtensions model. Solution: Add a new form object to the project and name the form SalesTable.Extension. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Adding a new form object named SalesTable.Extension does not create a proper form extension. In Dynamics 365 Finance, form extensions are created through Visual Studio by right-clicking an existing form and selecting Create Extension, which generates the proper extension structure. Simply creating a new form object with a naming convention does not establish it as an actual extension of the SalesTable form and does not provide the extension functionality required.
Question 42
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Mark the class as final.
To create an extension class in Dynamics 365 Finance, you mark the class as final. This prevents further extension of the extension class itself and is the correct design pattern for creating classes intended as extensions to existing functionality.
Why the other options are wrong
- B. Adding the class buffer as the first parameter is not a requirement for creating extension classes.
- C. Marking the class as protected would restrict access to the class, which is inappropriate for extension class design.
- D. While public visibility may be needed, the critical requirement for extension classes is marking them as final to establish proper extension boundaries.
Question 43
A company uses Dynamics 365 Finance. You must add fields to a standard Dynamics 365 Finance form by using Visual Studio. You need to create an extension for the form. What should you do?
Show answer and explanation
Correct answer: C. Create an extension of the standard form in the AOT and add it to the project.
To add fields to a standard Dynamics 365 Finance form using Visual Studio, you must create an extension of the standard form in the AOT and add it to the project. This is the extension-based customization approach required by Dynamics 365, which allows you to extend standard forms without modifying the original. Extensions are added to the project and then can be modified with new fields through the property sheet.
Why the other options are wrong
- A. Dragging a form from Application Explorer to the project does not create an extension; it creates a copy of the form rather than an extension.
- B. Creating a class that extends a form is not the correct approach; forms are extended through AOT extensions, not class inheritance.
- D. Adding the form directly to the project and modifying it directly violates the extension framework and creates an overlay, which is not supported in modern Dynamics 365.
Question 44
You create a new class. Class compilation must fail if a specific method in the source code is called. You need to mark the class with the appropriate attribute. Which attribute should you use?
Show answer and explanation
Correct answer: C. SysObsoleteAttribute
The SysObsoleteAttribute marks a class or method as obsolete, causing the compiler to fail if the marked element is called. This prevents inadvertent use of deprecated code during compilation.
Why the other options are wrong
- A. SysAppSecurityAttribute controls application security permissions, not compilation failures for method calls.
- B. SysTestCategory is used to categorize test methods, not to control compilation behavior.
- D. SysAttribute is a base class, not a specific attribute for marking obsolescence.
Question 45
You are a Dynamics 365 Finance developer. You have a form that displays customer records by using a listpage control. You must add related sales total information for the selected customer to the form. You need to display the required related sales total information. What should you add to the form?
Show answer and explanation
Correct answer: C. a factbox
A factbox is the appropriate control to add to a form to display related information for the selected record. Factboxes are designed specifically to show supplementary data alongside the main form content, making them ideal for displaying related sales total information for a selected customer in a listpage form.
Why the other options are wrong
- A. A custom lookup is used for field value selection, not for displaying related summary information.
- B. A tile is used for navigation and dashboard-like displays, not for showing related detailed information.
- D. An external feed displays external content sources, not related transactional data like sales totals.
- E. A quick filter is used for filtering form data, not for displaying related summary information.
Question 46
A company is implementing Dynamics 365 Finance. You must add custom logic before and after the following methods to extend the functionality by using Chain of Command. You need to implement the development components that will allow the desired functionality. Which two methods can you extend? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, E. protected static void method3(...) {...}; public static void method1(...) {...}
Chain of Command in Dynamics 365 allows you to extend methods by wrapping them with custom logic before and after execution. Methods must be public or protected to be extendable, and they cannot have Hookable(false) or Wrappable(false) attributes which explicitly disable extension. Method1 (public static) and Method3 (protected static) meet these requirements. Method2 is private and cannot be extended. Method4 has [Hookable(false)] which disables Chain of Command. Method5 has [Wrappable(false)] which prevents wrapping/extension.
Why the other options are wrong
- B. Method4 has [Hookable(false)] attribute which explicitly disables Chain of Command extension capability.
- C. Method5 has [Wrappable(false)] attribute which explicitly prevents method wrapping and extension.
- D. Method2 is private, and private methods cannot be extended using Chain of Command regardless of other attributes.
Question 47
You are a Dynamics 365 Finance developer. You create an integer variable named totalSales. You need to display the value from totalSales in an info statement. Which three code segments can you use? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, C, D. info(int2str(totalSales));; info(any2str(totalSales));; info(strfmt("%1", totalSales));
Three methods convert an integer to string for display in an info statement: int2str() explicitly converts integers to strings, any2str() converts any type to string, and strfmt() with a format specifier formats the integer as a string.
Why the other options are wrong
- B. The info() function requires a string parameter; passing an integer directly will cause a compilation error.
- E. strLine() is used for string manipulation of existing strings, not for converting integers to strings.
Question 48
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. A company uses Dynamics 365 finance and operations apps. You have a custom enumeration named CarType. The enumeration has the following elements: Sedan, SUV. You must extend CarType and add a new element named MUV to CarType. You need to develop a solution that meets the requirements. Solution: Set the is Extensible property to true for the CarType enumeration. Create a new enumeration to add the MUV element. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Setting IsExtensible to true is correct, but the MUV element must then be added in an enum extension of CarType. Creating a new, separate enumeration does not add an element to CarType, so the solution does not meet the goal.
Why the other options are wrong
- A. A new enumeration is a different type, so MUV would not become an element of CarType.
Question 49
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You create a new form in a project. You need to display tabs in a vertical alignment. Solution: Apply the Simple List pattern. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The Simple List pattern is designed for displaying simple list layouts and does not provide functionality for vertical tab alignment. This pattern focuses on list presentation rather than tab organization and layout control.
Why the other options are wrong
- A. The Simple List pattern does not support vertical tab alignment; it is designed for list display purposes only.
Question 50
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are adding a new field to the SalesTable form. You must use an extension to add a status field onto the form. You need to create the extension in the Application Object Tree (AOT) and add the extension to the demoExtensions model. Solution: Navigate to the user interface forms section for the SalesTable form and create a customization. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Creating a customization rather than an extension does not meet the stated goal. The requirement explicitly states that an extension must be used. Customizations modify the base object directly, whereas extensions layer changes on top without altering the original definition. Since the task specifically requires an extension approach within the demoExtensions model, using customization is incorrect.
Question 51
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify the properties of the Edits by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and increase the field size.
In Dynamics 365, when working with Extended Data Types (EDTs), extensions allow you to augment existing EDTs with additional properties and changes, while derived EDTs create new types based on parent EDTs. The key constraint is that field sizes can only be increased, never decreased, regardless of whether you're using extensions or derivations. AccountBase is a root EDT, and creating an extension for it allows you to increase its field size, which is a valid operation. Decreasing field sizes is not permitted as it could break existing data and dependent objects. Derived EDTs (option B and C) inherit from their parent EDT (AccountId derives from AccountBase), and while you can increase size in a derived EDT, extensions provide the direct modification capability for the root EDT itself.
Why the other options are wrong
- A. Extensions cannot decrease field size; only increases are permitted to avoid data loss and maintain backward compatibility.
- B. Decreasing field size in any EDT (extension or derived) violates Dynamics 365 constraints that prevent size reductions.
- C. While a derived EDT can increase field size, the question specifically asks about the root AccountBase EDT, and extensions are the appropriate mechanism for modifying it.
Question 52
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You have an enumeration named truckStatus that has the following statuses: • Empty • Loaded • Completed You have the following code: You need to extend this enumeration and add the following statuses to the enumeration: Quarantine, InTransit. You must then modify code that validates the switch statement. Solution: Add a post handler to the method that checks the enumeration and logic for your new enumeration values using a range comparison for your new values. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The solution is inadequate because adding a post-handler with range comparison logic does not properly extend the enumeration itself. The question requires two distinct actions: (1) extending the TruckStatus enumeration to include Quarantine and InTransit values, and (2) modifying the switch statement to handle these new values. The proposed solution only addresses validation logic in a post-handler using range comparison, but fails to actually add the new enumeration values to the TruckStatus enum definition. Additionally, using range comparison on enumeration values is inefficient and error-prone compared to adding explicit case statements for the new enum values in the switch statement. A proper solution would add Quarantine and InTransit as new cases in the switch statement itself, ensuring type safety and comprehensive handling of all enumeration states.
Why the other options are wrong
- A. The solution does not extend the enumeration itself and does not properly modify the switch statement with explicit cases for new values.
Question 53
You need to prepare to deploy a software deployable package to a test environment. What should you do to prepare?
Show answer and explanation
Correct answer: A. In Azure DevOps, queue a build from the corresponding branch and upload the package to the asset library.
To prepare a software deployable package for deployment to a test environment, you queue a build from the corresponding branch in Azure DevOps, which compiles the code and generates the deployable package. This package is then uploaded to the asset library in Lifecycle Services, where it can be selected and deployed to test environments. This is the standard process for preparing packages in the Dynamics 365 build and deployment pipeline.
Why the other options are wrong
- B. Visual Studio is used for development, not for uploading packages to the asset library; packages must be built through Azure DevOps pipelines.
- C. While queuing a build in Azure DevOps is correct, uploading the model (rather than the package) to the asset library is incorrect; the deployable package is what gets uploaded.
Question 54
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are adding a new field to the SalesTable form. You must use an extension to add a status field onto the form. You need to create the extension in the Application Object Tree (AOT) and add the extension to the demoExtensions model. Solution: Navigate to the user interface forms node for the SalesTable form and modify the form. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
Adding a field using an extension requires creating a form extension object in the AOT, not modifying the form directly. Direct modification of the original form violates extension principles and does not properly implement the extension pattern in the demoExtensions model.
Why the other options are wrong
- A. Modifying the original form directly does not meet the requirement to create an extension; extensions must be separate objects that augment the base form.
Question 55
You add a field to the SalesTable table by using an extension. You need to ensure that the new field is available for use in forms, reports, and code. What are three possible ways to achieve this goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, D, E. Navigate to the Dynamics 365 menu and select Synchronize database; Set the project property for Synchronize database on build to true and build the solution; Right-click the project and select Synchronize with database.
When adding a field to a table via extension in Dynamics 365 Finance, the database schema must be synchronized to make the field available. Option B (Dynamics 365 menu Synchronize database) directly synchronizes the database from the main menu. Option D (setting Synchronize database on build to true) automatically synchronizes during build operations. Option E (right-click project and Synchronize with database) synchronizes the specific project context. These three methods ensure the new field becomes available across forms, reports, and code. Options A and C reference synchronizing the table or solution directly, which are not the standard procedures for making extended fields available.
Why the other options are wrong
- A. Right-clicking the table and selecting Synchronize is not a standard option in modern Dynamics 365 development; synchronization happens at the database or project level.
- C. Right-clicking a solution and selecting Synchronize with database is not the correct workflow for extensions in Dynamics 365 Finance.
Question 56
A company plans to integrate Dynamics 365 finance and operations apps with an external application. The apps must send each vendor's name and address in a single field to the external application. You need to add a computed field to meet the requirement. What should you do?
Show answer and explanation
Correct answer: B. Create an extension of VendVendorV2Entity, select New, and then select Siting Unmapped Field.
To add a computed field to a data entity for integration purposes, you create an extension of the data entity (VendVendorV2Entity), select New, and then select Unmapped Field. This allows you to define a computed field that combines vendor name and address into a single field for external application consumption without modifying the underlying table.
Why the other options are wrong
- A. Creating a display method on the table extension would not expose the field through the data entity for external integration.
- C. A Mapped Field is used to map existing table fields to entity fields; for a computed field, you need an Unmapped Field that calculates its value.
Question 57
A company uses Dynamics 365 Supply Chain Management. You need to list all classes in the Application Suite model that contain a crosscompany query. Which query string should you use?
Show answer and explanation
Correct answer: C. type:class code:"crosscompany” model:"Application Suite"
The correct query string syntax to search for classes containing 'crosscompany' code in the Application Suite model is 'type:class code:"crosscompany" model:"Application Suite"'. This filters by type, searches the code content, and specifies the model without unnecessary method or table specifications.
Why the other options are wrong
- A. Adding 'method name=run' restricts the search unnecessarily to only the run method when crosscompany queries can appear in any method.
- B. Using 'table' instead of just 'code' is incorrect syntax for the search query.
- D. Adding 'method name=insert' restricts the search unnecessarily to only the insert method.
Question 58
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are developing a form for Dynamics 365 Finance. You need to add a button that allows users to run a report. Solution: Create a display menu item. Add the menu display item to the form button and then link the report to the display menu item. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
A display menu item is designed to open forms and views for data display, not to execute reports. Display menu items do not trigger report execution, making this solution ineffective for the stated goal.
Why the other options are wrong
- A. Display menu items are not the appropriate menu item type for running reports from form buttons.
Question 59
You are training a new Dynamics 365 Finance developer. You need to explain the relationships between models, packages, and projects to the new hire. Which three design concepts should you explain? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, D, E. A model is a group or collection of elements that constitute a distributable software solution; A model is a design time concept; A package is a deployment unit that may contain one or more models.
A model is a collection of elements that form a distributable software solution (design-time concept). A package is a deployment unit containing one or more models. These represent the correct design concept hierarchy: projects are development containers, models are design-time logical groupings, and packages are runtime deployment units.
Why the other options are wrong
- A. A project contains elements from a single model; it cannot span multiple models.
- C. A Visual Studio project belongs to exactly one model, not multiple models.
Question 60
You are a Dynamics 365 Finance developer. You have a virtual machine that includes Visual Studio. You need to display the elements by model. What should you do?
Show answer and explanation
Correct answer: B. Right-click the Application Object Tree (AOT) node in Application Explorer and select Model View.
To display elements by model in Visual Studio, you right-click the Application Object Tree (AOT) node in Application Explorer and select Model View. This action filters and organizes the AOT to show elements grouped by their respective models.
Why the other options are wrong
- A. Model management menu options relate to package dependencies and model refreshing, not displaying elements organized by model.
- C. Metadata Search is used for searching specific metadata elements, not for organizing display by model.
- D. Refresh Models updates model information but does not change the view organization to display by model.
Question 61
A company uses Dynamics 365 Finance. The company requires you to create a custom service. You need to create request and response classes for the custom service. Which class attribute should you use?
Show answer and explanation
Correct answer: A. DataContract
The DataContract attribute is used to mark classes as request and response classes for custom services in Dynamics 365 Finance. This attribute designates a class as a data contract that can be serialized and deserialized for service operations, making it the correct choice for creating request and response classes.
Why the other options are wrong
- B. DataEventHandler is used for event handling in table and form events, not for creating service request/response classes.
- C. DataCollection is not a valid attribute for service contracts; it is not part of the standard Dynamics 365 Finance API attributes.
Question 62
You have a table in which multiple properties must be changed. Multiple table properties are locked down at the base table and must not be overwritten. You need to modify the table properties by extending the table. Which table property can you populate in a table extension by using the property sheet?
Show answer and explanation
Correct answer: B. Created by
Only a limited set of table properties can be changed in a table extension, including the audit properties Created by, Created date time, Modified by and Modified date time. Created by can therefore be set in the extension property sheet without changing locked base table properties.
Why the other options are wrong
- A. The primary index is defined on the base table and cannot be changed in a table extension.
- C. Configuration key is locked on the base table and cannot be set in a table extension.
- D. Table group is locked on the base table and cannot be changed in a table extension.
Question 63
You are working with extended data types in Visual Studio. You need to create an extension of an Extended Data Types (EDT) that is derived from base data types. Which three properties can be modified? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, C, E. String size; Form help; Label
When extending an Extended Data Type in Visual Studio, you can modify the String size to change the maximum length of data, the Form help to provide user guidance, and the Label to display a user-friendly name. These are the extensible properties that can be changed in an EDT extension without breaking the inheritance chain.
Why the other options are wrong
- B. IsExtensible is a property that defines whether an object can be extended, not a property that can be modified in an extension itself.
- D. Alignment is a presentation property that is locked and cannot be overridden in an EDT extension.
Question 64
A company uses Dynamics 365 Finance. The company uses a sandbox environment. The sandbox must be updated to the latest version. You need to apply an upgrade to the Lifecycle Services environment. Which package type from the asset library should you apply?
Show answer and explanation
Correct answer: C. Software deployable package
A Software deployable package is the correct package type used to apply upgrades to Dynamics 365 Finance environments through Lifecycle Services. This package type contains the compiled binaries and metadata needed for system updates.
Why the other options are wrong
- A. Solution packages are used for model-driven apps and plugin deployments, not for environment upgrades in Finance.
- B. NuGet packages are for distributing libraries and components, not for full environment upgrades.
- D. Retail self-service packages are specific to retail deployments and are not used for core Finance upgrades.
Question 65
You are using the SysTest framework to test code in Visual Studio. You need to create a unit test class. Which three attributes can you use to create the class? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, B, C. TestFilter; Priority; Owner
When creating a unit test class in the SysTest framework, you can apply TestFilter, Priority, and Owner attributes to the class definition. These attributes configure test metadata and categorization for Visual Studio test execution.
Why the other options are wrong
- D. EntryPoint is not a valid attribute for SysTest unit test classes.
- E. Test Property is not a standard SysTest framework attribute for class-level decoration.
Question 66
You are a Dynamics 365 Finance developer. You have the following Extended Data Types (EDTs): You plan to modify properties of the EDTs by using an extension. You need to determine which operations can be performed. Which operation is possible?
Show answer and explanation
Correct answer: D. Create an extension for AccountBase and modify the Form Help property.
In Dynamics 365, when extending an EDT (Extended Data Type), you can modify non-structural properties such as Form Help, Label, Help Text, and other metadata properties. However, you cannot modify structural properties like field size through extensions. Option D is correct because the Form Help property is a metadata/display property that can be extended and modified. Options A and C are incorrect because field size is a structural property that cannot be decreased or increased through extensions, doing so would break backward compatibility and data integrity. Option B is incorrect because creating a derived EDT (rather than an extension) for a root EDT like AccountBase is not the proper approach, and derived EDTs inherit structural limitations from their parents.
Why the other options are wrong
- A. Field size is a structural property that cannot be decreased through extensions; this would violate data integrity constraints.
- B. Creating a derived EDT from a root EDT and increasing field size would cause structural incompatibility and is not a supported operation for extensions.
- C. Field size is a structural property that cannot be increased through extensions; AccountId is derived from AccountBase and inherits its constraints.
Question 67
A company uses Dynamics 365 Finance. The company requires more than 10 new custom fields for the SalesTable table. You need to add the custom fields without creating an extension of the table. What should you do?
Show answer and explanation
Correct answer: B. Create the new fields in the SalesTable table.
In Dynamics 365 Finance, you can add custom fields directly to the SalesTable table without creating an extension. The option to add fields directly to existing tables is available and is the straightforward approach. This aligns with modern Dynamics 365 practices where table extensions are optional for adding custom fields, and direct modification remains a valid approach.
Why the other options are wrong
- A. SysExtensionSerializer is for serializing objects, not for adding fields to tables.
- C. Chain of command is used for extending method logic, not for adding fields to tables.
Question 68
You have a table in which multiple properties must be changed. Multiple table properties are locked down at the base table and must not be overwritten. You need to modify the table properties by extending the table. Which table property can you populate in a table extension by using the property sheet?
Show answer and explanation
Correct answer: B. Modified date time
The audit properties Created by, Created date time, Modified by and Modified date time are among the few table properties that can be set in a table extension. Modified date time can therefore be populated in the extension property sheet without overriding locked base table properties.
Why the other options are wrong
- A. Cache lookup is locked on the base table and cannot be changed in a table extension.
- C. Configuration key is locked on the base table and cannot be set in a table extension.
- D. Table group is locked on the base table and cannot be changed in a table extension.
Question 69
You are developing a model extension for Dynamics 365 Finance. You must create a model extension that extends objects from the Application suite package. You need to create and configure a new model for the extension. Which two actions should you perform? Each correct answer presents part of the solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: B, C. Create a new model and add a reference to the Application Suite package; Create an extension class that references a class that exists in the Application Suite.
When creating a model extension for Dynamics 365 Finance that extends objects from the Application Suite package, you must create a new model and add a reference to the Application Suite package to establish the dependency. Additionally, you should create an extension class that references a class that exists in the Application Suite to demonstrate the extension mechanism and ensure proper compilation.
Why the other options are wrong
- A. The model layer assignment (VAR, ISV, etc.) is determined by the organizational context, not a primary configuration action for creating the extension model itself.
- D. Creating a new model that is part of an existing Application Suite package would merge the extension into the base package, which is not the correct extension approach.
Question 70
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Decorate the class with the ExtensionOf attribute.
To create an extension class in X++, you must decorate the class with the ExtensionOf attribute, which specifies which class is being extended. This is the required syntax for extension classes in Dynamics 365.
Why the other options are wrong
- B. Marking a class as protected does not make it an extension class.
- C. Marking a class as public does not make it an extension class; public is an access modifier unrelated to extension class syntax.
- D. Marking a class as private does not make it an extension class and would prevent proper extension functionality.
Question 71
You are developing a workflow for Dynamics 365 Supply Chain Management. The workflow must only be used within the organization for which it was defined. You need to configure the workflow. Which workflow association type should you use?
Show answer and explanation
Correct answer: C. Company
When a workflow must only be used within the organization (legal entity) for which it was defined, you configure it with a Company workflow association type. This restricts the workflow's availability and applicability to a single company, ensuring it operates only within that specific organizational boundary.
Why the other options are wrong
- A. Other is a generic category that does not specifically restrict workflow scope to a single company.
- B. Global association makes the workflow available across all companies and legal entities in the system, which violates the requirement for company-specific scope.
Question 72
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You create a new form in a project. You need to display tabs in a vertical alignment. Solution: Apply the Table of Contents pattern. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
The Table of Contents pattern is specifically designed to display vertical navigation and tab structures in a hierarchical format. This pattern creates a navigation structure with vertically aligned items similar to a table of contents, making it ideal for displaying tabs in vertical alignment.
Why the other options are wrong
- B. The Table of Contents pattern is explicitly designed to support vertical alignment of navigation elements and tabs.
Question 73
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Mark the class as final.
When creating an extension class in Dynamics 365 Finance, the class must be marked as final. This is a fundamental requirement for extension classes to prevent further extension and ensure proper encapsulation of the extended functionality. Marking a class as final is the definitive action that designates it as an extension class.
Why the other options are wrong
- B. Adding the class buffer as the first parameter is not a requirement for creating extension classes.
- C. Extension classes do not require the '.extension' suffix in the file name; naming conventions differ from this.
- D. The '_myextension' suffix is not the standard approach for naming extension class files in D365 Finance.
Question 74
A company uses Dynamics 365 finance and operations apps. The company must implement the Excel Add-in to allow for data modification outside of Dynamics 365 finance and operations apps. The company must modify the standard fields displayed for a particular entity to include additional columns. You need to add the additional columns. Which field group should you add the columns to?
Show answer and explanation
Correct answer: A. AutoReport
The AutoReport field group controls which fields are displayed when data is exported to or viewed through the Excel Add-in. This field group determines the columns visible in the Excel worksheet when users interact with Dynamics 365 data through the Excel Add-in, making it the correct choice for adding additional columns to the display.
Why the other options are wrong
- B. AutoBrowse controls which fields appear in list page views and lookups, not in the Excel Add-in export.
- C. AutoSummary is used for summary fields in reporting scenarios, not for Excel Add-in column configuration.
- D. AutoLookup controls which fields appear in lookup dialogs, not in the Excel Add-in.
Question 75
You have an enumeration named truckStatus that has the following statuses: • Empty • Loaded • Completed You have the following code: You need to add the following statuses to the enumeration: Quarantine, InTransit What should you do?
Show answer and explanation
Correct answer: A. Add a post handler to the method that checks the enumeration and logic for your new enumeration values using the enumeration value.
When adding new enumeration values to an existing enumeration that is already being used in a switch statement, the proper approach is to add a post handler that checks for the new enumeration values using the enumeration value itself. This allows the new statuses (Quarantine and InTransit) to be handled without modifying the existing switch statement structure, which would break the current logic flow. A post handler provides a clean separation of concerns where new cases can be evaluated independently after the main switch logic completes.
Why the other options are wrong
- B. Range comparison is inappropriate for enumeration values, which are discrete, named constants rather than continuous numeric ranges.
- C. Adding new case statements directly to the existing switch would require modifying the original code structure, which is not the intended solution for extending enum handling.
- D. While enumerations have integer values, using integer-based range comparison is unnecessarily complex and error-prone compared to working directly with the enumeration type itself.
Question 76
A company uses Dynamics 365 Finance. You must add fields to a standard table in Visual Studio. You need to create an extension of the table. What should you do?
Show answer and explanation
Correct answer: D. Create a table extension from the base table.
To add fields to a standard table in Dynamics 365 Finance, you create a table extension from the base table. This is the modern extension approach that allows you to add new fields and customize the table without modifying the base object, maintaining supportability and upgrade compatibility.
Why the other options are wrong
- A. Creating an extension class is for extending class behavior, not for adding fields to a table.
- B. Dragging a table from the AOT creates a reference but does not create an extension for adding fields.
- C. Creating a new table object is not the correct approach; extensions preserve the original table identity and relationships.
Question 77
You have a table in which multiple properties must be changed. Multiple table properties are locked down at the base table and must not be overwritten. You need to modify the table properties by extending the table. Which table property can you populate in a table extension by using the property sheet?
Show answer and explanation
Correct answer: C. Modified date time
The Modified date time property is the table property that can be populated in a table extension using the property sheet. This property is not locked down at the base table level and can be customized through the extension without restriction, making it accessible for modification when base table properties are otherwise locked.
Why the other options are wrong
- A. Cache lookup is a locked property on the base table and cannot be overwritten in a table extension.
- B. Save data per company is a locked property at the base table level and cannot be modified through extension.
- D. Clustered index is a locked property on the base table and cannot be changed in a table extension.
Question 78
You are a Dynamics 365 Finance developer. You create a class. You need to mark the class to ensure that when code is compiled, the process fails if a specific method is called in the source code. Which attribute should you use?
Show answer and explanation
Correct answer: D. SysObsoleteAttribute
The SysObsoleteAttribute is used to mark methods or classes as obsolete, and when applied, the compilation process will fail if the marked method is called in source code. This attribute ensures that deprecated code is not used and drives developers to use alternative methods, making it the correct choice for enforcing compile-time failures on specific method calls.
Why the other options are wrong
- A. SysEntryPointAttribute marks methods as entry points for services or external calls but does not cause compilation failures when methods are called.
- B. getAttributes is a method for retrieving attributes at runtime, not an attribute itself, and does not control compilation behavior.
- C. SysAttribute is a generic attribute base class but does not provide the specific obsolescence enforcement needed to fail compilation on method calls.
Question 79
You are a Dynamics 365 Finance developer. You have a table named FMVehicle that contains a field named VehicleId. The table has an index named VehicleIdIdx on the VehicleId field. You declare a table buffer named vehicle to refer to the table. You need to select all records from the FMVehicle table in ascending order based on VehicleId field in the vehicle variable. Which embedded-SQL statement should you use?
Show answer and explanation
Correct answer: B. select vehicle index VehicleIdIdx;
In X++ embedded SQL, the select statement uses the index keyword followed by the actual index name to order results. The correct syntax is 'select vehicle index VehicleIdIdx;' which selects from the vehicle buffer using the VehicleIdIdx index in ascending order by default.
Why the other options are wrong
- A. VehicleId is a field name, not an index name; the index name VehicleIdIdx must be used.
- C. The order by clause uses field names, not index names, and this syntax is incorrect for the stated requirement.
- D. The desc keyword sorts in descending order, not ascending as required.
Question 80
A company has an extension that makes changes to a base form. You need to identify all extension changes made to the base form. What are two possible ways to achieve the goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: C, D. Right-click the base form and select view references; In the search bar on the form extension element, enter the text e:.
To identify all extension changes made to a base form, you can right-click the base form and select view references to see what extensions reference it (option C), or use the search bar on the base form with the text 'e:' to filter for extension-related elements (option B is incorrect because entering 'e:' in the base form search shows extensions, while 'c:' searches for custom elements). Right-clicking and viewing references provides a direct way to see all extensions affecting the form, and searching the base form with appropriate filters reveals extension modifications.
Why the other options are wrong
- A. Entering 'c:' in the extension search bar searches for custom elements, not identifying changes made to the base form.
- B. The 'e:' prefix in the base form search bar does not correctly identify extension changes; this approach is reversed.
- E. Entering 'c:' in the base form search bar searches for custom elements rather than showing extension modifications.
Question 81
You are developing a model extension for Dynamics 365 Finance that extends objects from the Application Foundation package. You need to create and configure a new model for the extension. Which two actions should you perform? Each correct answer presents part of the solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: C, D. Reference the Application Foundation package when creating the extension model; Create a new model that builds into its own separate assembly.
When creating a model extension for Dynamics 365 Finance that extends objects from the Application Foundation package, you must reference the Application Foundation package when creating the extension model to establish the dependency relationship. Additionally, the extension model should be part of an existing package rather than building into its own separate assembly, as this maintains the proper package structure and layering in the platform.
Why the other options are wrong
- A. Extension classes reference the base objects, but this is not a configuration action for creating the model itself.
- B. Model extensions are typically assigned to extension layers (ISV, VAR, USR), not the USR layer specifically for Application Foundation extensions.
- E. While creating a new model that is part of an existing package is correct, this overlaps with option C's requirement to reference the package.
Question 82
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. A company uses Dynamics 365 finance and operations apps. You have a custom enumeration named CarType. The enumeration has the following elements: Sedan, SUV. You must extend CarType and add a new element named MUV to CarType. You need to develop a solution that meets the requirements. Solution: Set the is Extensible property to true for the CarType enumeration. Add the MUV element to the CarType base enumeration. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The solution does not meet the goal. Although setting IsExtensible to true is correct, adding the MUV element directly to the CarType base enumeration violates the extension principle. Extensions should be created separately without modifying the base enumeration. The correct approach requires setting IsExtensible to true and then creating an enumeration extension to add the MUV element.
Why the other options are wrong
- A. Directly modifying the base enumeration contradicts the extension pattern required.
Question 83
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You are adding a new field to the SalesTable form. You must use an extension to add a status field onto the form. You need to create the extension in the Application Object Tree (AOT) and add the extension to the demoExtensions model. Solution: Navigate to the Visual Studio user interface forms extensions section for the SalesTable form and create an extension. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
In modern Dynamics 365 Finance development, form extensions are created through Visual Studio in the user interface forms extensions section, not directly through the AOT. Visual Studio is the primary development environment where you create and manage extensions for forms, add them to the appropriate model, and maintain proper version control. This is the correct workflow for extending the SalesTable form with a status field.
Question 84
You are a Dynamics 365 Finance developer. You have a table named FMVehicle that contains a field named VehicleId. The table has an index named VehicleIdIdx on the VehicleId field. You declare a table buffer named vehicle to refer to the table. You need to select all records from the FMVehicle table in ascending order based on VehicleId field in the vehicle variable. Which embedded-SQL statement should you use?
Show answer and explanation
Correct answer: B. select vehicle order by VehicleId;
The correct embedded-SQL statement to select all records in ascending order by the VehicleId field is 'select vehicle order by VehicleId;'. This syntax uses the order by clause without the explicit 'asc' keyword, as ascending order is the default behavior in X++ embedded SQL when no direction is specified. The statement selects from the vehicle buffer, which represents the FMVehicle table.
Why the other options are wrong
- A. Using 'index VehicleId' in the select statement uses an index hint for performance but does not guarantee ordering; the correct syntax requires 'order by'.
- C. Specifying 'select VehicleId from vehicle' selects only the VehicleId column instead of all records, and explicitly stating 'asc' is unnecessary when ascending is the default.
- D. Using 'order by VehicleId desc' sorts in descending order, which is the opposite of the required ascending order.
Question 85
You are a Dynamics 365 Finance developer. You create an integer variable named inventQantity. You need to display the value from inventQantity in an info statement. Which code segment can you use?
Show answer and explanation
Correct answer: A. info(int2str(inventQantity));
The info() function in X++ requires a string parameter. Since inventQantity is an integer, it must be converted to a string using int2str() before being passed to info(). Option A correctly converts the integer to a string and passes it to the info statement.
Why the other options are wrong
- B. Passing an integer directly to info() will cause a compilation error because info() expects a string argument.
- C. This option uses strLen() which returns the length of a string, not the string representation of the integer, and has a mismatched parenthesis.
Question 86
You create an extension of ProjTable. You need to configure the extension. Which three table properties can you modify in the extension? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: A, D, E. Form Ref; Preview Part Ref; Modified Date Time
When creating an extension of ProjTable, you can modify Form Ref to change which form is associated with the table, Preview Part Ref to specify a preview part for enhanced visualization, and Modified Date Time to track when modifications occurred. These properties are extensible and can be customized in the extension without affecting the base table.
Why the other options are wrong
- B. Label is a base table property that is locked and cannot be modified in an extension.
- C. TitleField1 is a locked property at the base table level and cannot be overridden in an extension.
Question 87
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You have an enumeration named truckStatus that has the following statuses: • Empty • Loaded • Completed You have the following code: You need to extend this enumeration and add the following statuses to the enumeration: Quarantine, InTransit. You must then modify code that validates the switch statement. Solution: Add a post handler to the method that checks the enumeration and logic for your new enumeration values using the integer value of the enumeration. Does the solution meet the goal?
Show answer and explanation
Correct answer: B. No
The solution does not meet the goal because adding a post handler to check enumeration values using integer comparisons is not the proper way to extend an enumeration. The correct approach is to add the new enumeration values (Quarantine and InTransit) directly to the enumeration definition itself, and then update the switch statement to include case statements for these new values. Using integer value comparisons in a post handler is a workaround that bypasses the type safety and maintainability benefits of enumerations. The switch statement shown in the exhibit demonstrates the intended pattern, matching against named enumeration cases, which should be extended with new cases for Quarantine and InTransit, not replaced with integer-based conditional logic in a separate handler.
Why the other options are wrong
- A. Adding a post handler with integer comparisons does not properly extend the enumeration or maintain type safety; it circumvents the intended switch-statement pattern shown in the exhibit.
Question 88
You are creating a new form in Visual Studio. You need to apply the Simple List pattern and apply the pattern to a form. What are the two possible ways to achieve the goal? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
Show answer and explanation
Correct answer: C, D. Use metadata properties; Use the designer.
The Simple List pattern can be applied through the designer interface directly or by modifying metadata properties in the form definition. Both methods allow you to specify and apply the pattern to a form in Visual Studio.
Why the other options are wrong
- A. Form statistics are used for monitoring and analysis, not for applying design patterns.
- B. The Application Object Tree is a navigation and browsing tool but is not the direct mechanism for applying patterns to forms in this context.
Question 89
You are a Dynamics 365 Finance developer. You have a table named FMVehicle that contains a field named VehicleId. The table has an index named VehicleIdIdx on the VehicleId field. You declare a table buffer named vehicle to refer to the table. You need to select all records from the FMVehicle table in ascending order based on VehicleId field in the vehicle variable. Which embedded-SQL statement should you use?
Show answer and explanation
Correct answer: D. select vehicle index VehicleIdIdx;
The correct embedded-SQL statement to select all records using an index in ascending order is 'select vehicle index VehicleIdIdx;'. When you specify an index, records are retrieved in the order of that index, which is ascending by default.
Why the other options are wrong
- A. Selecting only the VehicleId column instead of the entire vehicle buffer is incorrect for this requirement.
- B. Using the field name instead of the index name in the index clause is incorrect syntax.
- C. Using order by with the index name instead of the field name is incorrect, and desc specifies descending order.
Question 90
A company is implementing Dynamics 365 Finance. You implement a risk rating for vendors. The risk rating is on the Vendor form. The rating is determined by a vendor's on-time delivery performance as well as their credit rating. The risk rating consists of the following values: 1 = Good 2 = Medium 3 = Risky The company plans to implement purchase requisitions. The company wants to prevent purchase orders from being confirmed when a vendor's risk rating is set to Risky. You need to implement the functionality. What should you do?
Show answer and explanation
Correct answer: D. Create a Chain of Command (CoC) class extension.
A Chain of Command (CoC) class extension on the purchase order confirmation process allows you to intercept and validate the vendor risk rating before confirmation. This extension pattern hooks into the existing business logic without modifying source code, preventing confirmation when risk rating is Risky.
Why the other options are wrong
- A. The OnModified event of the vendor form fires when vendor data changes, not during purchase order confirmation.
- B. Business events are for notifications and monitoring, not for implementing validation and blocking logic.
- C. The OnInitializing event of a form fires during form initialization, not during purchase order confirmation actions.
Question 91
You are a Dynamics 365 Finance developer. You need to create an extension class. Which action should you perform?
Show answer and explanation
Correct answer: A. Decorate the class with the ExtensionOf attribute.
To create an extension class in Dynamics 365 Finance, you must decorate the class with the ExtensionOf attribute. This attribute designates the class as an extension and specifies which base class it extends. The ExtensionOf attribute is the key requirement that makes a class function as an extension, enabling it to add functionality to existing classes without modifying the original implementation.
Why the other options are wrong
- B. Adding a class buffer as the first parameter is not a requirement for extension classes; this pattern applies to other contexts.
- C. While public access may be useful, marking the class as public is not a requirement for extension classes.
- D. Marking the class as private would prevent it from being used as an extension and is the opposite of what is needed.
Question 92
Note: This question is part of a series of questions that present the same scenario. Each question in the series contains a unique solution that might meet the stated goals. Some question sets might have more than one correct solution, while others might not have a correct solution. After you answer a question in this section, you will NOT be able to return to it. As a result, these questions will not appear in the review screen. You have an enumeration named truckStatus that has the following statuses: • Empty • Loaded • Completed You have the following code: You need to extend this enumeration and add the following statuses to the enumeration: Quarantine, InTransit. You must then modify code that validates the switch statement. Solution: Add a post handler to the method that checks the enumeration and logic for your new enumeration values using the enumeration value. Does the solution meet the goal?
Show answer and explanation
Correct answer: A. Yes
The solution meets the goal because adding a post handler that checks for the new enumeration values (Quarantine and InTransit) using the enumeration value directly addresses the requirement to extend the enumeration and modify the validation code. The if statement shown in the second code block demonstrates exactly this approach, it validates the truckStatus against the new enumeration values (TruckStatus::Quarantine || TruckStatus::InTransit) and executes appropriate logic. This post-handler approach is a valid pattern for handling additional enumeration states without breaking the existing switch statement structure, allowing the code to gracefully handle both the original statuses (Empty, Loaded, Completed) through the switch statement and the new statuses through the additional conditional logic.
Why the other options are wrong
- B. The solution directly addresses both requirements: extending the enumeration with the new values and modifying validation code to handle them appropriately through a post handler pattern.
Question 93
You are a Dynamics 365 Finance developer. You need to ensure that an integration is triggered when a specific process starts. Which tool should you use to retrieve the status from the Production order?
Show answer and explanation
Correct answer: C. Business event
Business events are the appropriate tool to trigger integrations when a specific process starts. Business events in Dynamics 365 are designed to notify external systems in real-time when specific business actions occur, such as a production order starting. They provide event-driven integration capabilities that allow external systems to subscribe to and react to these events immediately.
Why the other options are wrong
- A. Batch jobs run on a schedule and are not triggered by specific process starts; they are periodic rather than event-driven.
- B. Periodic flows are scheduled workflows, not event-triggered mechanisms for detecting when a process starts.
- D. Recurring Data Entity exports are for exporting data on a schedule, not for triggering integrations based on process events.
Question 94
You are a Dynamics 365 Supply Chain Management developer. You are working on a project by using Visual Studio. Several users check out a custom form version control and modify the form. You need to find the user that has added a specific line of code to the form. What should you do?
Show answer and explanation
Correct answer: D. Using Visual Studio, navigate to the object in Application Explorer and right-click View History.
In Visual Studio, to find which user added a specific line of code to a form, you navigate to the object in Application Explorer, right-click on it, and select View History. This displays the version control history with changeset details including the user who made each change, allowing you to identify who added the specific line.
Why the other options are wrong
- A. Object Designer is from the legacy development environment and is not used in modern Visual Studio-based development.
- B. Solution Explorer does not provide the same integrated version control history view as Application Explorer in Visual Studio.
- C. Adding the object to a new solution is an unnecessary step; View History can be accessed directly without creating a new solution.
That was 94 of 399.
The full Microsoft MB-500 pack has all 399 questions, each with the answer, the explanation and why the other options are wrong, plus a questions-only copy for timed runs. US$39, paid once, with free monthly updates and a pass-or-your-money-back guarantee.
Not ready yet? Get the first 114 free as one PDF by email. Get the Half Pack →
