Power Apps SharePointリストに対して委任できる操作を色々調べてみた|Dataverseに対して委任できる操作も

委任について詳しく調べる必要が出たので、その調査内容をメモ。

スポンサーリンク

委任について本当にざっくりと

Power Appsにおける委任(delegation)とは、

FilterやLookUpなどの処理を、Power Apps側ではなくデータベース側でやってもらおう

ということ。

1000件のデータに対してフィルターをかけるとき、

1000件のデータをPower Appsで取得してフィルターをかけるより、1000件のデータをフィルターしてもらった結果をPower Appsで受け取った方が圧倒的に早いよね、的な考え。

SPOリストに委任できる操作はけっこう少ない

このページはタイトルに「キャンバスアプリでの委任」とある通り、キャンバスアプリが使用できる委任関数の紹介となっている。

そこでこの記事に委任可能と書かれている操作は、

  • SPOリスト
  • Dataverse
  • SQLサーバー
  • Salesforce

などの色々なデータソースのどれか(もしくは全て)で使える操作の紹介になっている。

なので、Filter, Search, Lookup関数は委任できると書いてあるけど、SPOリストに対してはSearch関数は委任できないし、
FilterやLookUp関数の中で、

  • andとorとnot
  • in
  • =, <>, >=, <=, >, <
  • +, –
  • TrimEnds
  • IsBlank
  • Sum、Average、Min、Max

は使えると書いてあるけど、

SPOリストに対しては「in」が使えなかったり、
SumやAverageとかも使えない。

SPOリストで委任できる関数

ということで、SPOリストに委任できる操作はこちら。

数値1行テキストはい/いいえ日付複合型
Filter
Sort
SortByColumns
Lookup
=
<, <=,<>, >, >=
StartsWith---
IsBlank---

※委任機能はアップデートされることもあるので、最新情報は公式で確認してください。

公式はこちら
https://docs.microsoft.com/ja-jp/connectors/sharepointonline/#power-apps-delegable-functions-and-operations-for-sharepoint

上の表の内容に加えて、以下のような制約や注釈もある。

AndとOrは委任可能、Notは委任不可能

SPOリストに対しては、AndやOrは委任できるけど、
Notは委任できない。

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

複合型の代表「個人またはグループ」列で委任できるのは↓の2列のみ

  • Email
  • DisplayName

これは委任できない。

ID列の委任について

SPOリストのID列に対しては「=」しか委任できない。
ちなみに普通の数字列なら委任可能。

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

SPOリストに対してIsBlank()は委任できないけど、
= Blank()は委任できる。

ただし、IsBlankは「値が入っていない列」と「空文字列(””)」を検知してくれるけど、= Blank()は「値が入っていない列」のみを検知するため、式の意味が少し異なる。

おまけ:Dataverseで委任できる関数

※こちらも日々アップデートされているので、最新情報は公式で確認してください。

数値テキスト選択肢日付と時刻GUID
Filter
Sort-
SortByColumns-
Lookup
=、<>
<, <=, >, >=-
And/Or/Not
StartsWith----
IsBlank
Sum, Min, Max, Avg---
CountRows, CountIf
例えばSPOリストでは文字列の「<>」はNGだけど、
Dataverseだといけたりする。

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

関連記事

コメント

タイトルとURLをコピーしました