Microsoft Certified: Power Platform Developer Associate Exam Prep
Free practice questions

Free PL-400 Practice Questions

10 exam-style questions with answers and explanations, straight from our 1,030-question bank. Tap an answer to check yourself. When you're ready, take the scored version in the free practice test.

Start the free practice test → ★★★★★4.9/5 from 2,400+ candidates · No signup

These 10 free PL-400 questions are organized by exam domain, so you can see how each part of the Microsoft Certified: Power Platform Developer Associate blueprint is tested. Reveal the answer and explanation under each question.

Domain 1: Create a technical design (10-15%)

Question 1

A reservation service must be callable from a model-driven command, a cloud flow, and an external application. Each call validates an order, updates a reservation, and creates an audit row in Dataverse standard tables. The writes must commit or roll back together, and the caller needs the reservation ID in the response. The team will implement the operation in C#. Which component provides the appropriate reusable boundary?

Show answer & explanation

Correct answer: C - A custom API action whose main-operation plug-in uses IOrganizationService for both writes.

Domain 2: Build Power Platform solutions (10-15%)

Question 2

A managed solution release imports successfully, yet a model-driven app still executes an older JavaScript web resource. Publishing and testing in a fresh browser session do not help. The component's solution layers show the new managed code beneath an active unmanaged customization containing the old code. That customization has no changes that need to be retained. Select the narrowest correction that exposes the deployed code.

Show answer & explanation

Correct answer: A - Remove the active unmanaged customization from that web resource.

Question 3

A contact's account lookup cannot be updated. The salesperson has Read and Write on Contact and Read on Account, but neither Append nor Append To on either table. Both records are accessible; ownership and secured columns are not involved. To permit the link, which additional privilege pair is required?

Show answer & explanation

Correct answer: C - Append on Contact, with Append To on the target Account.

Domain 3: Implement Power Apps improvements (10-15%)

Question 4

An account-search gallery uses this Power Fx formula against Dataverse: Filter(Accounts, Left('Account Name', Len(txtPrefix.Text)) = txtPrefix.Text) Power Apps flags the Left expression as nondelegable. Users can read all 60,000 accounts, but searches omit matching accounts outside the retrieved subset. The search must return names beginning with the entered text. Which replacement addresses completeness rather than merely enlarging the subset?

Show answer & explanation

Correct answer: D - Use Filter(Accounts, StartsWith('Account Name', txtPrefix.Text)).

Domain 4: Extend the user experience (10-15%)

Question 5

While testing a PCF slider on a model-driven form, a developer observes that dragging changes the component's local currentValue from 4 to 7, but the bound form column remains 4. The manifest declares value as a bound numeric property, and getOutputs correctly returns { value: this.currentValue }. The component must update the form's unsaved value rather than write directly to Dataverse. What should its input handler do after updating currentValue?

Show answer & explanation

Correct answer: A - Call the notifyOutputChanged callback captured in init; let the framework call getOutputs.

Question 6

A model-driven form already has an OnChange handler for new_discount that recalculates a displayed total. Manual edits run the handler correctly. A command instead executes the following code, which changes the discount but leaves the total unchanged: const discount = formContext.getAttribute('new_discount'); discount.setValue(15); The command must invoke the existing event logic without saving or refreshing the form. Which line belongs immediately after setValue?

Show answer & explanation

Correct answer: A - discount.fireOnChange();

Domain 5: Extend the platform (30-35%)

Question 7

A synchronous Dataverse Update plug-in trims spaces from new_externalreference. It runs in PostOperation and calls service.Update on the same row. Tracing shows a second Update pipeline for every edit. The normalized text must be committed with the user's original write. How should the implementation change to eliminate the additional update?

Show answer & explanation

Correct answer: B - Use PreOperation and assign the normalized value directly to Target.

Question 8

An integration reads a Dataverse row and retains its ETag. Before the integration submits a PATCH with that ETag in If-Match, another user changes the same row. Optimistic concurrency is enabled, the row still exists, and Dataverse returns HTTP 412. The integration must preserve changes made since its read. What is the appropriate recovery?

Show answer & explanation

Correct answer: B - Retrieve the latest row, reconcile the conflict, and retry with its ETag.

Question 9

Power Automate run history shows the following outcome: Process scope: Failed Log failure scope: Succeeded Overall run: Succeeded The logging scope runs after Process fails or times out. It records diagnostics but does not recover the business operation. Operations monitoring must identify the run as failed after those diagnostics are recorded. Which change makes the final status reflect that outcome?

Show answer & explanation

Correct answer: B - End the logging branch with a Terminate action whose status is Failed.

Domain 6: Develop integrations (10-15%)

Question 10

Two ERP systems send orders to a Dataverse standard table. Each system assigns order numbers independently, so both can have an order numbered 74018. Every message includes a populated source-system code and order number, but no Dataverse GUID. Multiple workers may receive the same order concurrently, and later deliveries must update that order rather than create duplicates. Which write strategy preserves the intended identity?

Show answer & explanation

Correct answer: D - Use an active composite alternate key on both identifiers with UpsertRequest.

That's 10 of 1,030

The full bank has 1,020 more PL-400 questions with explanations.

Continue in the free practice test →

View plans