Power Apps初心者の方向けにPower Appsの基本概念を説明する試みです。
この記事では、
- コレクションの概要
- コレクションを使用するメリット
- コレクションを使用するデメリット
を解説しています。
Power Appsには、グローバル変数(Set関数)、コンテキスト変数(UpdateContext関数)の他にコレクションという変数(配列)があります。
Power Appsのデータソースと接続して大量の情報を取得するという性質上、コレクションという概念を知っておかなければなりません。
コレクションとは
コレクションとは、Power Appsにおけるテーブル型の変数のことです。
ExcelやSharePointなどのデータソース、OutlookやTeamsなどのコネクタから得られる情報はほとんどがテーブル形式になっています。
そのため、Power Apps上で様々なデータソースと連携させマスターとして保持するにはコレクションを使用することがほぼ必須になります。
コレクションを使用することで得られるメリット
アプリの動作速度が向上する
ユーザーがデータを読み書きするごとにデータソースに接続していては、読み込み時間によってユーザーを待たせてしまうことになります。
以下はサイトのページ表示速度とユーザー直帰率の関係性について、ディープラーニングを用いて予測したGoogleの研究結果です。
表示速度が1秒から3秒に遅くなると、直帰率は32%増加する
表示速度が1秒から5秒に遅くなると、直帰率は90%増加する
表示速度が1秒から6秒に遅くなると、直帰率は106%増加する
表示速度が1秒から10秒に遅くなると、直帰率は123%増加する
表示まで3秒以上かかるモバイルページは53%のユーザーが離脱している
Find out how you stack up to new industry benchmarks for mobile page speed
ユーザーの待機時間を増やすことはユーザーがアプリから離れてしまうことに繋がります。
App.OnStartでデータソースからPower Apps内のコレクションにデータを格納しておき、データの表示や変更を行うようにすることでアプリの速度が格段に向上します。
データソースの中身を見ながら開発できる
アプリからデータソースを読み書きする際は、コレクションを操作することの出来る関数でデータソースやコレクションの列を指定します。
データソースをそのまま読み込んでアプリを開発すると、データソースにどんな列があるか、入れ子になっているかというデータソースの全体像を掴みにくいです。
データソースを使用したアプリを開発する際は、まずコレクションにデータソースを丸ごと格納してみてデータソースの全体像を理解しましょう。
保守性が向上する
ギャラリーでタブやコンボボックスで選択肢を定義する際、複数箇所で同じテーブルを使用するケースがあります。
この場合の参照テーブルにコレクションを使用することで、コレクションの定義箇所のみ修正すれば良いので保守性が向上します。
コレクションのデメリット
トランザクションテーブルには不向き
コレクションはトランザクションテーブルでの使用は不向きです。
図の通り、Aさんがデータソースを読み込んだあとにBさんが読み込み、Aさんが書き込んだ後にBさんが書き込むとAさんの行った変更がデータソースに反映されません。
このように複数人が同時編集する可能性のあるデータソース(トランザクションデータ)にはコレクションは向きません。
トランザクションデータはUpdateIf関数やPatch関数、編集フォームでデータの追加や変更を行い、マスタデータなどの参照のみのデータをコレクションに格納するようにしましょう。
一度に最大2000件までしか格納できない
コレクションは一度に最大2000件(データ行の制限で設定されている件数)までしか格納することができません。
2000行を超える可能性がある場合は、フィルターした値を格納するなどの工夫が必要になります。
まとめ
コレクションを操れるようになると、Power Appsでより高度なアプリを開発出来るようになります。
コレクションは複雑で関連する関数も多く大変ですが、頑張って理解しましょう。
コメント
[…] コレクションとは→Power Appsのコレクションという概念 […]
[…] コレクション→Power Appsのコレクションという概念 […]