Medium PL-400 practice questions
Applied — put a concept to work in a realistic situation. 119 medium questions available — no sign-up, always free.
A developer defines a new alternate key on the Account table combining two columns to support an integration that uses UpsertRequest with that key. Immediately after saving the key definition in the maker portal, the integration begins sending upsert calls, but they fail with an error indicating the alternate key is not usable. What is the most likely cause?
You are designing a custom connector that a Power Automate cloud flow will use to call a third-party payroll REST API. The API requires each request to include an OAuth 2.0 access token issued by the vendor's Microsoft Entra ID tenant, and the vendor wants the connector to prompt each user to sign in with their own vendor account so that per-user audit logs are maintained. Which authentication type should you configure on the custom connector?
A backend Azure Function runs on a nightly schedule with no user present. It must write records to Dataverse using the Web API. The security team requires that the integration authenticate without storing or using any interactive user credentials, and each API call must be attributed to a non-interactive identity. What authentication approach should you design?
A model-driven app form has a lookup to the Account table. When a user selects an account, the sales rep needs the account's phone number and preferred contact method copied into fields on the current record immediately, before the record is saved. The copied values do not need to be validated or persisted server-side until save. Company policy states you should minimize both server load and licensing costs by avoiding server-side processing for purely presentational, pre-save behavior. What is the most appropriate way to implement this?
Your Dataverse environment generates thousands of account update events per minute that must be streamed to a downstream analytics platform capable of ingesting large volumes of data with consumer groups for parallel processing. You use the Plug-in Registration Tool to register a service endpoint. Which endpoint contract type should you select to best match this high-throughput streaming requirement?
A developer is building an Azure Function that must process a large batch of Dataverse records, calling an external API for each record. The total operation frequently exceeds 10 minutes and must survive host restarts, track progress across steps, and be triggered on demand from a Power Automate flow. The function currently runs on the Consumption plan and times out. Which approach best meets these requirements?
You are building an Azure Function (running on an App Service plan) that must call the Dataverse Web API to update account records nightly. Security policy prohibits storing any client secrets or certificates in application settings or code. The Function should authenticate to Dataverse using its own identity. Which approach should you implement?
Your Dataverse environment must offload heavy order-processing logic to Azure. When an order record reaches the 'Approved' status, a message should be sent to an Azure resource that reliably queues the work, and an Azure Function must automatically process each message as it arrives without polling or a schedule. You need to choose the trigger type for the Azure Function and the mechanism to deliver Dataverse events to it. Which approach meets these requirements with the least custom code?
A canvas app has an edit form bound to a Dataverse Account record. On the form you replaced the default data card control for the 'Primary Contact' lookup with a custom Combo box that shows contacts from the Contacts table. When a user opens an existing account, the Combo box appears empty even though the record already has a Primary Contact set. You need the Combo box to display the account's current Primary Contact when the form loads, while still allowing the user to change it. What should you do?
Your team maintains a canvas component library containing a branded header component that is consumed by six separate canvas apps across the environment. You publish a new version of the library that fixes a layout bug in the header component. Several app makers report that their apps still show the old buggy header even after you published the library. What must happen for the fix to appear in the consuming apps?
A retail company has five separate canvas apps, each maintained by a different team. All five apps need to display a standardized product-search bar with identical layout, styling, and behavior. Leadership wants a single definition of this search bar that, when updated, can be propagated to every app with minimal manual effort, while still allowing each app to pass in its own data source. Which approach best meets these requirements?
A canvas app lets field technicians submit inspection records to a Dataverse table using a Patch call inside an OnSelect. Occasionally the Patch fails due to a required-field business rule violation or a transient network error, and the technician sees no feedback while the record is silently lost. You must ensure that any failure is caught, the technician is shown a friendly message, and successful saves navigate to a confirmation screen. Which approach should you implement?
A canvas app displays outstanding purchase orders in a gallery bound to a collection named colOrders that was populated in App.OnStart using ClearCollect against a Dataverse table. Users report that when a colleague approves an order in a separate model-driven app, the canvas gallery continues to show the approved order as pending until the user closes and reopens the canvas app. The maker wants the gallery to reflect the latest server data whenever the user taps a 'Refresh' button, without rebuilding the collection logic in multiple places. Which approach should the maker implement?
A canvas app displays a gallery bound to a Dataverse table named Orders that contains over 80,000 records. You configure the gallery's Items property to sort the orders by the OrderTotal column in descending order and show only orders where Status equals 'Open'. Testers report the gallery appears to only work with a small subset of the data, and a blue underline warning appears in the formula bar. You need to ensure all matching records are considered while keeping the query delegable to the server. Which approach should you use?
A canvas app lets warehouse staff submit an inventory count. When the user taps a button, the app must call a Power Automate cloud flow that validates the count against an external ERP system and returns a calculated variance value plus a status message. The app needs to display the returned variance and status on the same screen immediately after the flow finishes. Which approach correctly returns and consumes the flow's data in the canvas app?
A model-driven app's main account form takes several seconds to load. Users report the delay happens before the form becomes interactive. You want to identify which OnLoad JavaScript handlers, business rules, and Web API retrieve calls consume the most time during the form load, without adding logging code to every script. Which tool and approach should you use to diagnose the bottleneck?
A field technician canvas app connects to a Dataverse table of maintenance tasks. Technicians frequently work in areas with no network connectivity. The app must let them view previously loaded task data and record status updates while offline, then reconcile the changes when connectivity returns. Which approach should you implement to persist the task data locally and allow it to be reloaded when the device is offline?
A canvas app's OnStart currently calls ClearCollect to load the current user's employee profile record from Dataverse into a collection named colProfile, and screens reference First(colProfile).Department. A senior developer asks you to reduce startup overhead and simplify formulas, since only a single record is ever needed and it should be cached in memory for the session. What is the most appropriate change?
A canvas app displays an order-approval gallery bound to a Dataverse table. Managers report that approvals made by colleagues on other devices do not appear until they close and reopen the app. You must make new and changed records visible automatically while minimizing unnecessary server calls and preserving delegation. Which approach best meets these requirements?
A canvas app has a Home screen with a gallery of customer records and a Details screen. When a user selects a customer in the gallery, you must open the Details screen and display that specific customer's data. The Details screen must continue to show the correct record even if the user navigates away and returns, and you want to avoid relying on the gallery's Selected property after navigation. Which approach best accomplishes this?
A canvas app screen calculates order totals in several controls. Each control repeatedly calls LookUp(Customers, CustomerID = varOrder.CustomerID) to fetch the same customer record, and then reads different fields (discount rate, region, credit limit) from the result. Users report the screen feels sluggish because the same Dataverse record is retrieved multiple times. You want to retrieve the record once and reference its fields across the calculations in a single, readable formula. Which Power Fx approach best achieves this?
You are building a nightly integration that copies only the records that changed in the Dataverse 'account' table since the previous run into an external reporting database. You want the Dataverse Web API to return both created/updated records and information about deleted records without you having to manually compare snapshots. What must you do first to enable this approach?
You are building a nightly console application that synchronizes Account records from Dataverse to an external reporting database. Change tracking is enabled on the Account table. On the very first run, your code calls RetrieveEntityChangesRequest without supplying a DataVersion (delta token). What happens, and what should your code do to prepare for future incremental runs?
You are building a nightly integration that copies newly created and modified Account records from Dataverse into an external reporting database. The Account table contains several million rows, and a full extract each night is too slow and consumes excessive API capacity. You want each run to retrieve only the records that changed since the previous run, including deletions, with minimal custom code. Which Dataverse capability should you use?
You are building a nightly synchronization process that copies new and updated Account records from Dataverse to an external reporting database. Change tracking is enabled on the Account table. On the first run you must retrieve all records and store a marker so that subsequent runs return only the records that changed since the previous run. Which Dataverse Web API request technique correctly retrieves the incremental changes on later runs?