Exam PL-400: Microsoft Power Platform Developer — Questions and Answers
Question 1: How does the PL 400 body of knowledge relate to daily professional practice?
- It only applies during certification exams
- It is theoretical and has limited practical application
- It provides the foundational framework that guides decision-making and standard practices (Correct answer)
- It is relevant only for academic research
Correct answer: It provides the foundational framework that guides decision-making and standard practices
The body of knowledge provides the foundational framework of principles, standards, and best practices that professionals use to guide their daily decision-making, ensure consistent quality, and maintain alignment with industry standards.
Question 2: When building a custom connector that calls an Azure Function, which policy template in the connector designer lets you transform the request URL before it reaches the function?
- URL encode policy
- Set query parameter policy
- Rewrite URL policy (Correct answer)
- Set host URL policy
Correct answer: Rewrite URL policy
The 'Rewrite URL' policy template in the custom connector policy editor modifies the request path before sending it to the backend Azure Function.
Question 3: A Canvas App needs to call a custom Power Automate flow and use its return value. Which Power Fx expression correctly invokes the flow named 'GetOrderStatus'?
- Flows.GetOrderStatus()
- GetOrderStatus.Run() (Correct answer)
- Run('GetOrderStatus')
- PowerAutomate.Run('GetOrderStatus')
Correct answer: GetOrderStatus.Run()
After adding a flow to a Canvas App, it is invoked using the flow's display name followed by .Run() with any required parameters.
Question 4: A developer needs to programmatically refresh a subgrid on a model-driven app form without reloading the entire page. Which API should they call?
- formContext.data.refresh()
- Xrm.WebApi.retrieveMultipleRecords()
- formContext.ui.tabs.refresh()
- gridControl.refresh() (Correct answer)
Correct answer: gridControl.refresh()
The gridControl.refresh() method refreshes the subgrid control data without causing a full form reload.
Question 5: When using environment variables in a Power Automate solution, what is the primary benefit for ALM (Application Lifecycle Management)?
- Environment variables allow configuration values to differ per environment without changing the flow (Correct answer)
- Environment variables automatically sync values across all environments
- Environment variables increase flow execution speed
- Environment variables reduce Dataverse storage consumption
Correct answer: Environment variables allow configuration values to differ per environment without changing the flow
Environment variables store configuration values (like URLs or API keys) that can be set differently in dev, test, and production without modifying the flow itself.
Question 6: A canvas app must send an adaptive card to a Microsoft Teams channel when a form is submitted. Which connector should you use in Power Automate?
- Microsoft Teams connector with 'Post an Adaptive Card to a channel' action (Correct answer)
- Office 365 Outlook connector
- SharePoint connector
- Azure Communication Services connector
Correct answer: Microsoft Teams connector with 'Post an Adaptive Card to a channel' action
The Microsoft Teams connector provides a dedicated action to post adaptive cards directly to a Teams channel.
Question 7: A developer needs to implement offline capability in a canvas app so users can continue working without internet access. Which data source supports offline mode natively?
- Dataverse for Teams
- Local collections saved with SaveData/LoadData (Correct answer)
- SQL Server (direct connection)
- SharePoint Online list
Correct answer: Local collections saved with SaveData/LoadData
SaveData and LoadData functions store collection data in the device's local storage, enabling offline access in canvas apps.
Question 8: Which property in the OpenAPI definition controls the base URL that the custom connector uses to make API calls?
- externalDocs.url
- info.contact.url
- host and basePath (Swagger 2.0) or servers[].url (OpenAPI 3.0) (Correct answer)
- x-ms-api-annotation.url
Correct answer: host and basePath (Swagger 2.0) or servers[].url (OpenAPI 3.0)
In Swagger 2.0 the host and basePath fields combine to form the base URL; in OpenAPI 3.0 the servers array's url property serves this purpose.
Question 9: What does enabling 'Change Tracking' on a Dataverse table primarily support?
- Generating audit log entries
- Enforcing business rules on updates
- Efficient delta synchronization with external systems (Correct answer)
- Auditing column changes for compliance
Correct answer: Efficient delta synchronization with external systems
Change tracking allows external systems to retrieve only records that changed since the last sync, reducing data transfer.
Question 10: Which Power Apps formula function is used to add a new record to a collection without replacing existing records?
- Update(MyCollection, {...})
- Collect(MyCollection, {...}) (Correct answer)
- Patch(MyCollection, Defaults(MyCollection), {...})
- ClearCollect(MyCollection, {...})
Correct answer: Collect(MyCollection, {...})
Collect appends new records to an existing collection, while ClearCollect first removes all records before adding the new ones.
Question 11: Which Power Platform feature allows you to expose a Power Automate flow as a callable endpoint for external systems?
- Automated cloud flow with Dataverse trigger
- Scheduled cloud flow
- Flow with 'When an HTTP request is received' trigger (Correct answer)
- Instant cloud flow with manual trigger
Correct answer: Flow with 'When an HTTP request is received' trigger
The 'When an HTTP request is received' trigger generates a unique URL that external systems can POST to in order to invoke the flow.
Question 12: Which Power Apps formula correctly filters a SharePoint list named 'Orders' where the Status column equals 'Pending'?
- LookUp(Orders, Status, "Pending")
- Filter(Orders, Status = "Pending") (Correct answer)
- Sort(Orders, Status, "Pending")
- Search(Orders, "Pending", "Status")
Correct answer: Filter(Orders, Status = "Pending")
Filter() returns all records from a table that satisfy a condition, making it the correct choice for returning multiple matching rows.
Question 13: When should a developer use a Dataverse 'access team' instead of an 'owner team'?
- When a fixed set of users needs the same security role
- When record-level sharing with dynamic, per-record membership is required (Correct answer)
- When the team needs to own records
- When auditing team membership changes is required
Correct answer: When record-level sharing with dynamic, per-record membership is required
Access teams provide per-record sharing with dynamic membership defined by access team templates on a record-by-record basis.
Question 14: What role does collaboration play in power bi integration for PL 400 professionals?
- It reduces individual accountability
- It enhances outcomes through diverse perspectives and shared expertise (Correct answer)
- It slows down work unnecessarily
- It is only needed in emergencies
Correct answer: It enhances outcomes through diverse perspectives and shared expertise
Collaboration leverages diverse perspectives and combined expertise to achieve better outcomes than any individual could alone.
Question 15: Which formula correctly retrieves all records from a Dataverse table named 'Invoices' where the Status equals 'Open' and the Amount is greater than 1000?
- LookUp(Invoices, Status = "Open", Amount > 1000)
- Search(Invoices, "Open", "Status") && Amount > 1000
- Filter(Invoices, Status = "Open" && Amount > 1000) (Correct answer)
- Filter(Invoices, And(Status = "Open", Amount > 1000))
Correct answer: Filter(Invoices, Status = "Open" && Amount > 1000)
The Filter function with && (logical AND) combines multiple conditions and is delegable to Dataverse for server-side filtering.
Question 16: A developer needs to make a field visible only when another field has a specific value in a model-driven app form. What is the simplest approach that requires no JavaScript?
- OnSave JavaScript event handler
- Custom plug-in on Retrieve
- Business rule with Show/Hide action (Correct answer)
- Computed column in Dataverse
Correct answer: Business rule with Show/Hide action
Business rules with Show/Hide actions can conditionally show or hide fields based on field values without requiring any JavaScript code.
Question 17: Which Power Platform CLI command packages loose solution files from a directory back into a .zip solution file?
- pac solution build
- pac solution pack (Correct answer)
- pac solution compress
- pac solution export
Correct answer: pac solution pack
The 'pac solution pack' command reads unpacked solution files from a directory and assembles them into a deployable .zip solution file.
Question 18: Which API endpoint is used to retrieve a list of reports in a Power BI workspace using the Power BI REST API?
- GET /v1.0/myorg/reports?workspaceId={id}
- GET /v1.0/myorg/datasets/{datasetId}/reports
- GET /v1.0/myorg/groups/{groupId}/reports (Correct answer)
- GET /v1.0/myorg/workspaces/{id}/listreports
Correct answer: GET /v1.0/myorg/groups/{groupId}/reports
The endpoint GET /v1.0/myorg/groups/{groupId}/reports returns all reports in a specified workspace (group) via the Power BI REST API.
Question 19: Which environment variable type should be used to store a JSON configuration object in Power Platform?
- JSON (Secret)
- Number
- Data source
- Text (Correct answer)
Correct answer: Text
JSON configuration objects can be stored as Text type environment variables, as there is no dedicated JSON type — Text supports arbitrary string content including JSON.
Question 20: In the context of Power Platform ALM, what does the 'unpack' operation do to a solution file?
- Extracts solution components into individual files for source control (Correct answer)
- Converts a managed solution to unmanaged
- Deletes unused components from the solution
- Removes all customizations from a solution
Correct answer: Extracts solution components into individual files for source control
Unpacking a solution extracts its XML components into individual files that can be tracked in source control systems like Git.
Question 21: Which design principle is MOST critical for PL 400 professionals to ensure long-term viability?
- Creating the most complex solution possible
- Balancing functionality, sustainability, scalability, and compliance requirements (Correct answer)
- Minimizing initial costs above all other factors
- Using the most advanced technology available
Correct answer: Balancing functionality, sustainability, scalability, and compliance requirements
Long-term viability requires balancing multiple design considerations: the solution must function as intended, be sustainable over its lifecycle, scale to accommodate future needs, and comply with relevant regulations and standards.
Question 22: A Canvas App needs to send an email via the Office 365 Outlook connector. Which function call is correct?
- SendEmail(Office365Outlook, to, subject, body)
- Office365Outlook.SendEmailV2(to, subject, body) (Correct answer)
- OutlookConnector.Send({to, subject, body})
- Email.Send(to, subject, body)
Correct answer: Office365Outlook.SendEmailV2(to, subject, body)
The Office 365 Outlook connector exposes SendEmailV2() as the standard action for sending emails from a Canvas App.
Question 23: A Power Automate flow uses an HTTP connector to call an internal API that requires OAuth 2.0. The token must be refreshed automatically. Which approach is most appropriate?
- Store the access token in a flow variable and manually refresh it
- Hardcode the bearer token in the HTTP action header
- Use a custom connector with OAuth 2.0 authentication configured (Correct answer)
- Use a connection reference pointing to a generic HTTP connector
Correct answer: Use a custom connector with OAuth 2.0 authentication configured
Custom connectors support OAuth 2.0 configuration that handles token acquisition and refresh automatically, abstracting credential management from the flow.
Question 24: A developer wants to prevent a record from being deleted based on business logic inside a plugin. What is the correct approach?
- Throw an InvalidPluginExecutionException (Correct answer)
- Call context.AbortPipeline()
- Set context.OutputParameters['Cancel'] = true
- Return false from the Execute method
Correct answer: Throw an InvalidPluginExecutionException
Throwing InvalidPluginExecutionException aborts the operation and surfaces the message to the user as a business error.
Question 25: When configuring a canvas app for use in Microsoft Teams, which publishing action makes it available to an organization's Teams users?
- Embed the app URL in a Teams tab using a Website tab
- Share the app with the 'Everyone' security group in Power Apps admin center
- Export the app and upload it as a Teams custom app package
- Add the app to Teams using the Power Apps Teams app and publish to the org app catalog (Correct answer)
Correct answer: Add the app to Teams using the Power Apps Teams app and publish to the org app catalog
The Power Apps Teams app allows adding a canvas app as a tab and publishing it to the organizational app catalog for broad Teams access.
Question 26: A developer needs to ensure Power Pages (portals) forms do not expose Dataverse table names or column schema to anonymous web users. Which setting prevents schema exposure?
- Set all Dataverse tables to private in the maker portal
- Enable Azure Front Door WAF rules for the portal
- Disable the Dataverse Web API for the portal
- Configure table permissions to deny global read and restrict the OData endpoint (Correct answer)
Correct answer: Configure table permissions to deny global read and restrict the OData endpoint
Properly configured table permissions prevent the portal's OData endpoint from exposing table schemas or returning unauthorized records to anonymous users.
Question 27: Which approach best demonstrates mastery of power bi integration in PL 400 practice?
- Avoiding complex scenarios
- Following procedures without understanding
- Relying entirely on technology
- Applying principles to novel situations with sound judgment (Correct answer)
Correct answer: Applying principles to novel situations with sound judgment
True mastery involves understanding underlying principles well enough to apply them to new and unfamiliar situations with professional judgment.
Question 28: Which Dataverse capability allows developers to define a set of columns that are automatically populated with a sequential number when a record is created?
- Formula column
- Default value column
- Calculated column
- Autonumber column (Correct answer)
Correct answer: Autonumber column
Autonumber columns generate sequential or custom-formatted numbers automatically when records are created.
Question 29: What role does collaboration play in custom connectors for PL 400 professionals?
- It slows down work unnecessarily
- It enhances outcomes through diverse perspectives and shared expertise (Correct answer)
- It is only needed in emergencies
- It reduces individual accountability
Correct answer: It enhances outcomes through diverse perspectives and shared expertise
Collaboration leverages diverse perspectives and combined expertise to achieve better outcomes than any individual could alone.
Question 30: How often should PL 400 compliance training be conducted?
- At regular intervals as required by regulations (Correct answer)
- Only during initial orientation
- Every five years
- Only when violations occur
Correct answer: At regular intervals as required by regulations
Compliance training must be conducted at regular intervals as specified by applicable regulations to keep practitioners current.
Question 31: Which practice improves the security of power apps development implementations?
- Using default credentials
- Input validation and principle of least privilege (Correct answer)
- Granting maximum permissions to all users
- Disabling all logging
Correct answer: Input validation and principle of least privilege
Input validation prevents injection attacks while the principle of least privilege limits the damage potential of any compromised component.
Question 32: A developer is building a solution where Dataverse data changes must update a Power BI streaming dataset in near real-time. What combination achieves this?
- Dataverse change tracking + Azure Data Factory + Power BI import
- Dataverse plugin + Power Automate flow + Power BI push dataset (Correct answer)
- Dataverse virtual table + DirectQuery dataset
- Dataverse export to data lake + Power BI composite model
Correct answer: Dataverse plugin + Power Automate flow + Power BI push dataset
A Dataverse plug-in or Power Automate trigger can detect record changes and use the Power BI connector to push data to a streaming (push) dataset in near real-time.
Question 33: A developer needs to assign a record to a team rather than an individual user. Which team type in Dataverse automatically creates and manages membership based on security roles?
- Access team
- AAD Group team (Correct answer)
- Owner team
- Business Unit team
Correct answer: AAD Group team
Azure Active Directory (AAD) Group teams automatically sync membership from an AAD group and can be assigned security roles.
Question 34: What automation logic is used in step 9?
- Proper automation logic 9 (Correct answer)
- Manual process
- Skip triggers
- Repeat errors
Correct answer: Proper automation logic 9
Similar to Q1, this question refers to a specific step (step 9) in an automation workflow. "Proper automation logic 9" indicates that the design and implementation of this particular step adhere to established best practices and requirements for automation within the Power Platform. This ensures the step executes correctly, contributing to the overall efficiency and reliability of the automated process.
Question 35: Which integration method fits scenario 3?
- Unstable API
- Ignore integration
- Unsecured link
- Secure connector 3 (Correct answer)
Correct answer: Secure connector 3
For scenario 3, the correct integration method is "Secure connector 3," implying that a specific, secure connection mechanism is required for this particular integration need within the Power Platform. Utilizing a secure connector ensures that data is exchanged reliably and safely between systems, adhering to necessary authentication and authorization protocols. This approach is crucial for maintaining data security and system integrity.
Question 36: A developer is implementing a canvas app that connects to Dataverse. They want the app to always use the signed-in user's permissions rather than a shared service account. Which connection type ensures this?
- Use an on-premises data gateway connection
- Connect using 'Connect with the logged in user' (non-embedded) connection (Correct answer)
- Use a connection reference with embedded credentials
- Create a connection reference pointing to an application user
Correct answer: Connect using 'Connect with the logged in user' (non-embedded) connection
Non-embedded connections in canvas apps pass through the signed-in user's identity to Dataverse, ensuring Dataverse security roles apply per individual user.
Question 37: In PL 400 certification, what is the purpose of automated testing?
- To replace manual code review entirely
- To slow down development
- To catch regressions and verify functionality continuously (Correct answer)
- To increase server costs
Correct answer: To catch regressions and verify functionality continuously
Automated testing catches regressions early and verifies that functionality works as expected, providing confidence in code changes.
Question 38: Which action should be taken when a solution import fails in production due to a missing dependency?
- Import the dependency solution first, then retry the main solution import (Correct answer)
- Manually create the missing component in production
- Increase the solution version number and re-export
- Delete the solution and restart the import
Correct answer: Import the dependency solution first, then retry the main solution import
Missing dependency errors require importing the prerequisite solution that contains the needed component before the dependent solution can be imported successfully.
Question 39: In Microsoft Certified Power Platform Developer Associate practice, what is the CORRECT sequence when performing a technical procedure?
- Execute immediately and document only if issues arise
- Execute, then plan and review
- Plan, prepare, execute, verify, and document (Correct answer)
- Document, execute, then plan
Correct answer: Plan, prepare, execute, verify, and document
The correct sequence follows a systematic approach: plan the procedure, prepare necessary resources, execute according to standards, verify results meet specifications, and document the process and outcomes. This ensures quality and accountability.
Question 40: A flow triggers when a SharePoint list item is created. The developer wants the flow to run only if the item's 'Status' field equals 'Approved'. What is the most efficient approach?
- Use a Do Until loop checking the field
- Add a Condition action after the trigger
- Add a Scope with a condition inside
- Use a Filter Query on the trigger (Correct answer)
Correct answer: Use a Filter Query on the trigger
Using a Filter Query on the trigger prevents unnecessary flow runs by filtering at the data source level.
Exam PL-400: Microsoft Power Platform Developer
This certification validates the skills of developers to design, develop, secure, and troubleshoot solutions built on the Microsoft Power Platform.
Exam Rules
- You can skip questions and return to them later
- Flag questions for review before submitting
- No feedback shown until you submit the entire exam
- Unanswered questions count as wrong — answer everything
- 10 pretest questions are mixed in and don't affect your score
- Timer auto-submits when time runs out
- Your progress is auto-saved every 30 seconds