PL-200 学習メモ (10) : Power Automate（承認フロー、フローの共有、キャンバスアプリとの連携、ビジネスプロセスフロー）

# はじめに
この投稿は PL-200: Microsoft Power Platform 業務コンサルタントの学習をした内容のメモです。

投稿の一覧は以下のリンク先にあります。

https://qiita.com/atsmin77/items/f25bd707921c421cee03

# 前の投稿

https://qiita.com/atsmin77/items/758c7f80d883acb625fb

# 承認フロー

**承認** アクションを利用すると、Power Automate で承認ワークフローを作成することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/684806ff-ac1c-2131-8d9e-ce9d05534fd4.png)

* 承認結果をメールと Teams のチャネルへ投稿するフローの例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/33670164-c879-e6bb-7bf9-0dc1f23346f1.png)

[開始して承認を待機] アクションは、承認が承認者によって処理されるまでフローを待機し、承認または却下されたら後続の処理を行います。

## 承認処理中

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/dee105fa-bcf2-536a-cbee-b036f8450c07.png)

* 承認者へ届くメール
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/312ba6a5-3399-9b1f-546c-b778f2d08266.png)

## 承認処理後

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/58b4d643-8428-a2aa-3b13-e08470ad5a0d.png)

* 承認結果の通知
  * メール 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/b42ec2cf-a8fc-a1a0-c5a2-aee27720f62a.png)
  * Teams
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/ac12d37a-ec7e-a680-9bad-588341b54bde.png)

::: note info
[ホーム] タブからプロンプトによって、Copilot によりフローを自動生成させることができます。

以下のようなプロンプトを入力すると、適切なトリガーやアクションでフローが生成されました。

`
手動で有給休暇を申請する承認を作成し、承認されるまで待機する。承認結果をメールで自身に送信し、さらに承認結果を Teams のチャネルへ投稿する。
`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/785ab2ac-26e6-7b20-c6e4-5745fb457127.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/3e75dfdc-eae4-af36-57fe-724b1d05014e.png)

自身のメールアドレスを取得するために [マイプロフィールの取得] アクションが利用されました。この方法だとフローに直接メールアドレスを記載しなくてもよくなります。
:::

# フローの共有

Power Automate のフローを共有する方法には以下の 3 つがあります。

| 名前 | 説明 |
|:-:|:-:|
| 共同所有者に追加する  | 共有されたユーザーはフローの編集や削除が自由に行えます。  |
| 実行権限のみを付与する  | 共有されたユーザーはフローの実行のみが行えます  |
| フローのコピーを共有する  | フローをコピーし新たに別のフローとして共有します。|

## 共同所有者

1. [共有] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/c7b27d29-d25a-e603-2975-fb1ca4ef5c4b.png)
2. 共有したいユーザーを[共同所有者] に追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/3c845f4f-e27d-50bf-8c14-0b7f35449287.png)
3. 共有されたフローは [自分と共有] タブに表示され、実行や編集が行えます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/934ef3ac-1a36-c116-d729-3bc6fb75f72a.png)

## 実行権限のみ

1. [実行済みのユーザー] の [編集] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/2c42f45b-023e-1eee-416e-a2f1c6e4ac95.png)
2. [ユーザーやグループを招待] で共有したいユーザーを追加
※ [使用する接続] で接続の情報を実行時に指定するか、フローの接続情報を使用するかを選択できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/5cd0808a-fb35-ca92-0464-5f572ec7a437.png)
3. 追加されたユーザーに届くメールの [View Flow] のリンクから、フローの実行が行えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/01d14967-9c05-70df-fce3-38fc72d3639a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/923c98ce-be54-8008-ebb3-3c1548c6bd01.png)

## コピーを送信
[コピーを送信] からフローをコピーし新たな別のフローとして他のユーザーに共有します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/6852c533-9f06-503c-2544-5247d01d1d63.png)

https://learn.microsoft.com/ja-jp/power-automate/create-team-flows

# キャンバスアプリとの連携

キャンバスアプリ内で Power Automate フローを作成し、呼び出すことができます。

## キャンバスアプリでのフローの作成
1. [Power Autoamte] - [フローの追加] - [フローを新規作成する] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/9ffbb902-2787-bebf-e40a-bc5b953546eb.png)
2. フローの名称を変更し、Power Automate と同様にステップを追加し、保存します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/84f0468b-9184-4284-5598-184f1267d338.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/6a2c4d55-d484-7cfa-4104-1fffb378a841.png)

## キャンバスアプリからのフローの呼び出し
キャンバスアプリからフローを実行するには、OnSelect プロパティに以下を設定します。
```
【フローの名前】.Run()

例：
ConvasToAutomate.Run()
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/31553adc-6143-781e-5f3f-00775b59f834.png)

## キャンバスアプリとの入出力
キャンバスアプリとフローの間でデータのやり取りは以下の方法で行えます。

* キャンバスアプリからフローへの入力
1. [入力の追加] をクリック 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/2c6ec07b-b16e-4100-8617-62e688e3f94f.png)
2. 入力された値はフローの中で動的コンテンツとして参照できます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/ddd1a7c5-e208-b300-e7df-2f97b26b7098.png)
3. キャンバスアプリからは以下のように入力する内容を設定します。
```
【フローの名前】.Run(【入力する値】)
``` 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a60948b2-2515-b48c-306a-d31acb65f425.png)

* フローからキャンバスアプリへの出力
1. [PowerAps またはフローに応答する] アクションを追加します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/95968cff-aa1b-ab27-106f-9de14de08bf1.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/c0839495-9c3a-6a3b-9f33-d83121fa735c.png)
2. キャンバスアプリへ出力したい内容を設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a9b86bd5-3266-5fa9-64e7-d673197a5e77.png)
3. キャンバスアプリからは、以下のようにフローからの出力を変数に設定できます
```
Set(【変数名】, 【フローの名前】.Run())

例：
Set(AutomateResult, ConvasToAutomate.Run())
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/18c16bc5-246f-5dc1-eaa9-cc46c4624f8a.png)
4. 以下のようにフローから出力された値を参照することができます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/80a7c6da-07f5-97fc-6570-37b879df9d54.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/e713082c-8b4c-0e0d-dd19-0a64b4f3fc46.png)

https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/how-to/trigger-flow

# ビジネスプロセスフロー

ビジネスプロセスフローを利用することで、モデル駆動型アプリでレコードをウィザード形式で登録することができます。

1. [ソリューション] - [既定のソリューション] を選択し、[新規] - [自動化] - [プロセス] - [ビジネスプロセス フロー] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/a8b013b3-542f-d52a-26a0-c882908f09f3.png)
2. 名前やテーブルを選択し、[作成] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/03880132-a4f8-158a-f8e8-d4b056e1bdfa.png)
3. 作成したビジネスプロセスフローをクリック
※ 名前で検索すると見つけやすいです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/efe2d987-b933-fcea-3182-411c6bbdc2b0.png)
4. フローの編集画面が開きます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/9aa87d33-b85a-dd71-7bde-9b1fff1b9cab.png)
ビジネスプロセスフローでは **ステージ** と **ステップ** を配置します。

5. フローを[保存] し [アクティベート]　すると、作成したフローがテーブルのレコード新規登録画面上部に表示されます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/f29de1ab-cbb9-552d-e9cf-dc3daf083aa6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/bf50740c-b33e-388c-acd6-3aa0fbee3d29.png)

| 名前 | 説明 |
|:-:|:-:|
| ステージ  | ウィザードにおける各画面に相当します、ステージの遷移を条件分岐で指定することもできます  |
| ステップ  | データの入力などのステージにおける個々の操作です  |

::: note info
進行中のビジネスプロセスフローの状態は専用のテーブルに保存されます。現在のステージは [アクティブ ステージ] 列から分かります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/ca3f80a6-109b-9212-50bd-3a4a324fdab4.png)
:::

https://learn.microsoft.com/ja-jp/power-automate/business-process-flows-overview

https://learn.microsoft.com/ja-jp/power-automate/best-practices-entity-attributes

::: note info 
Power Automate で作成できるフローのほかに、クラシックワークフローというものがあります。
現在は Power Automate フローの利用が推奨されていますが、非同期で実行される Power Automate フローとは異なり、クラシックワークフローは同期的（トリガーの後すぐに）実行することも可能です。
:::

https://learn.microsoft.com/ja-jp/power-automate/replace-workflows-with-flows

# 次の投稿

https://qiita.com/atsmin77/items/29ffb856a855259e81b3