Power Apps と Power Automate を連携させる！アプリでボタンを押してフローを作動させる方法！～フロー呼び出し編～

## 概要
Power Apps のアプリのボタンを押すことで Power Automate のフローを呼び出し実行させることができます。
Power Apps のみでは実行できない処理や、アプリを動かしている裏で膨大なデータの処理を行わせたい時に役立ちます！

おおまかな作成手順は以下になります。

**1\. Power Automateでフローを作成する。**
**2\. Power Appsでボタンを配置し、フローを呼び出す設定を行う。**
**3\. 必要に応じてフロー実行時にPower Appsからパラメータを渡す。**

それでは実際に、手順をもとにフローを作成してみましょう。

:::note info
今回はPower Appsでボタンを押すと、
Teamsへメッセージが送信されるPower Aurtomateのフローが作動し
Teamsへメッセージが送られるという例を作成します。
:::



#### 1\.Power Automateでフローを作成する
+ Power Automate にサインインして、フローの作成を開始します。
+ Power Automateのホーム画面で「+ 作成」をクリックします。
+ 「インスタントクラウドフロー」を選択します。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/e712c975-25d2-6932-ba65-1d0e6b2172e4.png)


+ 「Power Apps がフローを呼び出したとき(V2)」を選択し、作成ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/128c81ef-0f52-bb25-76e2-363dc9a5b6b7.png)

+ Power Apps から値を受け取りたい場合はユーザー入力の種類の選択からパラメータを選択してください。
パラメータは全部で6種類あります。
テキスト型/Boolen型/ファイル/電子メール/数値/日付
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/082856fa-3746-970b-7e67-5c484e0a3e52.png)

+ 今回はテキストをPower Automateへ引き渡したいと思います。
+ `テキスト` を選択して左側に名前を設定してください。
ここで設定した名前がPower Apps側で表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/31bb2f93-5b1d-9c76-11d6-66925db86b86.png)


+ 次に 「新しいステップ」 を押して追加したいアクションを選択します。
（メール送信、Teams送信、SharePointリスト操作、Dataverseリスト操作等...）
今回は Teams へのメッセージ送信をアクションとします。

:::note info
Teamsへのメッセージを送信するアクション方法については以下の記事内にて簡単に説明していますので、設定方法が不明な場合はご参考にしてみてください。
:::

https://qiita.com/Sanwa_Paint/items/c318c9babd8c8f111f9d


+ 設定が完了したら、名前をつけてフローを保存します。


#### 2\.Power Appsでボタンを配置し、フローを呼び出す設定を行う。
+ 対象のPowerAppsアプリを開きます。
+ フローを呼び出したい画面にボタンを設置します。
+ 左側にあるサイドメニューから `「・・・」` を選択し `「Power Automate」`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/a5291de8-e61f-2845-f58e-c4f502f20e70.png)

+ `フローの追加` をクリックし、 **`１`** で作成したフローを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/e97bc85f-3736-8bf4-88c1-0056361c2d38.png)

+ フローが Power Apps 内にリンクされます。
+ ボタンの `OnSelect` にフローを呼び出すための、以下の関数を設定します。

```ruby:Power Apps ボタンの OnSelect
    フロー名.Run()
```

#### 3\. 必要に応じてフロー実行時にPower Appsからパラメータを渡す。
+ 今回は **`１`** で値を引き渡すためにパラメータを設定しているので以下のように設定します。

```ruby:Power Apps ボタンの OnSelect
    フロー名.Run(入力値１,入力値２)
```

:::note info
Power Appsで `Run関数` を入力するとPower Automateのフロー作成時に設定したパラメータが上から順に引数として表示されます。
それぞれの型に合った引数を設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/ce541c15-2218-5d49-4ffb-1ca303458aad.png)

**引数を設定**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/b3d6c28a-fc1b-5de9-93df-e958b2951870.png)
:::

## テスト
+ 設定が完了したらPower Appsのボタンをクリックして実行してください。
フローはこのように設定しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/1ff458ea-fecd-157b-761e-d5477004dcf2.png)

+ 実行が終わったら、次はPower Automateの実行履歴を確認しにいきます。
`出力` にアプリで引き渡したテキストが表示されているのが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/e3433914-e4fe-f2d3-33b5-bb0119303a7a.png)

+ Teamsも確認してみましょう。
通知のほうも問題なく飛んできています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3719434/d5661426-79a4-da22-0def-909e9a8be90e.png)

## まとめ😀
以上がアプリのボタンをトリガーにPower Automateのフローを動作させる方法になります！！
補足として、フローが正常に作動したことをPower Apps側へ返答するやり方もありますが、
そちらについては随時、更新していこうと思います！！
まずは、基本的な動作を覚えて効率的なアプリ作成に役立ててみてください！

### 次の記事
こちらでは作動したフローの結果をPower Appsへ返答するやり方について説明しています。
ぜひこちらもご参考にしてみたください！！

https://qiita.com/Sanwa_Paint/items/8ea78a935476045f20de




### 参考（Power Automateのトリガーに関して作成している他の記事です)
https://qiita.com/Sanwa_Paint/items/659e451d33f011a59bf5

https://qiita.com/Sanwa_Paint/items/1df754b07d3f2a0f10b3