Microsoft PL-400 Power Platform Developer 1-10

表示モード
画像位置
文字位置
理解度の自動記録
STATUS FILTER

Choose confidence levels to display

Loading...
Q1PL-400
Show answer
Correct answer: E. One automated flow that queries the orders of both business units.

The Power Automate Dataverse trigger lets you set advanced options such as scope and filters.
Specifying the scope lets you target only records owned by specific users or business units for the trigger.
Therefore, setting the scope to the business unit meets the requirement without also using filters, so E is correct.
A is also feasible to implement, but the added filtering configuration means it does not fit the requirement of keeping administrative effort to a minimum, so it is incorrect.
Power Automate: “When a row is added, modified, or deleted” trigger

Q2PL-400
Division

End date

Tournament owner

Show answer
Correct answer: Choice / Date Only / Lookup

“Division” has a set of predefined possible values, so Choice is optimal.
“End date” is a field that handles a date, so Date Only is suitable.
For “Tournament owner,” it is appropriate to provide the owner as a separate table and hold a reference to it, so Lookup is optimal.

Q3PL-400
Statement Yes No
If the code runs and a value is set in the primary contact (primarycontactid) column, the telephone (telephone1) column of the contact record is updated to match the account
If the code runs and no value is set in the primary contact (primarycontactid) column, an error message “Not Updated” is displayed
When the telephone (telephone1) value is deleted, the code runs and the telephone (telephone1) column of the contact record is updated to null
Show answer
Correct answer: Statement 1 “Yes” / Statement 2 “No” / Statement 3 “No”

Statement 1: Unless values are present in both primarycontactid and telephone1, the telephone1 column of the contact record is not updated, so “Yes” is correct.
Statement 2: If primarycontactid is null, an error occurs on the line that references contact[0].id, and the success/error callback is never reached, so “No” is correct.
Statement 3: When the phone number is deleted, the if statement at the beginning returns immediately and updateRecord is not called, so “No” is correct.

Q4PL-400

Drag each option to the matching requirement’s drop zone, or tap to place it. Click a filled zone to send it back. (The same option may be used more than once.)

Connection
One-to-many relationship
Many-to-many relationship
Self-referential relationship
Visualize records as a hierarchy in a model-driven app
A record in one table must be able to reference only a single record in another table
Any record in one table must be able to be referenced by any record in another table
Show answer
Correct answer: Visualize records as a hierarchy in a model-driven app → Self-referential relationship / A record in one table must be able to reference only a single record in another table → One-to-many relationship / Any record in one table must be able to be referenced by any record in another table → Many-to-many relationship

If a table has a hierarchical self-referential relationship, you can use that hierarchy to configure hierarchy visualization in a model-driven app, so Statement 1 is “Self-referential relationship.”
A relationship where a record in one table references only one record in another table is one-to-many, so Statement 2 is “One-to-many relationship.”
A relationship where any records can mutually reference each other is many-to-many, so Statement 3 is “Many-to-many relationship.”
Visualize hierarchical data with model-driven apps
Table relationships

Q5PL-400
Discount information Column
Group discount store_gruodiscount
Personal discount store_personaldiscount
Total discount store_totaldiscount
Filtering attribute

Trigger condition

Show answer
Correct answer: store_totaldiscount / @greater(add(triggerOutputs()?[‘body/store_personaldiscount’], triggerOutputs()?[‘body/store_groupdiscount’]), 30)

Specifying the total discount column (store_totaldiscount) as the trigger’s filtering attribute lets the flow start only when that column is updated.
Furthermore, the trigger condition determines whether the total exceeds 30%, and the value of the record that triggered the flow is correctly obtained from triggerOutputs.
Therefore, the filtering attribute is store_totaldiscount, and the trigger condition using triggerOutputs is correct.
Filter conditions

Q6PL-400
Show answer
Correct answer: C. An asynchronous plug-in registered in the PostOperation stage

With asynchronous processing, users do not have to wait on screen for the processing to complete, so you can avoid negatively affecting users.
Therefore, an asynchronous plug-in registered in the PostOperation stage is appropriate, and C is correct.
PreOperation and PostOperation represent the plug-in’s execution timing (before or after the record is saved), and there is also a PreValidation timing.
Synchronous processing makes users wait, so it does not meet the requirement.
Event execution pipeline

Q7PL-400
Statement Yes No
Share an individual opportunity that a member of one department is working on with all members of the second department, and grant those members the appropriate permissions
Create a security role with organization-level access to opportunities and grant that role to all members of the two departments that need access
Use position hierarchy security and define the two departments as positions
Show answer
Correct answer: Statement 1 “Yes” / Statement 2 “No” / Statement 3 “No”

The requirement is that departments are basically private to each other, but the same opportunity can be shared only when two departments collaborate.
Therefore, the correct scenario is to keep the default private and grant exceptional access via record sharing when needed, so Statement 1 is “Yes.”
Granting organization-level access to everyone would always make it visible to other departments too, violating the requirement, so Statement 2 is “No.”
Position hierarchy is sharing based on superior/subordinate relationships and does not fit this requirement, so Statement 3 is also “No.”

Q8PL-400

Drag (or tap) the required number of items from the “Options” on the left into the “Answer area” on the right. You can drag within the answer area to reorder.

Options
  • Edit the project main form. Select Save As to create a new finance form, add the missing cost columns, and remove columns not related to finance.
  • Share the finance app in Power Apps and select the finance security role.
  • Create a new model-driven app. Add the Project table and select the finance security role.
  • Create a new model-driven app. Add the Project table and select the finance form.
  • Enable security roles and select the finance security role on the finance form.
  • Select the finance app from the My Apps page and configure the app to use the finance security role.
Answer area (execution order from top)
  1. Drag here

Show answer
Correct answer: The correct order: ①Edit the project main form. Select Save As to create a new finance form, add the missing cost columns, and remove columns not related to finance. → ②Enable security roles and select the finance security role on the finance form. → ③Create a new model-driven app. Add the Project table and select the finance form. → ④Share the finance app in Power Apps and select the finance security role.

First, create a finance form that includes the cost columns, then assign the finance security role to that form to restrict its display.
Next, create a new model-driven app and add the created finance form to that app.
Finally, sharing the finance app with the finance security role in Power Apps meets the requirement that only finance team users can view cost information.

Q9PL-400

Drag each option to the matching requirement’s drop zone, or tap to place it. Click a filled zone to send it back. (The same option may be used more than once.)

GET
POST
PATCH
ACCEPT
Create a row
Update a column of an existing row
Show answer
Correct answer: Create a row → POST / Update a column of an existing row → PATCH

In the Dataverse Web API, you use POST to create a new row and PATCH to update an existing row.
Therefore, POST corresponds to the requirement to create a row, and PATCH to the requirement to update a column of an existing row.
GET is for retrieval, and ACCEPT is a header rather than an HTTP method, neither of which is used for this purpose.
Create a table row using the Web API
Update and delete table rows using the Web API

Q10PL-400
File that must be edited to include custom code

File to edit to include sample data

Show answer
Correct answer: PackageTemplate.cs / ImportConfig.xml

By editing PackageTemplate.cs (or PackageImportExtension.cs) in the root folder, you can incorporate custom code into the package.
On the other hand, ImportConfig.xml describes information about the solutions and data to import.
Therefore, edit PackageTemplate.cs for custom code and ImportConfig.xml for sample data.
Add custom code
ImportConfig reference