委任について詳しく調べる必要が出たので、その調査内容をメモ。
委任について本当にざっくりと
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
コメント