PowerAppsで変数の使い方を知りたいときはないでしょうか。
けど、そんな中で悩むことは、
・PowerAppsで変数を初期化する方法がわからない
・PowerAppsでグローバル変数とコンテキスト変数の違いがわからない
ですよね。
今回はそんなお悩みを解決する
・グローバル変数とコンテキスト変数の違い
・グローバル変数とコンテキスト変数の使用例
についてまとめます!
もくじ
PowerAppsの変数について
PowerAppsではアプリケーション内でデータを一時的に保持するための仕組みとして変数が用意されています。
変数は、PowerAppsアプリケーション内でのデータの格納、操作、共有に使用され、2つの種類の変数があります。
PowerAppsグローバル変数
グローバル変数は、アプリケーション全体で利用可能な変数でどの画面からでもアクセスできます。
グローバル変数は、アプリケーション全体で共有されるデータを格納するのにむいています。
たとえば、ユーザーの名前や設定、アプリケーションの状態などを格納するのに使用できます。
PowerAppsコンテキスト変数
コンテキスト変数は、特定の画面または操作のコンテキスト内でのみ利用可能な変数で特定の画面内でのみ変数にアクセスできます。
コンテキスト変数は、特定の画面での一時的なデータの保存や、特定の操作の進行状況を追跡するために利用されます。
グローバル変数とコンテキスト変数の違い
グローバル変数とコンテキスト変数の違いは、
グローバル変数はアプリケーション全体で利用可能なデータを格納することに対して、
コンテキスト変数は特定の画面内でのみ利用可能な一時的なデータを保持するために使用されるという、
アプリ内のアクセスのスコープが異なるといった点になります。
では実際にデモ用の画面を2つ用意して変数の値がどのように変化するか見てみましょう。
PowerAppsの変数の使い方
PowerAppsの変数の使い方について説明をします。
今回は2つの画面を用意し、
グローバル変数とコンテキスト変数を1ページ目で設定し、
2ページ目で変数の値がどのようになるかを確認します。
画面を作成する
空の画面を2つ作成し、名前を以下のようにします。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_12.png)
各項目名をテキストラベルを追加し入力します。
3つ目は変数val1に5足した値を表示させたいため、
ラベルの値は「変数val1に5足した値」としています。
変数にセットする値をいれるテキスト入力を画面に追加します。
プロパティの設定はDefaultでOKです。
変数を設定するボタンを設置
変数を設定するボタンを追加します。
ボタンを2つ追加し、
一つ目のグローバル変数をセットするボタンのOnselectに
Set(val1,TextInput1)
と入力します。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_6.png)
グローバル変数を設定するのにSet関数を使用します。
変数に値を設定したり、既存の変数の値を新しい値に置き換えることができます。
Set( <変数名>, Value )
変数名- 必須。 作成または更新するグローバル変数の名前。
Value – 必須。 コンテキスト変数に割り当てる値。
例:
Set(Var1, “新しい値”)
この例では、変数 Var1 の値が “新しい値” に設定されます。
参考:https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-set
2つ目のコンテキスト変数をセットするボタンのOnselectに
UpdateContext({val1:TextInput1})
と入力します。
コンテキスト変数を設定するのにUpdateContext関数を使用します。
UpdateContext関数のスコープは 1 画面に限定され、ユーザーがボタンを押した回数やデータ操作の結果など、一定の情報を一時的に格納する際に使用します。
UpdateContext( UpdateRecord )
UpdateRecord – 必須。 少なくとも 1 つの列の名前と、その列の値を含むレコードを指定します。
指定した列と値それぞれについて、コンテキスト変数が作成または更新されます。UpdateContext( { <変数名>: Value1 [,<変数名2>: Value2 [, … ] ] } )
変数名 – 必須。 作成または更新するコンテキスト変数の名前。
Value1 – 必須。 コンテキスト変数に割り当てる値。
変数名2: Value2, … – オプション。 追加で作成または更新するコンテキスト変数とその値。
例:
UpdateContext( { Counter: 1 } )
コンテキスト変数Counterを作成または変更し、その値を 1 に設定します。
参考:https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-updatecontext
これで変数をセットする機能が実装できました。
表示用ラベルを追加
次に変数の値を画面に出すテキストラベルを2つ追加します。
一つ目が変数val1の値を表示させるテキストラベルです。
プロパティのTextへ変数名「Val1」と入力します。
2つ目のラベルは変数val1に5足した値を表示させますので、プロパティのTextへ
val1 + 5
と入力します。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_5.png)
変数の設定を確認する2ページ目を作成
変数の設定を確認する2ページ目を作成していきます。
1ページ目の変数val1の値、変数val1に5足した値を表示させるテキストラベルを選択しコピーします。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_9.png)
2ページ目に移動し、コピーした内容を貼り付けます。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_10.png)
1ページ目に戻るボタンを追加します。
Onselectに
Back()
と入力します。
![](https://extan.jp/wp-content/uploads/2023/08/082023_1541_11.png)
1ページ目に戻り、2ページ目に遷移するボタンを設置します。
Onselectに
Navigate(変数設定確認ページ,ScreenTransition.Fade)
と入力します。
FadeはNavigate関数のフェードパターンを示す引数です。
設定可能な引数については以下をご参考ください。
https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-navigate
![タカヒロ](/wp-content/uploads/2020/11/taka_kao.gif)
「Navigate(変数設定確認ページ,Fade)」
となりますが、「Fade」だけの入力にするとエラーとなるのでご注意ください。
グローバル変数とコンテキスト変数の違いを確認する
グローバル変数とコンテキスト変数の違いを確認してみましょう。
コンテキスト変数の使用
特定の画面でしか値を保持できないコンテキスト変数を作成します。
今回は「3」をコンテキスト変数に設定します。
「コンテキスト変数をセット」するボタンを押します。
はい、変数Val1の値と計算した結果が表示されましたね!
「次のページ」へボタンを押して2ページ目でどのようになっているか確認をしましょう。
2ページ目では変数Val1の値が表示されていないことが確認できました。
次はグローバル変数を設定し確認していましょう。
グローバル変数の使用
アプリケーション全体で値を保持するためグローバル変数を作成します。
先ほどのコンテキスト変数と異なる値「5」をグローバル変数に設定します。
「グローバル変数をセット」するボタンを押します。
変数Val1の値と計算した結果が表示されませんね…
「次のページ」へボタンを押して2ページ目でどのようになっているか確認をしましょう。
2ページ目では変数Val1の値が表示されていないことが確認できました。
Power Appsではグローバル変数の値をリアルタイムで画面に表示することは仕様上難しいようです。
なお、変数Valの値は更新されています。
画面を更新すれば表示されそうですが、計算のたびに更新がかかるのはあまり得策とは言えません。
ですので、同一画面でリアルタイムに表示させたいときは、コンテキスト変数を使ったほうがよいでしょう。
PowerApps 変数の初期化の方法
PowerApps変数の初期化の方法について説明をします。
コンテキスト変数の初期化
コンテキスト変数の初期化はUpdateContext関数とBlank関数を使用して初期化できます。
次の形式で使用します。
UpdateContext({<変数名>:Blank()})
ここで、<変数名>は更新するコンテキスト変数の名前で、ValueにBlank()を指定します。
グローバル変数の初期化
グローバル変数の初期化はSet関数とBlank関数を使用して初期化できます。次の形式で使用します。
Set(<変数名>, Blank())
ここでも、<変数名>は更新するグローバル変数の名前で、ValueにBlank()を指定します。
これらの関数はすぐに新しい値を反映するため、
アプリが適切に変数を追跡できるように、変数の初期化はアプリの起動時または画面のOnVisibleプロパティ内で行うことが一般的です。
![タカヒロ](/wp-content/uploads/2020/11/taka_kao.gif)
グローバル変数とコンテキスト変数の使用事例
参考程度にグローバル変数とコンテキスト変数の使用事例についてご紹介します。
グローバル変数の使用事例
ユーザー設定の保存
ユーザーがアプリケーション内で設定した言語、テーマ、表示オプションなどの設定を格納するために、グローバル変数を使用できます。
これにより、アプリ内のすべての画面でこれらの設定が一貫して適用されます。
ユーザー認証情報の保持
ユーザーがログインした後に取得した認証トークンやユーザー情報をグローバル変数に保存することで、アプリケーション内のさまざまな部分で認証情報を共有し、API呼び出しを行う際に再度ログインを要求しないようにできます。
アプリケーションのテーマ切り替え
ユーザーがアプリケーションのテーマを変更した場合、選択されたテーマ情報をグローバル変数に格納して、アプリケーション全体でテーマを適用できます。
コンテキスト変数の使用事例
フォームの進行状況の追跡
入力フォームを作成する場合、各項目での入力データや進行状況をコンテキスト変数に格納することで、ユーザーがフォームの途中で進行状況を保持し、入力の状態をリアルタイムで画面上で確認できます。またエラーチェックのバリアント機能などに応用できます。
一時的な計算
特定の画面で数値を計算する必要がある場合、計算結果をコンテキスト変数に格納して、他の部分でそれを使用することができます。
たとえば、数量を入れると注文の総額を計算してリアルタイムで総額を表示させることができます。
リスト内のアイテムの選択状態
リスト内のアイテムを選択する際に、コンテキスト変数を使用して選択されたアイテムを一時的に保持し、他の画面でその選択状態を表示したり利用したりすることができます。
さいごに
いかがでしょうか。 今回は、
・グローバル変数とコンテキスト変数の違い
・グローバル変数とコンテキスト変数の使用例
についてまとめました。
また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。
コメントを残す