Skip to content

Power Platform App Maker Associate (PL-100) - Practice Questions

15 questions for PL-100 prep, weighted toward creating apps (30-35%), then designing business solutions (20-25%), working with data and services (15-20%), and deployment and business logic.

Cert page: exams/azure/pl-100/


Question 1

Scenario: Requirements gathering reveals a process with several stages, approvals, and a consistent data model used by internal staff.

A. A Power BI report with slicers and drill-through pages, shared with the staff who work on the process each day B. A canvas app, designed screen by screen with galleries and forms C. A model-driven app with a business process flow that guides users through the stages and approvals D. A Power Pages site, where internal staff sign in with a work account and complete the process on the web

Answer **Correct: C** **Why:** Model-driven apps generate consistent forms and views from the Dataverse model, and business process flows guide users through defined stages. Canvas apps would mean hand-building each screen and reimplementing stage logic. Process-heavy internal applications are the model-driven sweet spot.

Question 2

Scenario: A canvas app gallery should show only records assigned to the signed-in user, and the data source has 20,000 rows.

A. Set the data row limit to 2,000, the maximum, so the gallery can see more rows than the default of 500 B. Filter(Cases, Owner.Email = User().Email) using a delegable source and a delegable column C. Load all records into a collection first with ClearCollect, then filter the collection by owner in the gallery D. Filter(Cases, Owner.Email = User().Email) with a non-delegable expression

Answer **Correct: B** **Why:** Delegation is the central canvas app performance concept: when an expression is delegable, the filter runs at the data source, so only matching rows come back. Non-delegable expressions silently operate on the first 500 to 2,000 rows and give wrong results without an error. Collecting everything locally has the same ceiling.

Question 3

Scenario: A field must be required only when another field equals "Other".

A. A DLP policy that classifies the connectors in the environment and blocks the ones that are not business data B. A security role that removes write access to the field C. A classic workflow that runs after save and clears empty records D. A Dataverse business rule with a condition and a set-requirement action

Answer **Correct: D** **Why:** Business rules apply declarative field logic (show or hide, set required, set value, validate) at the table level, so they apply consistently in every model-driven app and form. Implementing it in one form's script would leave the other entry points unvalidated.

Question 4

Scenario: Data is currently in an Excel file on SharePoint and must move into Dataverse.

A. Use Power BI to connect to the workbook and publish the data as a dataset that the app can read from B. Copy and paste the rows manually into the table grid in batches, checking the columns by eye each time C. Rebuild the app around Excel as the data source, reading the workbook on SharePoint through a connector D. Dataflows to map columns, or the import wizard for one-off loads

Answer **Correct: D** **Why:** Dataflows handle the transform and the column mapping and can be refreshed on a schedule, which is what you want if the source keeps producing files. Keeping Excel as the backing store means no relational integrity, no row-level security, and delegation problems.

Question 5

Scenario: A canvas app should navigate to a detail screen and pass the selected record.

A. Refresh(Gallery1), which reloads the gallery's data source B. Navigate(DetailScreen, ScreenTransition.Cover, {SelectedItem: Gallery1.Selected}) C. Set(DetailScreen, Gallery1.Selected), which stores a global variable D. Patch(DetailScreen, Gallery1.Selected), which updates the screen

Answer **Correct: B** **Why:** `Navigate` moves between screens and its third argument passes context variables. `Patch` writes records, `Set` creates a global variable, and `Refresh` re-reads a data source. Using a context variable rather than a global keeps the value scoped to the screen that needs it.

Question 6

Scenario: A form should save a new record and handle failure gracefully.

A. SubmitForm(Form1) with OnFailure showing the error and OnSuccess moving on B. Navigate() only, moving to the confirmation screen right after the button is pressed, without checking the save C. Patch() with no error handling, trusting the data source to report any failure to the user itself D. Reset(Form1), which clears the form controls so that the user can start the next record straight away

Answer **Correct: A** **Why:** `SubmitForm` performs validation and writes, and the form's `OnSuccess` and `OnFailure` properties are where you handle both outcomes. Navigating away unconditionally is the common bug that hides save failures from users.

Question 7

Scenario: A solution must be moved from development to production so that production components cannot be edited directly.

A. Export as unmanaged, then import into production and lock the components with a security role B. Copy the app by hand from the development environment, re-creating each screen and connection in production C. Export as a managed solution and import into production D. Let users work in the dev environment

Answer **Correct: C** **Why:** Managed solutions lock components in the target environment and can be cleanly uninstalled, which is why they are the standard for anything downstream of development. Unmanaged solutions are for the development environment where components are still being authored.

Question 8

Scenario: A connection reference and an environment variable are used in a solution. Why?

A. So connections and configuration values can differ per environment without editing the components B. To improve performance, because values stored in environment variables are cached in the app after the first load C. They are mandatory in canvas apps, which will not open without them D. To hard-code URLs and keys into the components in every environment

Answer **Correct: A** **Why:** Without them, a flow imported into production would still point at the development SharePoint site and the developer's connection. Connection references and environment variables are the parameterization that makes a solution genuinely portable across environments.

Question 9

Scenario: An app must be usable by someone relying on a screen reader.

A. Add more images with decorative effects, since pictures help users who cannot read long text on the screen B. Set accessible labels on controls, ensure tab order and focus are logical, and check color contrast with the accessibility checker C. Increase the font size only, since a larger size is all that a screen reader needs to read the text D. Nothing, because Power Apps handles it automatically, and every control is labeled for readers by default

Answer **Correct: B** **Why:** The accessibility checker in Power Apps Studio flags missing labels, contrast problems, and tab order issues. PL-100 explicitly covers accessibility, and it is one of the areas where a low-code tool will happily let you ship something unusable if you never check.

Question 10

Scenario: Users report the app is slow to open.

A. Disable delegation warnings in the app settings, which stops the app from checking the queries it sends B. Increase the license tier for the users, since higher plans get more capacity for the app to run on C. Reduce controls per screen, avoid heavy OnStart work, use concurrent loading, and delegate queries so the data source does the filtering D. Add more screens, so that each screen holds fewer controls and users spend less time on each one

Answer **Correct: C** **Why:** Startup cost is dominated by `OnStart` logic and the number of controls loaded. `Concurrent()` parallelizes independent calls, and delegation keeps data volumes small. Suppressing delegation warnings hides the problem that is most likely causing both slowness and wrong data.

Question 11

Scenario: A model-driven app must show related cases on the account form.

A. A one-to-many relationship with a related records subgrid on the form B. A Power BI tile embedded on the form, filtered by the account, with the case list shown in the report C. A separate app that lists the cases, opened from a link on the account form with the account id D. A canvas gallery added by hand onto the form, filtered by the account through a custom connector

Answer **Correct: A** **Why:** The relationship is what makes the subgrid possible, so the data model comes first and the form follows. This is the model-driven pattern in miniature: define the relationship in Dataverse and the UI capability follows automatically.

Question 12

Scenario: An app must send a notification when a record's status becomes Approved.

A. A scheduled flow that runs every minute and checks all the records for any with the status Approved B. A business rule on the table that sends the message when the status field changes to the value Approved C. A Dataverse-triggered cloud flow filtered on the status column D. Manual email from the approver to the requester

Answer **Correct: C** **Why:** The Dataverse connector's "when a row is modified" trigger supports filtering to specific columns, so the flow only fires on the change you care about. A one-minute schedule burns API calls and adds latency. Business rules do field logic and cannot send mail.

Question 13

Scenario: Sensitive salary data in a Dataverse table must be hidden from most users but visible to HR.

A. Column-level security with a security profile granting HR read access B. A canvas app filter that hides the salary column C. Hiding the column on the form D. A different table for salary data, with the same security role as the main table, and a lookup between them

Answer **Correct: A** **Why:** Column (field) level security enforces at the platform, so the value is masked in every app, view, export, and API call. Hiding a column in a form or filtering in a canvas app is presentation only and is bypassed by anyone using another client.

Question 14

Scenario: A maker needs to validate that a solution meets requirements before release.

A. Ship and see, then collect the feedback from users in the first week and fix what they report B. A performance test only, run with a load tool against the main screens, with a report of response times C. Peer review of screenshots, where another maker checks each screen against the requirement list D. User acceptance testing against the documented requirements, plus the solution checker

Answer **Correct: D** **Why:** Solution checker analyzes for performance, stability, and security issues automatically, and UAT validates the thing nobody can automate: whether it solves the business problem. PL-100 treats requirements traceability as part of the maker's job, not the sponsor's.

Question 15

Scenario: An app should be shared with a department of 200 users with the least ongoing administration.

A. Email the app link to the department B. Share with a Microsoft Entra security group C. Share with each user individually, adding the 200 names in the share panel and the data permissions to match D. Open the app to the entire tenant

Answer **Correct: B** **Why:** Group-based sharing means joiners and leavers are handled by group membership, which is already maintained. Individual sharing turns every personnel change into an administrative task and reliably leaves ex-members with access.

Where to go deeper