Q01 - Question
You created a new Finance Operations project named FleetManagementProject in Visual Studio. Before you add the VehicleType base enum, you must make sure that the FleetManagement model references the correct application suite. What should you do?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. In Extensions > Dynamics 365 > Options > Projects, select Synchronize database on build for newly created project.
- B. Right-click the project, select Add > New Item, and then select Data Types > Base Enum.
- C. In Extensions > Dynamics 365, select Model Management > Update model parameters, select the FleetManagement model, and then select ApplicationSuite as a referenced package.
- D. Right-click the project in Solution Explorer and select Build.
C is correct.
Explanation: Use Update model parameters to select the FleetManagement model and then select ApplicationSuite in the Select referenced packages list. This step makes sure the correct application suite is referenced.
A is incorrect: This option controls database synchronization when you build a newly created project. It does not change the referenced packages of the model.
B is incorrect: This step creates the base enum element. It does not configure the model references that you need first.
D is incorrect: A build compiles the project. It does not add ApplicationSuite as a referenced package.
Q02 - Question
You need to make small UI adjustments to an existing standard Display menu item by creating a menu item extension. Which two changes can you make in the extension? Each correct answer presents a complete solution.
Domain: Design and develop AOT elements (15–20%) Type: Multiple choice
- A. Change the Object property so that the menu item runs your own form.
- B. Change the Label property.
- C. Change the Object type property to an action class.
- D. Change the Help text property.
B and D are correct.
Explanation: The evidence supports B and D because menu item extensions allow you to change the Help text, Label, and Tags on all three types of menu items.
A is incorrect: You can change the Object property only for menu items that have an Action or Output type, not Display menu items.
C is incorrect: The Object type property cannot be changed on any menu item extension.
Q03 - Question
A developer needs to analyze a slow form in finance and operations apps by using Trace parser. The developer plans to capture a trace from the finance and operations apps client through Help & Support > Trace. What must be in place for the developer's user account to capture and view traces?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. The developer opens the client URL with the debug=develop parameter.
- B. The developer installs Fiddler Classic on the development machine.
- C. The developer records the scenario on the Network tab of the F12 Developer tools.
- D. The developer's user account is assigned the System tracing user role in System administration > Users > Users.
D is correct.
Explanation: The evidence supports D because each user account that captures and views traces must be assigned the System tracing user role in System administration > Users > Users.
A is incorrect: The debug=develop parameter is used to open the Performance timer, not to capture traces.
B is incorrect: Fiddler Classic is used to diagnose authentication issues and network performance, not to capture traces for Trace parser.
C is incorrect: The F12 Developer tools Network tab captures ProcessMessage calls, but does not capture traces for Trace parser.
Q04 - Question
In an extension of the FMCustomer form, you add an Action Pane Tab and a Button Group that contains a Menu Item Button. Users must open the page to enter a free text invoice when they select the button. What should you configure?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. Set the Menu Item Name property of the Menu Item Button to CustFreeInvoiceNew.
- B. Set the Caption property of the Button Group to Free text invoice.
- C. Set the Name property of the Action Pane Tab to CustFreeInvoiceNew.
- D. Add the free text invoice table as a data source to the form extension.
A is correct.
Explanation: The Menu Item Name property links the Menu Item Button to a menu item. Select CustFreeInvoiceNew so the button opens the free text invoice page.
B is incorrect: The Caption property sets the displayed text of the Button Group. It doesn't define the page that opens.
C is incorrect: The Name property identifies the Action Pane Tab control. It doesn't link a button to a menu item.
D is incorrect: A data source provides tables and fields for the form. It doesn't create navigation from a button.
Q05 - Question
You need a new EDT for item codes used in a markup feature. The EDT must reuse the appropriate properties of the existing ItemCode EDT and change only a few of them. The EDT must also display well on the different forms where it is used. Which two actions should you take? Each correct answer presents part of the solution.
Domain: Design and develop AOT elements (15–20%) Type: Multiple choice
- A. Create the new EDT as a child of the ItemCode EDT in an EDT hierarchy.
- B. Create a base enum that lists the valid item codes as literals.
- C. Leave the display length and style properties set to Auto on the new EDT.
- D. Set a fixed display length on each form control that uses the new EDT.
A and C are correct.
Explanation: In an EDT hierarchy, a child EDT inherits the appropriate properties from the parent, and you change only the other properties. The MarkupItemCode EDT uses ItemCode as its basis in this way. When you leave the display length and style set to Auto, finance and operations apps make the best choice for how the EDT is displayed, which keeps the EDT flexible throughout the system.
B is incorrect: A base enum stores a predefined list of literals as numbers. It does not inherit properties from the ItemCode EDT.
D is incorrect: Setting a fixed length on each control adds work on every form and removes the flexibility that the Auto setting provides.
Q06 - Question
You create a table extension for a standard table and add two new fields. The business requires that each combination of values in these two fields is unique. You must use an extensible approach. What should you do?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. Add a unique index to the table extension that includes both new fields.
- B. Create a hash of the values of the two fields and use it as the uniqueness constraint.
- C. Modify the base table directly to add a unique index on the two fields.
- D. Change the Extended Data Type property of an existing field to an unrelated EDT that enforces uniqueness.
B is correct.
Explanation: You can't use an extension to create a unique index because that type of development is intrusive. For an extensible uniqueness constraint that spans multiple columns, consider creating a hash of the values of those columns instead.
A is incorrect: You can add indexes to a table extension, but you can't create a unique index by using an extension.
C is incorrect: Development for finance and operations apps is extension-based and doesn't allow customizing base code and elements.
D is incorrect: You can change the Extended Data Type property on an existing field only to an EDT that derives from the current EDT.
Q07 - Question
Your team writes a new X++ class for finance and operations apps. Other developers must be able to extend the class logic later. You need to follow the recommended approach. What should you do?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. Create new delegates that return the extended result directly through a non-void return type.
- B. Create new delegates and require subscribers to run in a fixed implementation order.
- C. Evaluate whether the result object already contains a result before responding to a delegate.
- D. Structure the code into smaller methods so that other developers can use Chain of Command (CoC).
D is correct.
Explanation: Creating new delegates in the application isn't recommended. Structure your code into smaller methods so that it can be extended by using CoC, which provides a richer, more robust, and more concise extension mechanism.
A is incorrect: Delegates in X++ must have the void return type. Use EventHandlerResult as a parameter to return a result.
B is incorrect: Subscribers for delegates aren't in control of the implementation order.
C is incorrect: When a delegate requests a response, you should not evaluate whether the result object already contains a result. Provide a result only when your subscribing logic is responsible for responding.
Q08 - Question
A custom form uses the TrainingMaster table as its data source. The form must show only records where TrainingType is Online. The filter must apply each time the form is refreshed, not only when the form opens. Which approach should you use?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. Override the data source executeQuery() method, add the range to the query, and then call super().
- B. Override the form init() method and add the range to the data source query after the super() call.
- C. Override the data source initValue() method and set TrainingType to Online.
- D. Override the data source validateWrite() method and return false for records that are not Online.
A is correct.
Explanation: The evidence supports A because the executeQuery() method runs the data source query and displays the retrieved records whenever the form is refreshed.
B is incorrect: The form init() method runs once when the form opens, not whenever the form is refreshed.
C is incorrect: The initValue() method initializes field values when a new record is created, not when the form is refreshed.
D is incorrect: The validateWrite() method is called when a user attempts to save a record, not when the form is refreshed.
Q09 - Question
You are designing an order status field that has a fixed set of five values. The field must use minimal database storage. Users must see a readable name for each value, and you want to avoid writing conversion code on the forms that display the field. What should you use?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. An EDT based on str that stores the status name as text.
- B. An EDT based on int, with X++ code on each form that converts the number to a name.
- C. An EDT based on the GUID data type for each status value.
- D. A base enum with one element per status and a Label property set on each element.
D is correct.
Explanation: A base enum stores each value in the database as a number, which saves space. Each literal has a label that users see, and the system displays this conversion in the user interface automatically, so no more programming is required on the forms.
A is incorrect: Storing the status name as text uses more space than the numeric value that a base enum stores.
B is incorrect: This stores a number, but you must write and maintain conversion code on every form. A base enum handles the conversion for you.
C is incorrect: A GUID is a globally unique identifier. It is not designed to represent a predefined set of values with readable names.
Q10 - Question
You are designing a new setup area for a custom module in finance and operations apps. Administrators must complete configuration across at least two separate forms. You want a consistent layout that is easy to recognize. Which form pattern should you apply?
Domain: Design and develop AOT elements (15–20%) Type: Single choice
- A. Simple List
- B. Wizard
- C. Table of Contents
- D. Simple Details
C is correct.
Explanation: The evidence supports C because the Table of Contents pattern is used when at least two forms are required for setup configuration.
A is incorrect: Simple List is used to maintain data for entities that contain six or fewer fields and no parent/child relationships.
B is incorrect: Wizard is used to guide a user through a specific task by using an ordered series of tab pages.
D is incorrect: Simple Details is used to present a simple set of fields to the user, generally in view mode instead of edit mode.