Microsoft PL-400 Practice Test 30
Question 290
A workflow needs two linked records saved together but dispatches separate uncoordinated HTTP writes that can partially succeed. Which observable test result BEST confirms that the intended Power Platform component behaves correctly?
- A record update yields one intended side effect even when another plug-in or flow touches the same row.
- Related writes either commit in the intended atomic scope or fail with precise recoverable evidence.
- Transient throttling recovers without overwhelming Dataverse or creating duplicate rows.
- A function retrieves only authorized Dataverse rows without shipping plaintext client secrets in configuration.
Explanation
Correct Answer
B:Related writes either commit in the intended atomic scope or fail with precise recoverable evidence. This is an observable application, data or security outcome, not merely a successful build message. OData $batch requests are not automatically one atomic database transaction; a change set and service semantics matter.
Incorrect Answers
A:A record update yields one intended side effect even when another plug-in or flow touches the same row. This result validates Plug-in recursion depth and idempotent registration instead of the component in question. Here the specific acceptance check is: Related writes either commit in the intended atomic scope or fail with precise recoverable evidence.
C:Transient throttling recovers without overwhelming Dataverse or creating duplicate rows. This result validates Dataverse API service-protection throttle retry instead of the component in question. Here the specific acceptance check is: Related writes either commit in the intended atomic scope or fail with precise recoverable evidence.
D:A function retrieves only authorized Dataverse rows without shipping plaintext client secrets in configuration. This result validates Managed identity Azure Function to Dataverse instead of the component in question. Here the specific acceptance check is: Related writes either commit in the intended atomic scope or fail with precise recoverable evidence.
Question 291
A mobile app and a flow both require a single reusable pricing operation with controlled transaction semantics. Which evidence should the developer inspect FIRST to distinguish the root cause or verify the prerequisite?
- Inspect environment and agent IDs, user auth, session lifecycle, tool event handling, response streaming and retries.
- Inspect token audience/scopes, app registration, app-user Dataverse role, expiration and token cache security.
- Inspect custom API uniqueness, bound/unbound setting, parameters, Execute privilege, registration and returned response shape.
- Inspect trigger type, correlation ID, Dataverse service principal, function timeout, queue visibility and failed-message policy.
Explanation
Correct Answer
C:Inspect custom API uniqueness, bound/unbound setting, parameters, Execute privilege, registration and returned response shape. These observations separate this failure from adjacent capabilities or permissions. A custom API defines a formal operation; creating only a plug-in assembly does not expose the message contract. The relevant implementation is: Define a Dataverse custom API with request/response properties, allowed caller, binding type and registered plug-in implementation.
Incorrect Answers
A:Inspect environment and agent IDs, user auth, session lifecycle, tool event handling, response streaming and retries. These checks are relevant to Copilot Studio client library consumption, but are not the most discriminating first evidence for this case. Inspect instead: Inspect custom API uniqueness, bound/unbound setting, parameters, Execute privilege, registration and returned response shape.
B:Inspect token audience/scopes, app registration, app-user Dataverse role, expiration and token cache security. These checks are relevant to OAuth delegated vs client credential in Dataverse, but are not the most discriminating first evidence for this case. Inspect instead: Inspect custom API uniqueness, bound/unbound setting, parameters, Execute privilege, registration and returned response shape.
D:Inspect trigger type, correlation ID, Dataverse service principal, function timeout, queue visibility and failed-message policy. These checks are relevant to Azure Functions for long-running Dataverse work, but are not the most discriminating first evidence for this case. Inspect instead: Inspect custom API uniqueness, bound/unbound setting, parameters, Execute privilege, registration and returned response shape.
Question 292
A custom page is opened in a new browser window although it should be a model-driven application dialog. Which Power Platform extension or architecture change BEST addresses the core requirement?
- Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page.
- Register OnChange handlers once, target supported events and prevent event-recursion when setting attribute values programmatically.
- Use supported Xrm.Navigation dialogs, notifications and openForm or navigateTo APIs rather than manipulating window location directly.
- Avoid redundant network calls, unnecessary re-rendering and leaked listeners; use pagination, memoization and cleanup when appropriate.
Explanation
Correct Answer
C:Use supported Xrm.Navigation dialogs, notifications and openForm or navigateTo APIs rather than manipulating window location directly. This choice implements the controlling platform requirement rather than masking the symptom. Client API navigation/dialog methods provide supported host behavior that ad hoc browser redirects may bypass. Verify the change using: Inspect modal return values, navigation options, form notification IDs, record identifiers and asynchronous cancel behavior.
Incorrect Answers
A:Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. That action addresses Model-driven formContext from execution context instead. The Client API formContext comes from the event context; standalone Web API calls do not expose a form object. For this case, the targeted action is: Use supported Xrm.Navigation dialogs, notifications and openForm or navigateTo APIs rather than manipulating window location directly.
B:Register OnChange handlers once, target supported events and prevent event-recursion when setting attribute values programmatically. That action addresses OnChange handlers and loop prevention instead. Setting an attribute value does not always trigger OnChange automatically; explicit event invocation can create loops. For this case, the targeted action is: Use supported Xrm.Navigation dialogs, notifications and openForm or navigateTo APIs rather than manipulating window location directly.
D:Avoid redundant network calls, unnecessary re-rendering and leaked listeners; use pagination, memoization and cleanup when appropriate. That action addresses Code app render performance and resource cleanup instead. More client-side code and data preloading are not always faster than a filtered delegated server query. For this case, the targeted action is: Use supported Xrm.Navigation dialogs, notifications and openForm or navigateTo APIs rather than manipulating window location directly.
Question 293
A requirement for an accessible interactive grid is implemented with repeated form OnLoad JavaScript and no reusable control. Which Power Platform extension or architecture change BEST addresses the core requirement?
- Use configured Dataverse table relationships and a business rule before adding a custom plug-in when requirements fit declarative capabilities.
- Choose model-driven JavaScript for form interaction, PCF for reusable field/dataset controls, and code apps for a broader custom React-based experience.
- Use solution environment variables for per-environment configuration and connection references for connector bindings, rather than hardcoded identifiers or secrets.
- Apply Dataverse security roles, teams and business-unit ownership plus application-user permissions to authorize the component at the correct data scope.
Explanation
Correct Answer
B:Choose model-driven JavaScript for form interaction, PCF for reusable field/dataset controls, and code apps for a broader custom React-based experience. This choice implements the controlling platform requirement rather than masking the symptom. A PCF control is a hosted component rather than a standalone app, while scripts target the model-driven Client API. Verify the change using: Compare host form lifecycle, accessibility, reuse, data access, application complexity and deployment requirements.
Incorrect Answers
A:Use configured Dataverse table relationships and a business rule before adding a custom plug-in when requirements fit declarative capabilities. That action addresses Out-of-box table/form choice versus server extension instead. Code introduces deployment and maintenance overhead; client-only rules do not enforce server-side invariants. For this case, the targeted action is: Choose model-driven JavaScript for form interaction, PCF for reusable field/dataset controls, and code apps for a broader custom React-based experience.
C:Use solution environment variables for per-environment configuration and connection references for connector bindings, rather than hardcoded identifiers or secrets. That action addresses Environment variables and connection references instead. Environment variables are configuration inputs; they do not replace safe credential storage or connector authorization. For this case, the targeted action is: Choose model-driven JavaScript for form interaction, PCF for reusable field/dataset controls, and code apps for a broader custom React-based experience.
D:Apply Dataverse security roles, teams and business-unit ownership plus application-user permissions to authorize the component at the correct data scope. That action addresses Least-privilege technical authorization design instead. UI hiding and a valid OAuth token alone do not establish Dataverse record authorization. For this case, the targeted action is: Choose model-driven JavaScript for form interaction, PCF for reusable field/dataset controls, and code apps for a broader custom React-based experience.
Question 294
A developer adds a wildcard script-src to fix one missing origin, unintentionally allowing arbitrary remote script execution. Which TWO complementary steps provide the intended implementation AND the evidence needed to validate it? Select TWO.
- Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard.
- Avoid redundant network calls, unnecessary re-rendering and leaked listeners; use pagination, memoization and cleanup when appropriate.
- Inspect browser network errors, telemetry configuration, sampling, request correlation, exception events and user consent.
- Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers.
- The app displays agent results with attributable tool calls and blocks unauthorized record writes.
Explanation
Correct Answers
A:Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard. This choice implements the controlling platform requirement rather than masking the symptom. A CSP error cannot be reliably fixed by disabling every restriction; precise origins should be justified. Verify the change using: Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers. This is the implementation half of the required two-step answer.
D:Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers. These observations separate this failure from adjacent capabilities or permissions. A CSP error cannot be reliably fixed by disabling every restriction; precise origins should be justified. The relevant implementation is: Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard. This is the diagnostic/verification half of the required two-step answer.
Incorrect Answers
B:Avoid redundant network calls, unnecessary re-rendering and leaked listeners; use pagination, memoization and cleanup when appropriate. This step belongs to Code app render performance and resource cleanup rather than the complementary pair here. The required action is: Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard. And its evidence is: Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers.
C:Inspect browser network errors, telemetry configuration, sampling, request correlation, exception events and user consent. This step belongs to Code app Application Insights instrumentation rather than the complementary pair here. The required action is: Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard. And its evidence is: Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers.
E:The app displays agent results with attributable tool calls and blocks unauthorized record writes. This step belongs to Code app consuming Copilot Studio agent rather than the complementary pair here. The required action is: Configure allowed origins for scripts, styles, connections and frames according to the code app CSP rather than setting a permissive wildcard. And its evidence is: Review browser CSP violation logs, required identity endpoints, connector hosts, unsafe-inline usage and approved headers.
Question 295
A triage agent passes an unverified instruction to a refund agent that immediately approves payment. Which observable test result BEST confirms that the intended Power Platform component behaves correctly?
- The operation succeeds using its intended identity and forbidden tables remain denied to that principal.
- The receiving agent produces a traceable response with correct customer scope and no unintended action handoff.
- Only relevant table changes start the flow and a self-update does not cause unbounded reentry.
- The agent reads authorized records and cannot modify a customer account through an undeclared or unapproved tool.
Explanation
Correct Answer
B:The receiving agent produces a traceable response with correct customer scope and no unintended action handoff. This is an observable application, data or security outcome, not merely a successful build message. A multi-agent conversation needs explicit context and security boundaries; text from one agent is not trusted instruction for another.
Incorrect Answers
A:The operation succeeds using its intended identity and forbidden tables remain denied to that principal. This result validates OAuth delegated vs client credential in Dataverse instead of the component in question. Here the specific acceptance check is: The receiving agent produces a traceable response with correct customer scope and no unintended action handoff.
C:Only relevant table changes start the flow and a self-update does not cause unbounded reentry. This result validates Power Automate Dataverse trigger filter columns and OData instead of the component in question. Here the specific acceptance check is: The receiving agent produces a traceable response with correct customer scope and no unintended action handoff.
D:The agent reads authorized records and cannot modify a customer account through an undeclared or unapproved tool. This result validates Microsoft Foundry agent tool access via MCP servers instead of the component in question. Here the specific acceptance check is: The receiving agent produces a traceable response with correct customer scope and no unintended action handoff.
Question 296
A component is present in a solution ZIP but not added to any model-driven form or canvas app control. Which evidence should the developer inspect FIRST to distinguish the root cause or verify the prerequisite?
- Inspect query $select/$filter encoding, returned nextLink, caller role, promises, network failure and lookup logical names.
- Inspect control manifest property of-type, usage, component namespace, platform libraries and compiled resource paths.
- Inspect manifest features, host capabilities, API permissions, dataset type and PCF solution lifecycle.
- Inspect build output, managed solution version, component registration, table field compatibility and app publication.
Explanation
Correct Answer
D:Inspect build output, managed solution version, component registration, table field compatibility and app publication. These observations separate this failure from adjacent capabilities or permissions. A successful npm build is not equivalent to deploying and configuring a PCF in the target environment. The relevant implementation is: Package PCF through supported tooling, include built assets in a solution and bind the component to the intended column or dataset.
Incorrect Answers
A:Inspect query $select/$filter encoding, returned nextLink, caller role, promises, network failure and lookup logical names. These checks are relevant to Dataverse Xrm.WebApi asynchronous lookups, but are not the most discriminating first evidence for this case. Inspect instead: Inspect build output, managed solution version, component registration, table field compatibility and app publication.
B:Inspect control manifest property of-type, usage, component namespace, platform libraries and compiled resource paths. These checks are relevant to PCF ControlManifest inputs and resources, but are not the most discriminating first evidence for this case. Inspect instead: Inspect build output, managed solution version, component registration, table field compatibility and app publication.
C:Inspect manifest features, host capabilities, API permissions, dataset type and PCF solution lifecycle. These checks are relevant to PCF WebAPI Device and Utility usage, but are not the most discriminating first evidence for this case. Inspect instead: Inspect build output, managed solution version, component registration, table field compatibility and app publication.
Question 297
A timer-triggered function runs without a human user but is coded with a personal user credential. Which Power Platform extension or architecture change BEST addresses the core requirement?
- Use Azure Functions to offload expensive work from synchronous Dataverse plug-ins while authenticating separately and tracking completion.
- Expose Power Platform operations to Foundry agents using governed MCP servers and explicit tool schemas, permissions and audit traces.
- Integrate Foundry custom agents with Copilot Studio agents through supported connectors or contracts while preserving identity and handoff context.
- Authenticate Azure Functions through an eligible managed identity or governed service principal with Dataverse application-user roles.
Explanation
Correct Answer
D:Authenticate Azure Functions through an eligible managed identity or governed service principal with Dataverse application-user roles. This choice implements the controlling platform requirement rather than masking the symptom. Managed identity is a token mechanism, not proof the target Dataverse application user has privileges. Verify the change using: Inspect identity object ID, token audience, Dataverse app user, table privileges, role assignments and secret usage.
Incorrect Answers
A:Use Azure Functions to offload expensive work from synchronous Dataverse plug-ins while authenticating separately and tracking completion. That action addresses Azure Functions for long-running Dataverse work instead. Function execution is not automatically atomic with the Dataverse operation that queued it. For this case, the targeted action is: Authenticate Azure Functions through an eligible managed identity or governed service principal with Dataverse application-user roles.
B:Expose Power Platform operations to Foundry agents using governed MCP servers and explicit tool schemas, permissions and audit traces. That action addresses Microsoft Foundry agent tool access via MCP servers instead. MCP advertises callable tools; their presence does not override Dataverse role-based authorization. For this case, the targeted action is: Authenticate Azure Functions through an eligible managed identity or governed service principal with Dataverse application-user roles.
C:Integrate Foundry custom agents with Copilot Studio agents through supported connectors or contracts while preserving identity and handoff context. That action addresses Foundry to Copilot Studio agent orchestration instead. A multi-agent conversation needs explicit context and security boundaries; text from one agent is not trusted instruction for another. For this case, the targeted action is: Authenticate Azure Functions through an eligible managed identity or governed service principal with Dataverse application-user roles.
Question 298
A service-to-service integration acquires a token but receives a Dataverse forbidden error due to missing app-user security role. Which Power Platform extension or architecture change BEST addresses the core requirement?
- Use expressions such as coalesce, empty, formatDateTime and guarded JSON parsing with explicit type assumptions.
- Use delegated OAuth for a signed-in user's work and client credentials with a constrained application user for unattended integration.
- Use child flows inside solutions to share reusable logic with declared inputs, outputs and correct run-only connection behavior.
- Use the Dataverse Web API with logical names, $select, encoded $filter and @odata.nextLink pagination instead of retrieving unrestricted rows.
Explanation
Correct Answer
B:Use delegated OAuth for a signed-in user's work and client credentials with a constrained application user for unattended integration. This choice implements the controlling platform requirement rather than masking the symptom. A valid Microsoft Entra token does not grant Dataverse table privileges without application-user role assignment. Verify the change using: Inspect token audience/scopes, app registration, app-user Dataverse role, expiration and token cache security.
Incorrect Answers
A:Use expressions such as coalesce, empty, formatDateTime and guarded JSON parsing with explicit type assumptions. That action addresses Power Automate expressions null coalesce and safe parsing instead. A missing property is not always equivalent to an empty string; expression behavior depends on data type. For this case, the targeted action is: Use delegated OAuth for a signed-in user's work and client credentials with a constrained application user for unattended integration.
C:Use child flows inside solutions to share reusable logic with declared inputs, outputs and correct run-only connection behavior. That action addresses Child flows and solution connection references instead. An arbitrary standalone flow cannot always be used directly as a solution child flow without the correct trigger and context. For this case, the targeted action is: Use delegated OAuth for a signed-in user's work and client credentials with a constrained application user for unattended integration.
D:Use the Dataverse Web API with logical names, $select, encoded $filter and @odata.nextLink pagination instead of retrieving unrestricted rows. That action addresses Dataverse OData Web API select filter and pagination instead. A page-size hint or first result set does not guarantee the entire data collection has been returned. For this case, the targeted action is: Use delegated OAuth for a signed-in user's work and client credentials with a constrained application user for unattended integration.
Question 299
A delete command is hidden based on a form field but an unauthorized user still calls its custom API. Which evidence should the developer inspect FIRST to distinguish the root cause or verify the prerequisite?
- Inspect selected connection ID, connector operation, signed-in user's rights, environment binding and app host context.
- Inspect query $select/$filter encoding, returned nextLink, caller role, promises, network failure and lookup logical names.
- Inspect command designer placement, selection context, Power Fx formula, app publication and calling user's security role.
- Inspect control manifest property of-type, usage, component namespace, platform libraries and compiled resource paths.
Explanation
Correct Answer
C:Inspect command designer placement, selection context, Power Fx formula, app publication and calling user's security role. These observations separate this failure from adjacent capabilities or permissions. A hidden command is a UX convenience, not a security control for direct API access. The relevant implementation is: Configure a modern model-driven command with Power Fx visibility/action rules or supported JavaScript, matching permissions and saved state.
Incorrect Answers
A:Inspect selected connection ID, connector operation, signed-in user's rights, environment binding and app host context. These checks are relevant to Power Apps code app connectors and environment binding, but are not the most discriminating first evidence for this case. Inspect instead: Inspect command designer placement, selection context, Power Fx formula, app publication and calling user's security role.
B:Inspect query $select/$filter encoding, returned nextLink, caller role, promises, network failure and lookup logical names. These checks are relevant to Dataverse Xrm.WebApi asynchronous lookups, but are not the most discriminating first evidence for this case. Inspect instead: Inspect command designer placement, selection context, Power Fx formula, app publication and calling user's security role.
D:Inspect control manifest property of-type, usage, component namespace, platform libraries and compiled resource paths. These checks are relevant to PCF ControlManifest inputs and resources, but are not the most discriminating first evidence for this case. Inspect instead: Inspect command designer placement, selection context, Power Fx formula, app publication and calling user's security role.
Question 300
A form script fails on quick create because it calls Xrm.Page for a field that exists only on the target form. Which TWO complementary steps provide the intended implementation AND the evidence needed to validate it? Select TWO.
- Inspect package version, environment, target app sharing, connection references, managed solution components and postdeploy tests.
- The failing component is identified with reproducible evidence and a targeted fix, not a broad permissions escalation.
- Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope.
- Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page.
- Configure a modern model-driven command with Power Fx visibility/action rules or supported JavaScript, matching permissions and saved state.
Explanation
Correct Answers
C:Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope. These observations separate this failure from adjacent capabilities or permissions. The Client API formContext comes from the event context; standalone Web API calls do not expose a form object. The relevant implementation is: Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. This is the diagnostic/verification half of the required two-step answer.
D:Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. This choice implements the controlling platform requirement rather than masking the symptom. The Client API formContext comes from the event context; standalone Web API calls do not expose a form object. Verify the change using: Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope. This is the implementation half of the required two-step answer.
Incorrect Answers
A:Inspect package version, environment, target app sharing, connection references, managed solution components and postdeploy tests. This step belongs to Code app packaging sharing and deployment rather than the complementary pair here. The required action is: Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. And its evidence is: Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope.
B:The failing component is identified with reproducible evidence and a targeted fix, not a broad permissions escalation. This step belongs to Code app Monitor and browser troubleshooting rather than the complementary pair here. The required action is: Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. And its evidence is: Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope.
E:Configure a modern model-driven command with Power Fx visibility/action rules or supported JavaScript, matching permissions and saved state. This step belongs to Command bar Power Fx and JavaScript rules rather than the complementary pair here. The required action is: Pass the execution context to registered form handlers and obtain formContext instead of relying on deprecated global Xrm.Page. And its evidence is: Inspect event handler properties, passExecutionContext setting, formContext acquisition, loaded form attributes and handler scope.