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内のコレクションにデータを格納しておき、データの表示や変更を行うようにすることでアプリの速度が格段に向上します。

データソースの中身を見ながら開発できる
アプリからデータソースを読み書きする際は、コレクションを操作することの出来る関数でデータソースやコレクションの列を指定します。
データソースをそのまま読み込んでアプリを開発すると、データソースにどんな列があるか、入れ子になっているかというデータソースの全体像を掴みにくいです。

データソースを使用したアプリを開発する際は、まずコレクションにデータソースを丸ごと格納してみてデータソースの全体像を理解しましょう。
データソースのみ異なるアプリの共有が容易になる
社内の他部署が作成したアプリを流用する際に、データソースは別のものを使用したいといったことがよくあります。
データソース変更の際にコレクションを使用していればApp.OnStartのみ変更すればよいため、変更作業が格段に減ります。
同時アクセスに注意!
ここまでコレクションのメリットを紹介してきましたが、コレクションを使用する場合は同時アクセスに注意しなくてはなりません。(読み書きにClearCollect関数を使用した場合)

図の通り、Aさんがデータソースを読み込んだあとにBさんが読み込み、Aさんが書き込んだ後にBさんが書き込むとAさんの行った変更がデータソースに反映されません。
このように複数人が同時編集する可能性のあるアプリでは、UpdateIf関数を使用してユーザーの変更した箇所のみデータソースに反映させるなどの対策をする必要があります。
まとめ
コレクションを操れるようになると、Power Appsでより高度なアプリを開発出来るようになります。
コレクションは複雑で関連する関数も多く大変ですが、頑張って理解しましょう。
コメント
[…] コレクションとは→Power Appsのコレクションという概念 […]
[…] コレクション→Power Appsのコレクションという概念 […]