Q01 - Question
A model-driven app needs custom logic that runs synchronously during a data operation. Existing features and low-code techniques don't support the rule. Which approach should you use?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Build a Power Automate flow to apply the rule after the operation.
- B. Develop a plug-in that runs as server-side code.
- C. Create a custom web application that calls the Dataverse APIs.
- D. Package the model-driven app customizations in a solution.
B is correct.
Explanation: Plug-ins run as server-side code and are required for synchronous operations in a model-driven app when existing features and low-code techniques don't support the rule. Because the rule must run synchronously, code is the documented approach, and the plug-in executes within the Dataverse operation rather than after it.
A is incorrect: Power Automate enables asynchronous automation and logic, but it cannot fully replicate plug-in capabilities for synchronous rules, so it doesn't meet the synchronous requirement.
C is incorrect: A custom client application uses Dataverse APIs to build applications, but it doesn't add synchronous server-side logic to operations performed in the model-driven app.
D is incorrect: Solutions package and distribute customizations to a model-driven app, but packaging doesn't implement the synchronous rule itself, which requires code.
Q02 - Question
A developer must register a plug-in that runs through a system job after the operation completes. Which registration meets the requirement?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Asynchronous mode in the Pre-Validation stage
- B. Asynchronous mode in the Pre-Operation stage
- C. Synchronous mode in the PostOperation stage
- D. Asynchronous mode in the PostOperation stage
D is correct.
Explanation: Asynchronous plug-ins are executed via a system job after the operation completes. Dataverse allows asynchronous registration only for the PostOperation stage. Registering in that stage with asynchronous mode meets the requirement that the logic run after the operation without making the operation wait for the logic to finish.
A is incorrect: Asynchronous plug-ins can only be registered for the PostOperation stage, so Pre-Validation registration is not available even though the asynchronous mode is correct.
B is incorrect: Pre-Operation supports synchronous logic that changes values before save, but asynchronous plug-ins cannot be registered for that specific execution pipeline stage.
C is incorrect: Synchronous plug-ins run immediately and the entire operation waits until they complete, which does not match the system job that runs after completion.
Q03 - Question
A team is writing a Dataverse plug-in that reads related records. A separate integration can only make HTTP requests and consume HTTP responses. Which API choice is correct for each component?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Use the SDK for .NET in the plug-in and the Web API in the integration.
- B. Use the Web API in both the plug-in and the integration.
- C. Use the Web API in the plug-in and the SDK for .NET in the integration.
- D. Use the SDK for .NET in both the plug-in and the integration.
A is correct.
Explanation: You must use the SDK for .NET for Dataverse plug-in development. The Web API requires only the ability to make HTTP requests and consume HTTP responses, so it fits the integration that has no other capability. Each component uses the API style that its constraints allow.
B is incorrect: Plug-in development requires the SDK for .NET, so using the Web API in the plug-in does not meet the documented requirement.
C is incorrect: This reverses both choices. Plug-ins must use the SDK for .NET, and the Web API only requires the ability to make HTTP requests.
D is incorrect: The SDK for .NET fits the plug-in, but the integration can only make HTTP requests, which is the one capability the Web API requires.
Q04 - Question
A plug-in must stop an Update operation before the transaction occurs when custom validation fails. Business rules can't express the logic. What should you configure?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Register in the Post-operation stage and update the table to correct the values.
- B. Register in the Pre-operation stage and change the values before they are saved.
- C. Register on Update in the Pre-validation stage and throw an InvalidPluginExecutionException.
- D. Register an asynchronous plug-in on Update to cancel the operation after it completes.
C is correct.
Explanation: The Pre-validation event occurs first in the pipeline, so you can run validation logic and cancel the operation before the transaction occurs. Subscribe to the Update message, register in the Pre-validation stage, and throw an InvalidPluginExecutionException in the plug-in logic to cancel the update before it occurs.
A is incorrect: Post-operation modifies message properties before the requestor gets the response, and updating the table there triggers another update event instead of canceling.
B is incorrect: Pre-operation is for changing table values before they are saved, not for the early validation and cancellation that the Pre-validation stage provides.
D is incorrect: Asynchronous plug-ins run as a system job after the operation completes and only in PostOperation, so they cannot cancel the transaction beforehand.
Q05 - Question
Two synchronous plug-ins are registered on the Update message for the same pipeline stage. The validation plug-in must run before the formatting plug-in, and both must stay in that stage. What should you configure?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Register the validation plug-in as asynchronous so it starts earlier.
- B. Set the execution order attribute for each step in the Plug-in Registration tool.
- C. Register the plug-ins on different messages, such as Create and Update.
- D. Rely on the sequence in which the plug-ins were registered.
B is correct.
Explanation: When multiple synchronous plug-ins are registered for the same pipeline stage, the execution order attribute determines which one runs first. Set this attribute for each step in the Plug-in Registration tool so the validation plug-in has the earlier order while both remain in the same stage.
A is incorrect: Asynchronous plug-ins are dispatched as a system job and run after the operation completes, so this makes the plug-in run later, not earlier.
C is incorrect: Messages represent the type of operation, so changing the message changes when the logic runs, not the order of plug-ins on the same message.
D is incorrect: Registration sequence is not the documented control. The execution order attribute, set in the Plug-in Registration tool, determines which synchronous plug-in runs first.
Q06 - Question
A team needs a custom visual control that makers can add to both canvas apps and model-driven apps and bind to a data column. Which approach should the developer use?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Write client scripting that runs on the form load event
- B. Create a Power Apps component framework code component
- C. Create a plugin registered on the Main Operation stage
- D. Create a declarative business rule on the form
B is correct.
Explanation: Code components allow you to implement a custom visual that canvas apps and model-driven apps can use just like out-of-the-box controls. The manifest defines properties that makers can set statically or bind to data columns. This perfectly matches the requirement for a reusable visual control across both app types.
A is incorrect: Client scripting is not visual, implements business rules programmatically, and applies only to model-driven apps, so canvas apps are excluded.
C is incorrect: Plugins run server-side custom logic in the event pipeline and do not provide a custom visual control for makers.
D is incorrect: A declarative business rule does not provide a custom visual control and cannot be reused as a bound component.
Q07 - Question
Several apps must search for a customer by using the same predefined sequence of API calls. The team wants the sequence implemented in one place, and callers should invoke it like a system message. What should the developer create?
Domain: Create a technical design (10–15%) Type: Single choice
- A. A custom API with a plugin that implements the search logic
- B. A plugin registered on the PostOperation stage of Create
- C. Client scripting in each model-driven form that calls the sequence
- D. A console application that uses ServiceClient in each app
A is correct.
Explanation: A custom API offers a code-first way to define a new message in Dataverse. A plugin registered on the Main Operation stage implements the search logic once. Every caller then invokes the message the same way, ensuring that any future change is made in one single place.
B is incorrect: A plugin on a Create step runs only when Create messages are processed and does not define a new callable message.
C is incorrect: Client scripting applies only to model-driven apps, and repeating the sequence in each form leads to inconsistent implementations.
D is incorrect: A separate application using ServiceClient would still need each caller to follow the sequence and would not create a Dataverse message.
Q08 - Question
A developer plans to write custom code to restrict access to individual columns in Dataverse because they did this in earlier custom applications. The requirement is only to limit who can see certain column data. What should the developer do?
Domain: Create a technical design (10–15%) Type: Single choice
- A. Write a plugin that removes column values before they return
- B. Write client scripting that hides the columns on the form
- C. Configure the out-of-the-box column-level security feature
- D. Create a custom API that returns only permitted columns
C is correct.
Explanation: Column-level security is an out-of-the-box Dataverse feature that simply needs to be configured. Developers should use what the platform does well instead of rebuilding behavior from earlier custom applications. Writing custom code for achieving desired business application functionality should be considered as an exception to no-code and low-code approaches.
A is incorrect: A plugin would add custom code for a capability Dataverse already provides through configuration, which adds maintenance without need.
B is incorrect: Client scripting runs only on model-driven forms and is an alternative when declarative options are insufficient, which is not true here.
D is incorrect: A custom API is a code-first message for custom logic and would duplicate a feature that needs only configuration.
Q09 - Question
A model-driven form must show a form notification and filter out certain choice values. The organization has developers, and the team found that declarative business rules cannot meet these needs. Which implementation should the team choose?
Domain: Create a technical design (10–15%) Type: Single choice
- A. A Power Automate flow triggered on column change
- B. A calculated column that holds the values to check
- C. A workflow that runs before the update
- D. Client script using the form object model
D is correct.
Explanation: Form notifications and filtering out choice values are dynamic values that are not readily accessible by a business rule. Client scripting is the preferred alternative when declarative business rules cannot meet the requirements, especially when developer skills are easily available in the organization to implement the logic.
A is incorrect: A flow runs asynchronously after the data change, so it cannot provide a form notification or choice filtering on the form.
B is incorrect: Calculated columns can be a workaround to hold values for rules, but they cannot show notifications or filter choice values.
C is incorrect: A workflow responds to data events and is maintained by business users, but it cannot control form notifications or choice filtering.
Q10 - Question
A team needs to implement custom logic that runs synchronously before a Dataverse create operation. The logic must also be able to run on demand by users. Which approach should the team choose based on platform capabilities?
Domain: Create a technical design (10–15%) Type: Single choice
- A. A workflow
- B. A Power Automate flow
- C. A plugin
- D. Client scripting
A is correct.
Explanation: According to the platform capabilities, a workflow can run synchronously or asynchronously, can execute in the before or after stage, and can run on demand. This makes it the only option that satisfies all the specified requirements for implementing the custom logic without code.
B is incorrect: A Power Automate flow runs asynchronously and executes only in the after stage, so it cannot run synchronously before the operation.
C is incorrect: A plugin can run synchronously in the before stage, but it cannot be configured to run on demand by users.
D is incorrect: Client scripting runs on model-driven forms in response to form events, not in the Dataverse event pipeline before a create operation.