・はじめに
こんにちは、くらっちです。
今回紹介するのは、Power Automate の処理後に Power Apps にダイアログを出す方法です。
Power Automateからの戻り値を利用してダイアログ(ラベル)の表示・非表示を制御します。
※この記事はQiita から移行して、最新の情報に更新しています。
・目次
・処理の流れ
今回は、「PowerApps で画像保存ボタンをクリック」⇒「PowerAutomate で処理」⇒「PowerApps に処理完了のダイアログを表示させる」アプリを例にご紹介します。
ダイアログを表示させる場合の、おおまかな流れはこんな感じ。
1. Power Appsで保存ボタンをクリック
2. ボタンクリックをトリガーにPower Automateが起動
3. Power Automateの処理が終了
4. Power Apps上で完了のメッセージを表示する
・実装方法
1.Power Automate側で対象フローの編集画面を表示
トリガーは「PowerApps」を選択します。
Power Appsから呼び出されるフローの編集画面を表示します。
処理の最後に「PowerApps または Flow に応答する」 を追加します。
2.「出力追加」をクリックして「テキスト」を選択
「PowerApps または Flow に応答する」を追加したら「出力追加」をクリックします。
「出力の種類を選択」で「テキスト」を選択します。
3.変数名と返り値を設定
変数名と設定値は任意です。好きに設定して下さい。
サンプルでは Power Apps に「Flowflg = 1」を渡すように設定しています。
5.フローを保存
フローを保存します。
6.Power Automateから戻り値を受け取る
Power Appsアプリの編集画面を表示します。
Power AppsからPower Automateを呼び出すアクション(ボタンなど)を下記のように修正します。
修正前(例)
フロー名.Run(Label1.Text,Label2.Text,label3.Text);
修正後(例)
UpdateContext({Resp: フロー名.Run(Label1.Text,Label2.Text,label3.Text) }); Set(ResultMessage,Resp.flowflg);
これで Power Automate 側から「flowflg」の値を取得できます。
取得した flowflg の値は、変数 ResultMessage にセットされます。
PowerAutomate の処理が未終了の場合は、ResultMessage に "0" が設定されており、
処理が終了したら ResultMessage に "1" が設定されている状態となります。
7.以降で、
ResultMessage = "0" の時は「完了ダイアログを非表示」にして、ResultMessage = "1" の時は「完了ダイアログを表示」するようにPower Apps を編集します。
7.完了ダイアログの配置と設定
完了ダイアログ表示中は他部分の操作ができないように、下図の通りにラベルとアイコンを設置します。
設置する際は「Cansel_Icon」が一番上に設置されていないと、アイコンをクリックすることができないので注意してください。
各パーツを下記の通り修正します。※デザイン部分は皆さんのセンスにお任せです。
BGCover_Label
項目 | 設定値 | 用途 |
---|---|---|
Visible | If(ResultMessage="1",true,false) | 完了ダイアログの 表示 / 非表示 を制御 |
DisplayMode | DisplayMode.View | 表示モードに変更 |
Message_Label
項目 | 設定値 | 用途 |
---|---|---|
Visible | If(ResultMessage="1",true,false) | 完了ダイアログの 表示 / 非表示 を制御 |
DisplayMode | DisplayMode.View | 表示モードに変更 |
Cansel_Icon
項目 | 設定値 | 用途 |
---|---|---|
Visible | If(ResultMessage="1",true,false) | 完了ダイアログの 表示 / 非表示 を制御 |
OnSelect | Set(ResultMessage,"0") | クリック時に完了ダイアログを非表示にする |
以上です。
皆様の Power Apps ライフのお役に立てば幸いです。