Power Apps Param関数を使ってアプリ起動時に特定の画面を表示する|起動パラメータの渡し方

Power Appsのキャンバスアプリの初期画面を、アプリを起動する人(URL)によって変えたいという質問をもらったので、方法をメモ。

スポンサーリンク

Power Appsは起動時にパラメータを渡すことができる

Power Appsの構築が完了して誰かに共有する際、アプリのWebリンクを使って共有することが多い。

で、このアプリのWebリンクの末尾に「&」を付けてアプリを起動することで、アプリに対し引数を渡すことができる

例えば以下のURLを使用してアプリを起動すると、

https://【アプリWebリンク】&arg1=hoge&arg2=fuga

アプリに対して「args1」という名前の引数に「hoge」というテキストを、「arg2」という名前の引数に「fuga」というテキストを渡すことができる。

Param関数

Param関数は、前述の方法でアプリに対して渡した引数を、アプリの中で使用する際に使う関数

使い方はParam関数の引数に「アプリ起動時に渡される(はずの)引数名」を入れると、その引数が渡された場合は渡された値を、渡されない場合はBlank()を返してくれる。

例えば画像のようなラベルを用意したアプリを、
※Coalesce関数は空以外の最初の引数を返す関数
URLを「https://【アプリWebリンク】」で呼び出すと、ラベルはこんな感じで表示され、
URLを「https://【アプリWebリンク】&arg1=hoge」で呼び出すと、こんな感じで表示される。

で、このアプリへの引数とParam関数をApp.StartScreenと一緒に使用することで、アプリ起動画面を切り替えることができる。

パラメータによるアプリ起動画面の切り替え

例えば経費管理アプリのようなイメージで一覧画面と、
詳細画面が用意されているアプリがあったとき、
以下の条件で起動画面を切り替えるときを考える。

  • 普通に起動:一覧画面
  • Power Automateなどから送られる「確認依頼メール」から起動:詳細画面

Power Appsの構築

App.OnStart処理で起動時に渡されるパラメータ(今回は「ID」)をグローバル変数に入れるようにして、
詳細画面のFormのItemプロパティに引数で渡されたIDのアイテムをLookUp関数で取得して設定する。
そしてApp.StartScreenでパラメータ「ID」が設定されている場合は詳細画面を表示するよう設定する。
あとはユーザーに送るアプリのWebリンクに引数を追加すれば完成。

動作確認

完成したアプリをWebリンクから起動すると一覧画面が表示され、
メールのパラメータ付きURLから起動すると詳細画面が表示される。
※Power Automateの作り方によっては、メールを送るときにWebリンクの末尾に余計な文字(図では「=」)が入ってうまく動作しないこともあるので注意。

アプリへの引数とParam関数を組み合わせると、色々なことが実現できるのでとてもおすすめ。

関連記事

コメント

タイトルとURLをコピーしました