ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Power Apps】変数のスコープ(範囲)のメモ

変数の使える範囲(スコープ)について、調べてみた際のメモ書きです。
変数ってなーに?っていう部分は今回、割愛していますのでご注意ください。

変数の使える範囲

ざっくりこんな感じ

Power Apps で変数の使える範囲には、グローバル変数とコレクション、コンテキスト変数の3つがあります。
グローバル変数とコレクションは、どの Screen でも利用できます。
UpdateContext 関数で定義できるコンテキスト変数は、定義したScreen内でのみ利用できます。
Navigate 関数は指定した Screen に遷移する関数ですが、移管先のスクリーンでのみ利用できるコンテキスト変数を定義することができます。

アプリ全体で利用するならグローバル変数やコレクション、Screen内のみで利用するならコンテキスト変数といったようになります。

各変数の詳細についてはDocs...もとい、Learn をご確認ください。

キャンバス アプリの変数を理解する - Power Apps | Microsoft Learn より引用

条件付き計算式(プレビュー)

条件付き計算式がプレビュー

条件付き計算式がプレビューでリリースされました。
App.Formulas プロパティでのみ定義できる、グローバル変数になります。

powerapps.microsoft.com

条件付き計算式の範囲

条件付き計算式はグローバル変数なので、各スクリーンで利用できます。

App.Formulas で定義できる

Set 関数や UpdateContext 関数 と違うのは、条件付き計算式は、App.Formulas でのみ定義できるという点。

よく使う値パターン

アプリ内で反復利用するような、ユーザーEmailや上司の情報、ボタンの色などなどを定義するのに便利です。
例えば下記のようなパターンを App.Formulas で定義する。

UserName = Office365ユーザー.MyProfileV2().displayName;

UserName で Office365ユーザー.MyProfileV2().displayName の値を表示できます。

コントロール を指定するパターン

App.Formulas で Screen 内のTextInput コントロールを指定します。

SumTextInputControl = TextInput1.Text + TextInput2.Text;

アプリを実行し、TextInput コントロール に数値を入力します。
ちゃんと更新されて、結果が繁栄されています。
この場合は、コントロールの値で更新されます。

データソースを指定するパターン

データソースを指定しても、コントロールを指定するのと同様、自動的に更新されます。
App.Formulas で SharePoint リストを作成日の新しい順で並び替えたものを SPOList と定義します。

SPOList = SortByColumns(pandaforbusiness,"Created",Descending);

Gallery.Item に SPOList を設定してみました。

レコードを削除する Button コントールを配置します。
ちなみに、title 列を会社名として利用しています。
自動更新されるのかを見るために、SharePoint リスト を直接指定します。(今回は、pandaforbusiness という名前の SharePoint リストです。)
※RemoveIf 関数は条件にあったレコード全部消しちゃうのでお気を付けください。

RemoveIf(pandaforbusiness, title = "111111")

はい、ちゃんと更新されています。
会社名 111111 がなくなっています。

そしたら、条件付き計算式で作成した SPOList を指定して、削除ができるのか試してみます。
エラーになって動作しませんでした。プレビューというのもあると思いますが、この書き方は現時点ではできないようです。

プレビュー機能なので、利用には設定が必要

条件付き計算式はプレビュー段階なので、業務で利用するアプリにはお勧めしません。
正式リリースされたときには機能がかわっているかもしれないし、リリース自体が変更になるかもしれないので要注意。

Power Apps Blog に記載がある通り、アプリの作成バージョンが 3.22091. 以降であることと実験段階の機能から条件付き計算式の有効かが必要。
Blog が公開された時点で、環境のデフォルトのバージョンが上がったようで、もしかすると何もしなくても対象バージョンになっている気がする。(なっていなかったら、利用できないので念のため確認を推奨します。設定> サポート > 作成バージョン > 編集 から変更できます。)

名前付き計算式は、設定 > 近日公開の機能 > 実験段階 > 名前付き計算式 をオンにしてください。

さいごに

変数がどこの範囲で利用できるのかっていうのは結構大事で、Power Apps に慣れてきてからでもいいので、適切な利用範囲で変数を定義するのを意識してみるといいと思います。

Navigate 関数でコンテキスト変数をしているするのは個人的にはおススメはしません。

条件付き計算式まで書くつもりはなかったのですが(長くなるから)、ちょうどPower Apps Blog で公開されていたので、試してみました。
今後どうなっていくのか楽しみですね。