はじめに
本記事ではキャンバスアプリで関数や演算子を使う際に必ずついてくる委任についての基本を解説します。
委任とは
委任とは、関数や演算子の処理をデータソース側で実行してもらうことです。
キャンバスアプリで関数や演算子を処理する方法は『アプリで処理する』もしくは『データソースで処理する』の2種類があります。
委任がサポートされていない(アプリで処理する)ものには制限があり、いずれもアプリのパフォーマンスに影響する可能性があるためアプリ開発を進める際に考慮が必要です。
本記事ではMicrosoftと表現を合わせるためにアプリで処理することを『委任がサポートされていない』、データソースで処理することを『委任がサポートされている』と記載しています。
委任がサポートされていない処理の制限
委任がサポートされていない処理を利用するにあたって下記の制限があります。
下記で記載の制限にひっかからないこととアプリのパフォーマンスを維持するためには、できるだけ委任がサポートされているものを利用することをオススメします。
1.アプリのパフォーマンスが低下する可能性がある
アプリ側で処理するためにデータをアプリ側で受け取る必要があります。
そのため、データの通信量が多い場合にアプリの動作が遅くなってしまうなどアプリのパフォーマンスが低下する可能性があります。
2.データ操作できるレコード数に制限がある
アプリのパフォーマンスの低下を防止するためにアプリ内に保持できるデータ数に制限がかけられています。
デフォルトの設定ではアプリ内に保持できるデータ件数が500件に設定されています。
最大2000件まで件数を増やすことができますが、パフォーマンスが低下する可能性があるため必要以上に増やさないことが推奨されています。
3.委任がサポートされている関数と組み合わせても制限は残る
委任がサポートされていない関数にはLast関数・Concat関数・Remove関数などがあります。
これらの関数は委任されている関数と組み合わせてもデータ操作できるレコード数の制限を超えて処理することはできません。
例えば、Last関数とFilter関数を組み合わせてみると委任に関する警告が表示されます。
警告を無視して実行することは可能ですが、Filter関数で絞り込んだレコードの件数が2000件を超えていた場合、2001件目からはLast関数の対象外となります。
委任がサポートされている関数については公式ドキュメントをご参照ください。
※同ページに委任がサポートされていない関数についても記載されています。
データソースによって委任のサポートに違いがある
データソースによって委任がサポートされている場合やされていない場合があります。
例えば、データソースにDataverseを利用している場合だとIsBlank関数は委任がサポートされていますが、SharePointではサポートされていません。
このようにデータソースによって委任のサポート有無に違いがあります。
そのことを理解しておくと「空白チェックをしたいけど今回データソースにSharePointを使っているからIsBlank関数ではなく『=』を使おう」など関数や演算子を選ぶ基準を設けることができます。
委任がサポートされているデータソースについては下記のリンクから詳細を確認できます。
・Microsoft Dataverse
・SharePoint
・SQL Server
・Salesforce
さいごに
今回は委任についてご紹介しました。
市民開発のお役に立てれば幸いです。
お知らせ
EdivuleのLINEオープンチャットを運営しています。
Power Platfromについて情報交換をするコミュニティですのでご興味ある方は下記リンクから
オープンチャットにご参加ください!
『PowerPlatformコミュニティ』へのご参加はこちら