コレクション
前の 2 つのユニットでは、グローバル変数とコンテキスト変数で単一値を格納する方法について学習しました。 3 つ目の変数の種類であるコレクションでは、データのテーブルを保存できます。 アプリで再利用する目的で大量の構造化データを格納する必要があるときに最適です。 このデータはデータ ソースから直接引き出したり、アプリ内で作成したり、両方を組み合わせたりできます。
コレクションを使用してパフォーマンスを上げる
コレクションを使用する最も一般的な理由は、データ ソース内の同じテーブルの呼び出しを減らすことでパフォーマンスを最適化することです。 たとえば、あるテーブルにアクティブなプロジェクトがすべて格納されているとき、アプリでそのリストを複数回参照するなら、そのデータを 1 回だけクエリし、データをコレクションに保存することを検討してください。 Projects テーブルのコピーをデータ ソースから collectProjects という名称のコレクションに保存するには、次の数式を使用します。
Collect(collectProjects, Projects)
これで、データ ソースの Projects テーブルと同じ行と列を持つ collectProjects という名前のコレクションが作成されます。 コレクションの使用にあたり、次の点を考慮してください。
Collect 関数は委任できません。 つまり、既定では、データ ソースの最初の 500 個のレコードのみが取得され、コレクションに格納されます。 委任の詳細については、Power Apps のキャンバス アプリで、データ ソースの制限 (委任制限) を操作するを参照してください。
コレクションは作成後、データ ソースにリンクされません。 つまり、コレクションのデータを変更しても、データ ソースに自動保存されることはありません。 これには、データに対して行った変更が含まれます。 コレクションへの変更に基づいてデータ ソースを更新する場合、それを行う数式を作成する必要があります (データ ソースからの再収集など)。
コレクションは一時的なものです。 アプリを終了すると、コレクションとその内容はすべて削除されます。 コレクション データを保存する必要がある場合、アプリを終了する前にそれをデータ ソースに書き込む必要があります。
動的なコレクションを使用する
コレクションはデータ ソースから取得する必要はありません。 アプリ内で直接、情報からコレクションを作成することもできます。 これは多くの場合、ドロップダウン メニューまたはコンボ ボックスの値を提供する目的で、また、データ ストアに書き込む前に大量のデータを保存する目的で行われます。
自分のデータでコレクションを作成する行為は、他の種類の変数を使用する行為に似ています。 次の数式では、次のテーブルにある構造に一致する collectColors という名前のコレクションが作成されます。
Collect(collectColors, {Name: "Shane", FavoriteColor: "Orange"},
{Name: "Mary", FavoriteColor: "Blue"}, {Name: "Oscar", FavoriteColor:
"Yellow"})
名前 | お気に入りの色 |
---|---|
Shane | オレンジ |
Mary | ブルー |
Oscar | 黄 |
コレクションを作成したら、アプリ全体でそれを再利用できます。 これはまた、すべてのテーブル関数を利用できることも意味します。 Collections が表形式のデータ ソースと異なる例外の 1 つは、フォーム コントロールで利用できないという点です。
コレクションとそれに保存するテーブル データの操作の詳細については、Power Apps キャンバス アプリでテーブルとレコードを使用する基本的な式を作成するを参照してください。
また、コレクションと表形式のデータ ソースでは、テーブル データの保存方法に違いはありません。 ラーニング パスの「Power Apps のキャンバス アプリでデータを操作する」には、コレクションの操作や機能の拡張するための多数の概念を説明しています。
このモジュールの最後のユニットでは、変数のその他の概念とそれをアプリに適用する方法について学習します。