Power Apps ＆Automateで申請/承認アプリを作成する方法

向井です。

今回はPower Platform初心者の方向けにごく**シンプルな申請承認アプリの作成方法**を紹介します。
データソースにMicrosof Dataverse(旧：CDS)を使用することでPower Appsでとても簡単にアプリを作ることができます。

#1. データソースの作成#
Microsoft Dataverseにデータソースを作成します。
左のメニューのデータ＞テーブル（旧：エンティティ）から新しいテーブルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/abdc34c5-af4a-bec2-fcca-ee00237a2935.png)

今回は以下のように申請という名前のテーブルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/4817402a-ec17-bad9-21a8-51299c5c1737.png)

列の追加から必要な列（旧：フィールド）を追加していきます。
今回は以下のものを追加します。
・内容：複数行テキスト
・承認者：参照、ユーザー
・承認ステータス：選択肢（申請中、承認、却下）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/1513381e-01e2-3a12-fb32-98fb4d949ebf.png)


#2. キャンバスアプリの作成#
キャンバスアプリを作成します。
挿入＞フォーム＞編集を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/a4f19da3-cdfc-52ed-6b88-6ef46983079a.png)

先ほど作成したテーブルをデータソースに設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/4d8a022a-03ad-3088-0b39-2fe69e879b5c.png)

フィールドの追加から以下の列を追加し、作成日を削除します。
・内容
・承認者
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/4689430d-476e-4802-b5e6-d8a2e1cd8691.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/31b06802-4d9b-c0d1-fa17-1e8cbb092081.png)


既定モードを新規にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/1e2a4ab7-5673-1ea7-292b-24554608f05e.png)


成功画面を作成しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/32cf3b64-8b5d-f28f-81fc-d15f647756da.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/d99c25ea-5123-ad5e-bea4-7a1dd45fce07.png)

Screen1に戻ってボタンを配置します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/1b95d29e-d616-7d8d-fd78-4e48e1ce8851.png)


ボタンのOnSelectに以下の文を書きます。
SubmitForm(Form1);Navigate(Screen2)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/bfbf594f-587b-b177-41fe-1df9d56f7e9d.png)

Screen2に戻るボタンを追加します。
NewForm(Form1);Navigate(Screen1)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/058dcfc8-2406-d222-7f8c-d4b2c3be77b1.png)

アプリを保存します。


**これでユーザーがフォームにデータを入力し、申請ボタンを押すとCDSにデータが格納されるアプリが作成できました。
次はCDSにデータが書き込まれたら承認フローを回すフローを作成していきます。**


#Power Automateの作成#
Power Automateを作成していきます。
先ほどアプリを作ったのと同じ環境に作成してください。
作成＞自動化したクラウドフロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/9b9ddf61-4c95-a416-5d2e-2ef9f2aa5348.png)

Common Data Service　レコードが作成されたときを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/2a510e8a-00e2-14ee-b6b0-0f2d6ee9de02.png)

環境は先ほどアプリを作成した環境を選んでください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/290bb6f9-026b-3b03-5136-b184f69ef079.png)

Common Data Serviceで検索し、レコードの取得を選択
※「申請」エンティティの「承認者」フィールドは「ユーザー」エンティティを参照しているため、ここでユーザーエンティティのレコードを取得しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/070e271f-1bea-6e39-9009-8b17531e9c74.png)


新しいステップ＞承認で検索し、「承認を作成」を選択

以下のように設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/967d8de4-6af0-cace-06ae-6c1acd1136df.png)


新しいステップ＞Teams＞独自のアダプティブカードをフローボットとしてユーザーに投稿

以下のように設定してください
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1004488/59f8fc68-b501-1603-771e-ca375ececab5.png)


ここまで作成すると承認者のTeamsに承認のアダプティブカードを送ることができます。
あとは必要に応じて条件分岐等で申請者への通知をおこなってください。

こちらの記事などが参考になると思います。

【Power Automate】基本的な承認フローの作り方①
https://live-style.jp/powerautomate-approvalflow1/