Practice Free PL-400 Exam Online Questions
DRAG DROP
A developer must register a step using the Plug-in registration tool.
You need to associate the correct Event Pipeline Stage of Execution with its purpose.
Which stage should you associate with each description? To answer, drag the appropriate stages to the correct descriptions. Each stage may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content. NOTE: Each correct selection is worth one point.

Explanation:
The event pipeline allows you to configure when in the event the plug-in code will execute.
The event pipeline is divided into the following events and stages:
Box 1: PreValidation
Pre-event/Pre-Validation
This stage executes before anything else, even before basic validation if the triggering action is even allowed based on security. Therefore, it would be possible to trigger the plug-in code even without actually having permission to do so and great consideration must be used when writing a pre-validation plug-in. Also, execution in this stage might not be part of the database transaction.
Examples: – security checks being performed to verify the calling or logged on user has the correct permissions to perform the intended operation.
Box 2: PreOperation
Pre-event/Pre-Operation
This stage executes after validation, but before the changes has been committed to database. This is one of the most commonly used stages.
Example uses:
If and “update” plug-in should update the same record, it is best practice to use the pre-operation stage and modify the properties. That way the plug-in update is done within same DB transaction without needing additional web service update call.
Box 3: PostOperation
Plug-ins which are to execute after the main operation. Plug-ins registered in this stage are executed within the database transaction.
This stage executed after changes have been committed to database. This is one of the most used stages.
Example uses:
Most of the “Create” plugins are post-event. This allows access to the created GUID and creation of relationships to newly created record.
Incorrect Answers:
MainOperation: – main operation of the system, such as create, update, delete, and so on. No custom plug-ins can be registered in this stage.
Reference: https://community.dynamics.com/crm/f/microsoft-dynamics-crm-forum/216569/ms-crm-plugin-execution-pipeline
DRAG DROP
You are designing an implementation that has complex data requirements
The data storage requirements are as follows:
• Query large amounts of unstructured data in Dataverse.
• Read and update structured data stored outside of Dataverse.
You need to implement data storage to meet the requirements.
Which table types should you use? To answer, move the appropriate table types to the correct data storage requirements. You may use each table type once, more than once, or not at all. You may need to move the split bar between panes or scroll to view content. NOTE: Each correct selection is worth one point.


DRAG DROP
A company has Common Data Service (CDS) environments for development, test, and production.
You have a model-driven app that consists of two solutions. The solutions include settings and reference data. You plan to move the solutions, app settings, and reference data from a development environment to a production environment.
You export each solution from the development environment as a zip file.
You run the Configuration Manager to export the settings and reference data as zip files.
You need to prepare the app and its settings for deployment.
Which four actions should you perform in sequence? To answer, move the appropriate actions from the list of actions to the answer area and arrange them in the correct order. NOTE: More than one order of answer choices is correct. You will receive credit for any of the correct orders you select.

Explanation:
Step 1: Add your files to the project
In the Solutions Explorer pane, add your solutions and files under the PkgFolder folder.
For each file that you add under the PkgFolder folder, in the Properties pane, set the Copy to Output Directory value to Copy Always. This ensures that your file is available in the generated package.
Step 2: Define the solution and data files in ImportConfig.xml
Define the package configuration by adding information about your package in the ImportConfig.xml file available in the PkgFolder.
Step 3: Build the package
Step: Run the Package Deployer tool
After you create a package, you can deploy it on the Dataverse instance by using either the Package Deployer tool or Windows PowerShell.
Reference: https://docs.microsoft.com/en-us/power-platform/alm/package-deployer-tool
A client requires that the system send an email from a button on their customer contact form.
You need to call the action from JavaScript.
Which two functions achieve this result? Each correct presents a complete solution. NOTE: Each correct selection is worth one point.
- A . Xrm.WebApi.online.createRecord()
- B . Xrm.WebApi.online.updateRecord()
- C . Xrm.WebApi.online.execute()
- D . Xrm.WebApi.online.executeMultiple()
A, D
Explanation:
Xrm.WebApi.online.executeMultiple executes a collection of action, function, or CRUD operations.
Xrm.WebApi.online.execute executes a single action, function, or CRUD operation.
Reference:
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi/online/executemultiple
https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/clientapi/reference/xrm-webapi/online/execute
DRAG DROP
A company is configuring Microsoft Power Virtual Agents and Power Automate flows that use model-driven apps. The company has a website that uses Power Pages. You create Power Virtual Agents bot topics.
You must configure the following:
• Use a bot on the website.
• Create Bot Framework skills.
• Create a support request from the bot without human interaction. You need to configure the website.
Which applications should you configure? To answer, drag the appropriate applications to the correct requirements. Each application may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content.


A company plans to implement an integration between Microsoft Dataverse and Azure Service Bus.
When an Account row is updated, if the Credit Limit is set to over $25,000, information about the row must post to an Azure Service Bus queue. The previous Credit Limit value must also be included.
You use the Microsoft Power Platform CLI to create the plug-in package.
You need to implement an interface.
Which interface should you implement next?
- A . IServiceEndpoiniNotificationService
- B . IServiceEndpointPlugin
- C . IPIuginExecutionContext
- D . IWebHttpServiceEndpointPlugin
DRAG DROP
A company is creating a new system based on Microsoft Dataverse.
You need to select the Dataverse features that meet the company’s requirements.
Which features should you select? To answer, drag the appropriate features to the correct requirements. Each feature may be used once, more than once, or not at all. You may need to drag the split bar between panes or scroll to view content. NOTE: Each correct selection is worth one point.


You need to configure the system to support automation for referrals.
What are two possible ways to achieve the goal? Each correct selection presents a complete solution. NOTE: Each correct selection is worth one point.
- A . Azure Function that uses the Discovery service
- B . workflow extension
- C . Azure Function that uses a listener
- D . Power Automate flow
CD
Explanation:
https://docs.microsoft.com/en-us/dotnet/api/system.io.filesystemwatcher
https://docs.microsoft.com/en-us/power-automate/
A company has two development instances, two test instances, two staging instances, and one production instance.
The test team reports connection issues with the test and staging instances.
You need to identify which if the instances the testing team currently has access.
Which two URLs can you use? Each correct answer presents a complete solution. NOTE: Each correct selection is worth one point.
- A . https://myorg.api.crm.dynamics.com/api/data/v.9.1/
- B . https://dev.crm.dynamics.com/api/discovery/v9.1/Instances
- C . https://dev.crm.dynamics.com/api/discovery/v9.1/Instances(UniqueName=’myorg’)
- D . https://disco.crm.dynamics.com/api/discovery/v9.1/
- E . https://globaldisco.crm.dynamics.com/api/discovery/v9.1/Instances
CE
Explanation:
C: Organization information is stored in the Instance entity of the Discovery service. To see the kind of information contained in that entity, send an HTTP GET request to the service for one of your instances.
GET https://dev. {servername}/api/discovery/v9.0/Instances(UniqueName=’myorg’)
In the above example, the discovery service is used to obtain the organization information of the instance with a unique name of "myorg".
Reference:
https://docs.microsoft.com/en-in/dynamics365/customerengagement/on-premises/developer/webapi/discover-url-organization-web-api
https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/webapi/samples/global-discovery-service-csharp
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 once 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 model-driven app for a company.
When you create a new Account record, you must automatically display a form to collect data that is needed to create a Contact record. The form must switch to the appropriate form layout based on the contact type.
You open the Contact form by using JavaScript. You pass the contact type information to the form by using the Xrm.Navigation.openForm function. An OnLoad event handler in the Contact form processes the data and shows only the appropriate sections of the form for the given contact type.
You need to configure the receiving form to accept the data parameter.
Solution: In the form editor, add a web resource that sets formContext.data.attributes.
Does the solution meet the goal?
- A . Yes
- B . No
B
Explanation:
By default, model-driven apps allows a specified set of query string parameters to be passed to a form. You use these parameters to set default values when you create a new record in the application. Each parameter must use a standard naming convention that includes a reference to the column logical name.
There are two ways to specify which query string parameters will be accepted by the form:
✑ Edit form properties
✑ Edit form XML
Reference: https://docs.microsoft.com/en-us/powerapps/developer/model-driven-apps/configure-form-accept-custom-querystring-parameters
