このページではPower Appsにおける「委任」と「データ行の制限」について説明します。
委任
Power Appsにおける委任とは、データソースへのデータ操作をデータソース側に任せることを指します。
例えば、SharePointリストに対して列「Num」が7以下のアイテムを取得する際、Filter関数は委任が可能なためSharePointリスト側でアイテムを抽出し、Power Apps側に渡してくれます。
対して、SharePointリストの列「ID」に対して7以下のアイテムを取得する際、Filter関数は委任ができないため、Power Apps側に一度すべてのアイテムを渡した後、Power Apps側で抽出を行う必要があります。
※SharePointリストでは、自動で作成されるID列のみ例外として大なり(小なり)でのフィルターは委任ができません。
もし記述した関数が対象のデータソースに対して委任ができない場合、以下の画像のように「委任に関する警告です。~」というエラーメッセージが表示されます。
SharePointリストやDataverseに対して委任できる関数はこちらを参照ください。
データ行の制限
「データ行の制限」とは「Power Appsがデータソースから一度に取得できるデータの数」のことで、アプリの設定画面から設定することができます(既定は500)。
この「データ行の制限」を超える数のデータを一度に取得しようとすると、設定されている数値分のデータ取得することができないため、注意が必要です。
例:データ行の制限が500の状態で、データ数1000のSharePointリストから全てのアイテムを変数に代入しようとすると、先頭500のアイテムのみが取得できる。
このデータ行の制限は最大2000まで上げることができますが、扱うデータ量が増えるため、アプリのパフォーマンスが下がる可能性があることに注意して下さい。
ギャラリーやデータテーブルとデータ行の制限
ギャラリーやデータテーブルは遅延読み込み機能を持つコントロールです。
表示するデータソースのすべてのアイテムを一度に取得せず、最初にある一定数のアイテムを取得し、スクロールバーが末尾に来たタイミングで、また一定数のアイテムを取得するよう作られています。
そのため、データ行の制限数以上のアイテム数を持つデータソースでも、これらのコントロールを使用することで、全てのアイテムをアプリのUIに表示することができます。
委任できない処理を扱うデメリット
委任できない処理を使うことで以下のデメリットがあります。
パフォーマンスの低下
委任できない処理を使い続けることでパフォーマンスに悪影響を与える可能性があります。
データソースに対して処理の委任ができない場合、一度すべてのデータを取得し、そのすべてのデータに対してPower Apps側で処理を行う必要があるため、委任ができる場合に比べてパフォーマンスは低下します。
ギャラリーやデータテーブルの遅延読み込み機能が使えない
ギャラリーやデータテーブルのItemsプロパティに委任できない処理を設定すると、これらのコントロールが持つ遅延読み込み機能が使用できなくなります。
そのため、データ数が「データ行の制限」を超えるデータソースのアイテムをすべてUIに表示することができなくなります。
まとめ
委任やデータ行の制限はPower Appsにおいて非常に重要な概念です。
原則として委任できない処理はアプリでは使用せず、どうしても委任できない処理を使用する場合は、必ずその処理が与える影響をすべて把握した上で使用するようにしましょう。
参考サイト:https://ippu-biz.com/development/powerplatform/powerapps/delegation003/