
Question bank
Microsoft Certified: Power Platform Developer Associate
43 Microsoft Certified: Power Platform Developer Associate questions with the correct answer and a written explanation, organised across 6 exam domains.
- 43 questions
- 6 domains
- Foundation level
Question index
Jump straight to any question. Answers and explanations are inline.
- Build Power Platform solutions · 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
- Create a technical design · 13, 14, 15, 16, 17
- Develop integrations · 18, 19, 20, 21, 22, 23, 24, 25
- Extend the platform · 26, 27, 28, 29, 30
- Extend the user experience · 31, 32, 33, 34, 35
- Implement Power Apps improvements · 36, 37, 38, 39, 40, 41, 42, 43
Build Power Platform solutions
12 questions in this domain
- Question 1Single Choice
In Microsoft Power Platform Dataverse development, which interface must every plug-in class implement to satisfy the required contract?
- AThe IPlugin interfaceCorrect answer
- BThe IPluginExecutionContext object
- CThe IOrganizationService interface
- DThe CodeActivity base class
Why this is the answer
Every plug-in must implement the IPlugin interface and provide the Execute method, which receives the IPluginExecutionContext to perform Dataverse logic.
- Question 2Multiple Select
Based on the playbook, in Dataverse plug-in development, which execution pipeline stages are valid for registering a plug-in?
- APre-validation stageCorrect answer
- BPre-operation stageCorrect answer
- CPost-operation stageCorrect answer
- DPost-retrieval stage
Why this is the answer
Dataverse plug-ins can be registered in Pre-validation, Pre-operation, or Post-operation stages. These stages define when logic runs in relation to the transaction.
- Question 3Interactive
Review the plug-in code example below. Which critical safeguard is missing to prevent recursive execution?
- ADepth checkCorrect answer
- BStage check
- CTransaction check
- DEntity check
Why this is the answer
A depth check is required to prevent recursive self-triggering. Without it, a plug-in can create an infinite loop and cause a platform timeout.
- Question 4Single Choice
According to the playbook, what runtime information does the IPluginExecutionContext make available to a plug-in during execution?
- AEntity, attributes, and user identityCorrect answer
- BBrowser and UI components
- CAzure subscription credentials
- DWorkflow process definitions
Why this is the answer
IPluginExecutionContext provides vital metadata such as the entity, attributes, and user identity needed to perform logic in a Dataverse plug-in.
- Question 5Multiple Select
According to the playbook, which statements about transaction management in Dataverse plug-in execution are correct?
- ARuns in the database transactionCorrect answer
- BFailure rolls back the operationCorrect answer
- CPre-validation runs before transactionCorrect answer
- DAll exceptions are ignored
Why this is the answer
Plug-ins execute inside the database transaction. If an exception is thrown, the original data change is rolled back. Pre-validation runs before the transaction starts.
- Question 6Interactive
In the custom activity code presented, which method must be implemented to satisfy the activity contract?
- AExecute(CodeActivityContext context)Correct answer
- BExecute(IServiceProvider serviceProvider)
- CRun(WorkflowContext context)
- DStart(ActivityContext context)
Why this is the answer
A custom activity inherits from CodeActivity and must override Execute(CodeActivityContext context), or the class will fail to compile and run.
- Question 7Single Choice
According to the playbook, what service is primarily used to perform CRUD operations on Dataverse entities from within a plug-in?
- AIOrganizationService interfaceCorrect answer
- BIOrganizationServiceFactory interface
- CIPluginExecutionContext object
- DCodeActivityContext object
Why this is the answer
IOrganizationService is the primary gateway for CRUD operations on Dataverse entities inside plug-in code, created via the service factory.
- Question 8Multiple Select
Based on the playbook, which of the following are common traps when developing Dataverse plug-ins?
- AConfusing Pre-operation with Pre-validationCorrect answer
- BForgetting the depth checkCorrect answer
- CUsing client-side librariesCorrect answer
- DCalling IOrganizationService.Create
Why this is the answer
Common traps include confusing Pre-operation with Pre-validation, forgetting depth checks, and attempting to use client-side libraries in plug-ins.
- Question 9Interactive
In the plug-in code provided, what is the role of the variable created from IOrganizationServiceFactory?
- ACreates an IOrganizationServiceCorrect answer
- BProvides the IPluginExecutionContext
- CExecutes the plug-in logic
- DManages the database transaction
Why this is the answer
IOrganizationServiceFactory is used to create an IOrganizationService, which is the primary gateway for CRUD operations in Dataverse.
- Question 10Single Choice
According to the playbook, what is the Plugin Registration Tool used for in Dataverse plug-in deployment?
- ADeploy and configure plug-in assembliesCorrect answer
- BCreate canvas applications
- CBuild Power Automate flows
- DManage Azure subscriptions
Why this is the answer
The Plugin Registration Tool is used to deploy, register, and configure plug-in assemblies, class definitions, and steps for messages and entities.
- Question 11Multiple Select
According to the playbook, which statements about custom workflow activities are true in Power Platform?
- AInherit from CodeActivityCorrect answer
- BCan define InArgument and OutArgument propertiesCorrect answer
- CIWorkflowContext provides runtime dataCorrect answer
- DAutomatically triggered by Dataverse events
Why this is the answer
Custom workflow activities inherit from CodeActivity, use InArgument and OutArgument for data flow, and access runtime information through IWorkflowContext.
- Question 12Interactive
In the custom workflow activity code shown, which generic type should FinalPrice use to return the computed value to the workflow?
- AOutArgument<decimal>Correct answer
- BInArgument<decimal>
- CIPluginExecutionContext
- DIOrganizationService
Why this is the answer
OutArgument<T> is the correct type for returning data from a custom workflow activity to the workflow engine.
Create a technical design
5 questions in this domain
- Question 13Single Choice
Which interface must every Dataverse plug-in implement?
- AIPluginCorrect answer
- BIPluginExecutionContext
- CIOrganizationService
- DCodeActivity
Why this is the answer
Every plug-in must implement the IPlugin interface, whose Execute method receives the execution context.
- Question 14Multiple Select
Which stages of the event execution pipeline can a plug-in be registered in? Select all that apply.
- APre-validationCorrect answer
- BPre-operationCorrect answer
- CPost-operationCorrect answer
- DPre-delete
Why this is the answer
Plug-ins are registered in Pre-validation, Pre-operation, or Post-operation; Pre-delete is not a pipeline stage.
- Question 15Interactive
Review the code block. Which execution context type is being retrieved for the plug-in logic?
- AIPluginExecutionContextCorrect answer
- BIWorkflowContext
- CCodeActivityContext
- DIServiceProvider
Why this is the answer
The code casts the service provider to IPluginExecutionContext, the interface that provides plug-in runtime data.
- Question 16Single Choice
Which base class must a custom workflow activity inherit from?
- ASystem.Activities.CodeActivityCorrect answer
- BMicrosoft.Xrm.Sdk.Client.ServiceContext
- CSystem.Activities.NativeActivity
- DSystem.Workflow.ComponentModel.Activity
Why this is the answer
Custom workflow activities inherit from System.Activities.CodeActivity and implement its Execute method.
- Question 17Multiple Select
Which of the following are used in custom workflow activities to handle data and execution context? Select all that apply.
- AIWorkflowContextCorrect answer
- BIOrganizationServiceCorrect answer
- CIPluginExecutionContext
- DCodeActivityContextCorrect answer
Why this is the answer
Custom activities use CodeActivityContext, access IWorkflowContext, and create IOrganizationService; IPluginExecutionContext belongs to plug-ins.
Develop integrations
8 questions in this domain
- Question 18Single Choice
In the Dataverse event execution pipeline, before the database transaction starts, which stage occurs?
- APre-validationCorrect answer
- BPre-operation
- CPost-operation
- DPost-validation
Why this is the answer
Pre-validation is the stage that occurs before the database transaction starts. Pre-operation occurs within the transaction, and Post-operation occurs after the core operation.
- Question 19Multiple Select
Which two statements correctly describe plug-in execution and the context depth trap?
- APlug-ins run within the database transaction of the triggering event.Correct answer
- BPlug-ins can safely use client-side libraries to access the user's browser components.
- CChecking the context depth prevents a plug-in from recursively triggering itself.Correct answer
- DPre-operation executes before the database transaction starts.
Why this is the answer
The playbook states that plug-ins run within the database transaction of the triggering event, and checking depth prevents infinite recursive calls. Client-side libraries are not available in plug-ins, and Pre-operation occurs within the transaction, not before it.
- Question 20Interactive
Review the plug-in code excerpt. What condition should be added at the start of the Execute method to prevent recursive execution?
- Acontext.Depth > 1Correct answer
- Bcontext.MessageName == "Create"
- Ccontext.Stage == 10
- Dcontext.IsInTransaction == true
Why this is the answer
The context depth property indicates how many times the plug-in has been called in the current operation. Checking depth prevents a plug-in from triggering itself recursively, which can cause a platform timeout.
- Question 21Single Choice
What programmatic contract must every plug-in implement?
- AIPluginCorrect answer
- BIWorkflowContext
- CIOrganizationServiceFactory
- DCodeActivity
Why this is the answer
IPlugin is the core programmatic contract for plug-ins. It requires the Execute method, which receives an IPluginExecutionContext.
- Question 22Multiple Select
Which three statements are true regarding custom workflow activities?
- ACustom workflow activities inherit from System.Activities.CodeActivity.Correct answer
- BInputArgument<T> and OutputArgument<T> are used for data exchange with the workflow engine.Correct answer
- CCustom workflow activities are triggered directly by Dataverse record events such as Create or Update.
- DThe IWorkflowContext exposes runtime information such as the target entity and the triggering user.Correct answer
Why this is the answer
CodeActivity inheritance, typed input/output arguments, and IWorkflowContext are core to custom workflow activities. Direct event triggering describes plug-ins, not workflow activities.
- Question 23Interactive
Examine the missing method declaration in the custom activity. Which signature must the Execute method have?
- AExecute(CodeActivityContext context)Correct answer
- BExecute(IServiceProvider serviceProvider)
- CExecute(IPluginExecutionContext context)
- DExecute(IWorkflowContext context)
Why this is the answer
CodeActivity requires the Execute(CodeActivityContext context) method. Using another signature will lead to compilation errors and runtime failures.
- Question 24Single Choice
Which administrative utility is used to deploy, register, and configure plug-in assemblies and steps?
- APlugin Registration ToolCorrect answer
- BSolution Explorer
- CWorkflow Designer
- DPower Apps Checker
Why this is the answer
The Plugin Registration Tool is the essential utility used to deploy, register, and configure plug-in assemblies, classes, steps, and pipeline stages.
- Question 25Multiple Select
Which three common traps should be avoided when developing integrations, according to the playbook?
- AConfusing Azure Logic Apps with Power Automate.Correct answer
- BUsing a Custom Connector when a standard Azure-based solution exists.Correct answer
- CNeglecting Security and choosing a solution that does not meet security requirements.Correct answer
- DChecking the context depth to prevent recursive plug-in execution.
Why this is the answer
The playbook explicitly lists confusing Azure Logic Apps with Power Automate, using a custom connector when a standard Azure-based solution exists, and neglecting security as traps. Checking context depth prevents recursion and is recommended, not a trap.
Extend the platform
5 questions in this domain
- Question 26Single Choice
In which execution pipeline stage does a plug-in run after the main data operation has completed?
- APre-validation
- BPre-operation
- CPost-operationCorrect answer
- DPre-commit
Why this is the answer
Post-operation is the stage after the main operation, allowing plug-in logic to run once data changes have been made.
- Question 27Multiple Select
Which of the following are registered execution pipeline stages for plug-ins according to the document? Select all that apply.
- APre-validationCorrect answer
- BPre-operationCorrect answer
- CPost-operationCorrect answer
- DPost-validation
Why this is the answer
The document lists Pre-validation, Pre-operation, and Post-operation as the execution pipeline stages. Post-validation is not a valid stage.
- Question 28Interactive
Given the following C# code block, which pattern is used to create an IOrganizationService inside a plug-in?
- AService Provider PatternCorrect answer
- BSingleton Pattern
- CAdapter Pattern
- DEvent Pipeline Pattern
Why this is the answer
The code uses IOrganizationServiceFactory from the service provider to create IOrganizationService, which demonstrates the Service Provider Pattern.
- Question 29Single Choice
According to the document, what happens if a plug-in fails and throws an exception during execution?
- AOnly the plug-in's data modifications are rolled back
- BThe entire operation, including the original data change, is rolled backCorrect answer
- CThe transaction is committed but the exception is recorded
- DThe database transaction is paused for manual handling
Why this is the answer
Plug-ins run within the database transaction of the triggering event, so an exception rolls back the entire operation, preserving data consistency.
- Question 30Multiple Select
Which of the following are common traps to avoid when developing plug-ins? Select all that apply.
- AConfusing Pre-operation with Pre-validationCorrect answer
- BForgetting the Depth check to prevent recursive plug-insCorrect answer
- CAttempting to use client-side libraries in a server-side plug-inCorrect answer
- DUsing IOrganizationService for CRUD operations
Why this is the answer
Common traps include mixing pipeline stages, missing Depth checks, and using UI libraries. Using IOrganizationService for CRUD is a normal plug-in practice.
Extend the user experience
5 questions in this domain
- Question 31Single Choice
In Dataverse, what is the core programmatic contract that every custom plug-in must implement?
- AIPluginCorrect answer
- BIWorkflowContext
- CIOrganizationService
- DCodeActivity
Why this is the answer
Every plug-in must implement the IPlugin interface, which defines the Execute method. This is the core programmatic contract for plug-in execution.
- Question 32Multiple Select
Which two statements correctly describe the differences between Pre-validation and Pre-operation stages?
- APre-validation occurs before the database transaction startsCorrect answer
- BPre-operation runs inside the database transactionCorrect answer
- CPre-operation occurs before Pre-validation
- DPost-operation runs before the database transaction
Why this is the answer
Pre-validation runs before the transaction starts; Pre-operation runs inside the transaction. Mixing these up can cause logic to execute at the wrong time.
- Question 33Interactive
Review the code sample and explain what runtime problem the depth check prevents in this plug-in.
- APrevents recursive executionCorrect answer
- BMeasures database transaction timeout
- CVerifies the user is the system admin
- DChecks if the entity exists
Why this is the answer
Checking Depth prevents a plug-in from recursively triggering itself, which can cause an infinite loop and platform timeout.
- Question 34Single Choice
What happens to the complete Dataverse transaction if a plug-in throws an unhandled exception?
- AEntire transaction is rolled backCorrect answer
- BOnly the plug-in’s changes are rolled back
- CThe operation is committed with an error log
- DThe exception is ignored and execution continues
Why this is the answer
Plug-ins run inside the triggering event’s database transaction. If a plug-in throws an exception, the whole transaction is rolled back, preserving consistency.
- Question 35Multiple Select
Which two actions are considered common traps when building Dataverse plug-ins?
- AUsing client-side libraries in server-side codeCorrect answer
- BForgetting to check context.DepthCorrect answer
- CCalling IOrganizationService for data operations
- DRegistering each plug-in in a single assembly
Why this is the answer
Plug-ins run on the server, so client-side libraries are unavailable. Ignoring Depth can cause recursive calls; both are documented traps.
Implement Power Apps improvements
8 questions in this domain
- Question 36Single Choice
In the Dataverse event pipeline, which interface must every plug-in implement to define its execution logic?
- AIPluginCorrect answer
- BIPluginExecutionContext
- CIOrganizationService
- DIOrganizationServiceFactory
Why this is the answer
The IPlugin interface defines the Execute method, which every plug-in must implement to handle Dataverse events. This is the core programmatic contract for all plug-ins.
- Question 37Multiple Select
Within the plug-in execution pipeline, which two stages run while the database transaction is active?
- APre-validation
- BPre-operationCorrect answer
- CPost-operationCorrect answer
- DPost-validation
Why this is the answer
Pre-validation occurs before the database transaction begins. Pre-operation and Post-operation run while the transaction is active, so failures can roll back the full operation.
- Question 38Interactive
Review the plug-in code snippet. What is the purpose of the service variable created through the service factory?
- APerform CRUD operations on Dataverse recordsCorrect answer
- BRegister the plug-in for an event
- CAccess browser UI components
- DStart a database transaction
Why this is the answer
The IOrganizationServiceFactory creates an IOrganizationService instance, which is the primary gateway for CRUD operations on Dataverse records within plug-in code.
- Question 39Single Choice
Which administrative tool is used to deploy, register, and configure plug-in assemblies and steps in Dataverse?
- APlugin Registration ToolCorrect answer
- BPower Apps Checker
- CSolution Packager
- DData Migration Tool
Why this is the answer
The Plugin Registration Tool (PRT) is the administrative utility used to deploy, register, and configure plug-in assemblies, including defining the message, entity, and stage.
- Question 40Multiple Select
According to common plug-in development traps, which two practices should a developer apply to avoid platform issues?
- ACheck the execution context depthCorrect answer
- BUse client-side libraries in server-side code
- CAssume rollback is handled automatically
- DAvoid UI libraries in server-side logicCorrect answer
Why this is the answer
Checking the Depth property prevents recursive plug-in execution and platform timeouts. Plug-ins cannot access client-side UI components, so UI-centric libraries should not be used.
- Question 41Interactive
Examine the custom workflow activity code. Which base class must the custom activity inherit to run in the workflow designer?
- ASystem.Activities.CodeActivityCorrect answer
- BIPlugin
- CIOrganizationService
- DActivityContext
Why this is the answer
A custom workflow activity must inherit from System.Activities.CodeActivity so the workflow engine can execute it as a selectable step in the workflow designer.
- Question 42Single Choice
Which context object provides a custom workflow activity with runtime details such as target entity and triggering user?
- AIWorkflowContextCorrect answer
- BIPluginExecutionContext
- CIOrganizationServiceFactory
- DCodeActivityContext
Why this is the answer
The IWorkflowContext object provides runtime information such as the target entity, triggering user, and primary entity, enabling the custom activity to perform logic.
- Question 43Multiple Select
Which two statements correctly describe the difference between a plug-in and a custom workflow activity?
- APlug-ins are triggered by Dataverse eventsCorrect answer
- BCustom workflow activities are triggered by Dataverse events
- CPlug-ins are workflow process steps
- DCustom workflow activities are workflow process componentsCorrect answer
Why this is the answer
Plug-ins are direct hooks into the Dataverse event pipeline and are triggered by events. Custom workflow activities are discrete steps used inside workflow process definitions.
Frequently asked questions
Everything about the Microsoft Certified: Power Platform Developer Associate question bank and how to use it.