（最終回）[鳳凰院凶真チャットボット]Power Automate→Power Automate Desktop編

今回で最後の解説になります。
TeamsのOakdake環境に構築したPower Virtual Agentsから、Microsoft365のデフォルト環境に構築したPower Automateにて、JSONで値を受け取って、そのデータを自分のPCで動くPower Automate Desktopへデーターを渡す部分を解説したいと思います。

![環境図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/81f74aae-3e5f-6e2f-6aff-e3b6d4d208d1.png)


まずは、アプリの挙動を動画で見ていただいて、動作確認をおさらいしましょう。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">チャットボットを活用してシュタインズゲートの鳳凰院凶真を降臨させてみました！<br><br>友人に薦められてドハマりしたので、Teams→Power Virtual Agents→Power Automate Desktop→Active Dirctoryユーザー追加が出来る近未来ガジェットを作成しました。<a href="https://twitter.com/hashtag/%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3%E3%82%BA%E3%83%BB%E3%82%B2%E3%83%BC%E3%83%88?src=hash&amp;ref_src=twsrc%5Etfw">#シュタインズ・ゲート</a><a href="https://twitter.com/hashtag/%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88?src=hash&amp;ref_src=twsrc%5Etfw">#ガジェット</a><a href="https://twitter.com/hashtag/teams?src=hash&amp;ref_src=twsrc%5Etfw">#teams</a> <a href="https://t.co/sAWdStdTBB">pic.twitter.com/sAWdStdTBB</a></p>&mdash; koby@フロッグポッドエンジニア募集中 (@rockfun) <a href="https://twitter.com/rockfun/status/1320485208802603014?ref_src=twsrc%5Etfw">October 25, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

##Power Automte Desktopの利用設定
まずはPower Automte Desktopで、Active Directoryへユーザー追加を自動化します。
インストールや設定については、吉田さんの動画解説がわかりやすいので、こちらを参考にしてください。
・Power Automate Desktop(RPA)のインストール
https://youtu.be/kyxNLUCA-mQ

・オンプレミスデータゲートウェイ
クラウド側からローカルのリソースに安全にアクセスするためにインストールします。
https://youtu.be/-blPo-zErQg

・ブラウザの設定
Power AutomateからPower Automate Desktopを起動する為に、ブラウザにアドオンをインストールします。
https://www.youtube.com/watch?v=0oNSLTSJDsc&t=26s

##1.フローを作成する
インストールと設定が完了したら、アプリケーションを起動してフローを作成します。
左上の「新しいフロー」をクリックし、フロー名を決めます。
![フローの作成-Power-Automate5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/4d9693c8-510a-c031-62f0-7e2a1a8e5ba4.png)

画面左部分の**「アクション」**から、
サーバーに接続
↓
ユーザーを作成
↓
接続を閉じる
この順番で作成します。
![フローの作成-Power-Automate7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/1eddcbd7-5174-7325-4320-5b518b0a5e68.png)

###1-1.サーバーに接続
接続先情報を登録します。
**LDAPパス**：LDAP://○○○○○○（オンプレのADのIPアドレスまたはドメイン名）
**認証を使う**：オン
**ユーザー名**：アクセス権限のあるアカウント名
**パスワード**：ログインパスワード
![フローの作成-Power-Automate6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/9dd4f135-8322-1bcb-026d-721ec77d2a81.png)

###1-2.変数の作成
ユーザーを追加するアクションを作成する前に、画面右にある変数でPower Virtual Agentsから取得する値を入れる変数を作成します。
![フローの作成-Power-Automate9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/9d51720c-ce73-0e97-13f6-5a371d8a4be0.png)

**「＋」**を押して**「入力」**を選んで3つ作成します。
・AcountName
・UserName＿Myoji
・UserName＿Namae

###例：AcountName
![フローの作成-Power-Automate8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/d0560c66-5396-22a3-c917-14ef316f9728.png)
**変数の種類**：入力
**変数名**：AcountName
**規定値**：（お好きなログイン名）
**データの種類**：String
**外部名**：AcountName
**説明**：アカウントネーム
※どの変数も規定値に入れる値が、テスト動作するときに変数の値として入ってきます。

###1-3.ユーザーを作成
**親ディレクトリエントリ**：%ParentDirectoryEntry%(初期値）
**場所**：※ここは会社ごとに違いますが、今回は固定値にしています。
**名**：%UserName_Namae%※入力フォーム右端の「fx」をクリックすると、作成した変数が選べます。
**イニシャル**：未入力
**姓**：%UserName_Myoji%※入力フォーム右端の「fx」をクリックすると、作成した変数が選べます。
**ユーザー名**：%AcountName%※入力フォーム右端の「fx」をクリックすると、作成した変数が選べます。
**パスワード**：パスワードもBotの解答で登録させるか迷いましたが、初回ログイン時にパスワードは変更するので、ここでは固定値にしています。
![フローの作成-Power-Automate10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/2038bdd0-22e5-fb3b-eceb-1e0018483df9.png)

###1-4.接続を閉じる
特にアクションを選ぶだけで、何も設定しません。
![フローの作成-Power-Automate11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/432b2a7b-3f52-b2ae-95f3-dc7a5a4625ef.png)

以上で、設定完了です。**「保存」**したら再生ボタンで動作確認をします。

##2.Micorsoft365標準環境のPower Automateに受信側設定をおこなう
説明する順序が逆になりましたが、改めてMicrosoft365標準環境のPower Automateにフローを新規に作成します。

###2-1.要求作成
**「要求」**コネクタ(プレミアムコネクタになります）をえらび**「HTTP要求の受信時」**を選びます。
![フローの作成-Power-Automate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/dadc5776-593b-dc9a-c350-3a7c2d186f36.png)

ここにOakdale環境から送信されたJSONデータを受信する設定をおこないます。
**「要求本文のJSONスキーマ」**に受信するスキーマーを設定しますが、簡単に設定できるように、「サンプルのペイロードを使用してスキーマを生成する」という機能がついています。
![フローの作成-Power-Automate2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/c82454a9-d4ec-c9e8-ab7c-64eb250579a1.png)

サンプルのJSONペイロードの入力ボックスに送信する予定のデータレイアウトを入力します。
{
  "UserName_Myoji": "小林",
  "UserName_Namae": "凛",
  "AcountName": "rin.kobayashi"
}
右側の値は仮でなんでも良いです。
![フローの作成-Power-Automate3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/2fe8a866-d3e2-0c45-3387-8d858b179cbf.png)

**「完了」**を押すと、スキーマーが自動作成されます。
![フローの作成-Power-Automate4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/f76f9ccc-2266-29f9-0f66-871b4ff565cb.png)

**「新しいステップ」**をクリックして最後のPower Automate Desktopへデータを渡すUIフローを作成します。

###2-2.UIフロー作成
アクションから**「UIフロー」を**検索して、**「Power Automate Desktopで構築したフローを実行する（プレビュー）」**を選択します。
![フローの作成-Power-Automate12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/c439b47d-415f-835f-c66a-561ae7c0aa06.png)

**UIフロー**：※作成したPower Automate Desktopのアクションを選択します。
**実行モード**：手動ーサインイン時に実行する
**UserName_Myoji**：UserName_Myoji（動的なコンテンツから選択）
**UserName_Namae**：UserName_Namae（動的なコンテンツから選択）
**AcountName**：AcountName（動的なコンテンツから選択）
![フローの作成-Power-Automate14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140547/ad7baf09-9579-d138-72ba-a92a5c3b017d.png)

**「保存」**を押して、以上で鳳凰院凶真チャットボットから自動的にオンプレActive Directoryへユーザー登録する一連の設定が完了です。

##まとめ
ちょっとした思い付きから、今回の作成に至りましたが、入力するUIをPower Appsで作ると、どうしても入力が**「作業」**になってしまうところを、キャラクターのチャットボットを使うことで、コミュニケーションを楽しんでもらいながら、入力を促す工夫が出来ました。

業務改善には、利便性以外も大事ですが、使ってもらうユーザーの視点で、**「楽しさ」**も付加されると、より良い業務改善に繋がると思います。