委任について詳しく調べる必要が出たので、その調査内容をメモ。
委任について本当にざっくりと
Power Appsにおける委任(delegation)とは、
FilterやLookUpなどの処理を、Power Apps側ではなくデータベース側でやってもらおう
ということ。
1000件のデータに対してフィルターをかけるとき、
1000件のデータをPower Appsで取得してフィルターをかけるより、1000件のデータをフィルターしてもらった結果をPower Appsで受け取った方が圧倒的に早いよね、的な考え。
SPOリストに委任できる操作はけっこう少ない

このページはタイトルに「キャンバスアプリでの委任」とある通り、キャンバスアプリが使用できる委任関数の紹介となっている。
- SPOリスト
 - Dataverse
 - SQLサーバー
 - Salesforce
 
などの色々なデータソースのどれか(もしくは全て)で使える操作の紹介になっている。

- andとorとnot
 - in
 - =, <>, >=, <=, >, <
 - +, –
 - TrimEnds
 - IsBlank
 - Sum、Average、Min、Max
 
は使えると書いてあるけど、



SPOリストで委任できる関数
ということで、SPOリストに委任できる操作はこちら。
| 数値 | 1行テキスト | はい/いいえ | 日付 | 複合型 | |
|---|---|---|---|---|---|
| Filter | ○ | ○ | ○ | ○ | ○ | 
| Sort | ○ | ○ | ○ | ○ | ✕ | 
| SortByColumns | ○ | ○ | ○ | ○ | ✕ | 
| Lookup | ○ | ○ | ○ | ○ | ○ | 
| = | ○ | ○ | ○ | ○ | ○ | 
| <, <=,<>, >, >= | ○ | ✕ | ✕ | ○ | ○ | 
| StartsWith | - | ○ | - | - | ○ | 
| IsBlank | - | ✕ | - | - | ✕ | 
※委任機能はアップデートされることもあるので、最新情報は公式で確認してください。
上の表の内容に加えて、以下のような制約や注釈もある。
AndとOrは委任可能、Notは委任不可能


個人(ユーザー)列の委任について
- DisplayName
 


ID列の委任について


IsBlank()関数と「= Blank()」について

ただし、IsBlankは「値が入っていない列」と「空文字列(””)」を検知してくれるけど、= Blank()は「値が入っていない列」のみを検知するため、式の意味が少し異なる。
おまけ:Dataverseで委任できる関数
※こちらも日々アップデートされているので、最新情報は公式で確認してください。
| 数値 | テキスト | 選択肢 | 日付と時刻 | GUID | |
|---|---|---|---|---|---|
| Filter | ○ | ○ | ○ | ○ | ○ | 
| Sort | ○ | ○ | ✕ | ○ | - | 
| SortByColumns | ○ | ○ | ✕ | ○ | - | 
| Lookup | ○ | ○ | ○ | ○ | ○ | 
| =、<> | ○ | ○ | ○ | ○ | ○ | 
| <, <=, >, >= | ○ | ○ | ✕ | ○ | - | 
| And/Or/Not | ○ | ○ | ○ | ○ | ○ | 
| StartsWith | - | ○ | - | - | - | 
| IsBlank | ○ | ○ | ✕ | ○ | ○ | 
| Sum, Min, Max, Avg | ○ | - | - | ✕ | - | 
| CountRows, CountIf | ○ | ○ | ○ | ○ | ○ | 


上の表に合わせて細かな制約があったりするので、詳しくは↓の公式を確認してもらえれば。
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/connections/connection-common-data-service#power-apps-delegable-functions-and-operations-for-dataverse






コメント