こんにちは。sinyです。
この記事はPowerApps入門者向けです。
PowerAppsで変数を扱う3つの方法についてまとめました。
PowerAppsで使える3つの変数
PowerAppsでは以下の3種類の変数を利用することができます。
種類 | 範囲 | 関数 |
Global変数 | アプリ全体で利用 | Set() |
Context変数 | 特定の画面内で利用 | UpdateContext() |
Collection | アプリ全体で利用 | Collect(), ClearCollect()等 |
Set関数
PowerAppsアプリのどこからでもアクセス可能な変数を定義する場合はSet関数を利用します。
使い方は、Set(変数名,値)のように定義します。
- アプリケーション開始時にアプリ利用ユーザ名を取得する場合
Set(_userName, User().FullName) - 画面のボタン制御をするためのフラグ変数を定義する
Set(errFlag, false)
UpdateContext関数
UpdateContext関数で定義した関数は、その画面内でのみ利用可能な変数になります。
利用例は以下のサイトも参考
Collect関数
テーブルのデータなどを一時的に保持しておきたい場合はコレクションという機能を利用します。
例えば、発注Noに紐づく明細リスト情報を登録したいような場合、明細リスト情報はいくつ登録するかわからないので、一時的にコレクション内に格納して最後に一括でデータ登録をまとめて行うといったケースで利用できます。
Collect( DataSource, Item, ... )
- DataSource – 必須。 データを追加するデータ ソース(
- Item(s) - 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル。
例えば、SharePointリストとして以下のような明細リストが定義されているとします。
Item(商品名)、Quantity(数)、Price(値段)、Total(合計金額)
この明細リストに登録するための登録フォームを「+」ボタン自動生成したいケースでは、「+」ボタンのOnSelectプロパティに以下のような関数を設定します。
Collect(MeisaiCol, {Itm:"", Quantity:0, Price:0, Total:0});
これで、「+」ボタンを押したときに明細リストを登録するフォームが1行追加されて、MeisaiColに規定値と一緒に1レコード追加されます。
ちょっとイメージしづらいかもしれませんが、初期値で設定された明細リストを入力するフォームが1行追加されるというイメージです。
赤字部分がレコードの列部分を定義していて、上記例ではItemは初期値を空に、それ以外は初期値0として定義しています。
Json形式のような感じで列を定義するようになっているようですね。
ClearCollect関数
既に生成されているコレクションのレコードをすべて削除した上でコレクション内に初期値を設定したい場合に使う関数です。
使い方はCollectと同じです。
ClearCollect(Collection,Item, ... )
- Collection- 必須。 クリアした後にデータを追加するコレクション。
- Item(s)- 必須。 データ ソースに追加する 1 つ以上のレコードまたはテーブル
具体例は以下の公式サイトも参照してみてください。