Power Appsから入力したデータをPower Automateに送り何か処理をしてPower Appsに返す的なことのミニマムを考えてみます。
作るもの: ボタンを押すと文字を加工して返してくれる
1. Power Apps側: 最低限のパーツを追加
まずは画面を作ってみます。
-
テキスト入力
のパーツを追加
-
ボタン
のパーツを追加
-
テキストラベル
のパーツを追加
一旦設置後のイメージ
こんな感じです。ツリービューをみると以下のような状態です。
参考程度ですが、ツリービューからコード出力をすると以下のような出力でした。
- Screen1:
Control: Screen
Children:
- Label1:
Control: Label
Properties:
X: =28
Y: =88
- Button1:
Control: Classic/Button
Properties:
X: =156
Y: =478
- TextInput1:
Control: Classic/TextInput
Properties:
X: =28
Y: =326
2. Power Automate側: Power Appsから情報を受け取って処理して返すフロー
次に、Power Automateで処理を作ってみます。
自動化したクラウドフロー
を構築するからスタートします。
2-1. トリガー: Power Appsトリガーを追加(入力)
トリガーにPower Apps (V2)を選びます。
入力の追加
=> テキスト
で進みます。
入力
となっている部分をotameshi
などの何か名前を設定しておきます。
2-2. アクション: 変数の初期化
送られてきたデータを少し処理したいので、"Power Appsから送られてきた情報(otameshi)"+"って送られてきたよ!!"
という文字列にしてみます。
変数を初期化する
のアクションを検索して追加します。
- Name:
responseMsg
- Type:
String
- Value:
(otameshiの動的コンテンツ)+"って送られてきたよ!!"
2-3. アクション: Power Appsまたはフローに追加(出力)
Power Automate側のラストです。出力になります。
Power Appsまたはフローに追加
のアクションを検索して追加します。
出力を追加
=> テキスト
で進みます。
キー名をpaResponse
、値は動的コンテンツで変数を初期化する
の項目内のresponseMsg
にしましょう。
2-4. 保存&名前をつける
保存をして、フローの名前を分かりやすいものにしましょう。ここではPA連携TEST0603
としました。
3. Power Apps側で呼び出しと連携
連携手順を紹介します。
3-1. Power Automateとの連携
まずはPower AppsからPower Automateのフローを呼び出せるように読み込みをします。
Power Appsの画面に戻り、サイドバーのPower Automateのアイコンを選択します。
フローの追加
を押すと先ほど作成したPower Automateのフローを連携させます。
PA連携TEST0603
など先ほど付けた名前を見つけて選択します。
連携できると以下のような表示になります。
3-2. ボタンに機能を付ける
ボタンを選択し、関数の入力箇所(fx)の部分に以下をコピペして設定します。
UpdateContext(
{newLabelText: 'PA連携TEST0603'.Run(
TextInput1.Text
).pa_response}
)
簡単に解説
- 'PA連携TEST0603'の部分: これはPower Automateのフロー名です。
-
pa_response
の部分: これはPower Automate側で出力に設定したキー名です。 -
newLabelText
の部分: ここはPower Apps内で利用する変数です。 -
TextInput1.Text
の部分: ここはテキストを入力してPower Automateの入力に値を渡す際の変数になります。TextInput1
はパーツを追加したときに自動的に設定されるIDのようなものです。
3-3. ラベルに表示を連携する
テキストラベルに処理をした内容を表示させたいです。元々"テキスト"と入っている文字列を削除してnewLabelText
を入れましょう。これでPower Automate側で処理をして返ってきた値がここに入ります。
完成: 試してみる
試してみます。ちゃんと動いてそうですね。
応用
裏側でHTTPやエクセルのアクションに繋げば、可能性は広がりそうですね。
まとめ
Power Apps => Power Automate => Power Apps
という連携を試してみました。
同じようなことをやりたい人は試してみて下さい。