PL-100 cheat sheet
PL-100 · Keep the key ideas within reach.
Design and manage business solutions
Environment strategy: default environments hold Dataverse and are backed up; developer environments are single-user and not intended for production; sandbox environments support managed solutions, testing, and copy/reset.
Solution layering order (bottom to top): system solutions, managed solutions, unmanaged customizations, then patches. Unmanaged customizations always win over managed layers at runtime.
Managed vs unmanaged: managed solutions cannot be edited directly and can be deleted cleanly; unmanaged solutions keep all components and can be exported as managed at export time.
Publisher prefix (2-8 characters) plus a customization prefix set the schema names of new tables and columns; changing the prefix later does not rename existing components.
Deleting a component from an unmanaged solution only removes it from the solution, not from the environment; deleting from a managed solution removes it from the environment.
Environment variables store configuration values with optional per-environment current values; Azure Key Vault references require a Key Vault secret URI and are resolved at runtime, not export.
Connection references decouple flows and apps from the credentials used; a solution containing a cloud flow requires a connection reference to be imported into another environment.
Security model: business units define data ownership boundaries; security roles are additive (privileges union); teams can own records and hold roles; column-level security uses field security profiles.
ALM path: develop in unmanaged solution, export managed, import to test, then to production; use pipelines or Power Platform CLI (pac solution) for automated deployment.
Analyze and visualize data
Power BI star schema: fact tables hold measures and foreign keys; dimension tables hold descriptive attributes; relationships are one-to-many from dimension to fact.
Relationship cross-filter direction: single direction filters from the one side to the many; bi-directional filtering introduces ambiguity and performance cost and is limited by security rules.
DAX CALCULATE changes filter context; it evaluates its filter arguments first and can override existing filters unless KEEPFILTERS is used.
Row context vs filter context: calculated columns evaluate row by row; measures evaluate in filter context. Use RELATED for many-to-one lookups and SUMX/AVERAGEX for row-by-row iteration.
Time intelligence functions such as TOTALYTD, SAMEPERIODLASTYEAR, and DATEADD require a marked date table with contiguous dates and no gaps.
Visual choice rule: comparison across categories uses bar or column charts; trend over time uses line charts; part-to-whole uses stacked bar or treemap; correlation uses scatter charts.
Row-level security: roles with DAX table filters plus a relationship to a user-mapping table; members added to the role in the Power BI service; test with "View as role".
Power BI report vs dashboard: a dashboard is a single-page canvas of pinned visuals from one or more reports and does not support cross-filtering across different reports.
Create business solutions
Canvas app delegation: filtering must be delegable to the data source; non-delegable functions (e.g., Search on some connectors, complex expressions) return only the first 500 or 2000 records.
Model-driven app forms: main form, quick create form, and quick view form; business rules run client-side and can set/show/hide/require fields and show error messages without code.
Power Automate trigger choice: automated flows use a connector event; instant flows use a manual trigger; scheduled flows use recurrence. Approval actions pause the run and resume on response.
Power Fx essentials: If(), Switch(), Coalesce(), and With() for scoping; LookUp() returns a single record; Filter() returns a table; Patch() creates or updates records.
Power Apps components and component libraries enable reuse across apps; custom connectors wrap REST APIs with authentication and are usable in both apps and flows.
Business process flows guide users through stages with required columns; they are stored in Dataverse and can branch based on conditions.
Dataverse plug-in pipeline stages: PreValidation, PreOperation (inside transaction), and PostOperation; synchronous plug-ins run in the transaction and can roll it back.
Choice columns vs lookup columns: choice stores a fixed option set value; lookup stores a reference to another table row and creates a relationship.