外部リンク機能を使用した Power Automate for desktop のフローの様々な実行方法を試してみる

# はじめに
2022 年 6 月の Power Automate for desktop (以下、PAD) のアップデートで、外部リンクからの PAD のフロー (デスクトップ フロー) の実行機能が提供されました。
従来、PAD のフローを外部から実行する場合は、クラウド フローからの呼び出しによる方法のみが提供されていましたが、今回のアップデートにより、以下の指定形式のリンクを実行することで、デスクトップ フローを実行することが可能となりました。
とても大きなアップデートだと思います！

```
ms-powerautomate:/console/flow/run?environmentId=[envID]&workflowName=[Name]
```

具体的には、以下のような方法で実行できることを確認しています。
・Web ブラウザーからの実行
・ショートカット ファイルからの実行
・PowerShell からの実行
・Power Apps からの実行

本記事では、それぞれの実行方法について、確認できた手順をまとめたものとなります。

# 前提事項
#### 1.ライセンス
外部リンクからの実行は、プレミアム アカウントを持つユーザーによる実行が必要となります。
プレミアム アカウントを持つユーザーは、Power Automate の アテンド型 RPA のユーザーごとのプランやその試用版のライセンスが割り当てられたユーザーが対象となります。
つまり、Microsoft アカウントや上記ライセンスが付与されていない Microsoft 365 のアカウント (所謂、無償アカウント) では使用できない想定です。

※ 必要となるライセンスについては、以下の記事を確認しています。

https://docs.microsoft.com/ja-jp/power-platform-release-plan/2022wave1/power-automate/run-desktop-flows-through-external-link


#### 2.バージョン
外部リンクからの実行は、Power Automate for desktop のバージョンが、Ver 2.21 以上で利用できる機能です。
必要に応じ PAD のアップデート機能や以下のリンクから最新版の PAD をダウンロードし、バージョン アップを行います。

https://go.microsoft.com/fwlink/?linkid=2102613

# 事前準備
#### 1. リンクに設定するパラメータの確認

:::note info
(2022/8/23 更新)
Power Automate for desktop の Ver 2.23 から、フロー コンソールから、外部リンクが取得できるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/8b33a760-dbdf-7b7b-e4db-d322afd26ae9.png)

:::



上述の通り簡単に外部リンクが取得できる方法が追加されましたが、以下の手順についても参考情報として記載を残しております。

実行する外部リンクは、ms-powerautomate:/console/flow/run?environmentId=[envID]&workflowName=[Name] の形式ですが、この中で、**environmentId** と **workflowName** の 2 つのパラメータを指定する必要があります。





**environmentId の確認**
environmentId は、実行するデスクトップ フローが保存されている Power Automate の環境の ID になります。
ID は、Power Automate のクラウド上の画面にアクセスして確認する方法が比較的に容易です。

1)https://powerautomate.microsoft.com/ja-jp/ にアクセスし、サインインします。
2)左側のメニューから、[マイ フロー] をクリックし、[デスクトップ フロー] のタブをクリックします。
3)実行対象のフローが一覧に存在していることが確認できたら、アドレス欄の URL の内 environments/ から /uiflows までの ID 値をコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/80deb732-ea68-66f4-aae8-c09aaaf3c825.png)


※ 対象のフローが一覧に表示されていない場合は、[自分と共有] タブに存在しているかの確認やそもそも異なる環境に保存されている可能性があるため画面右上の環境名をクリックして環境を切り替えて対象のフローを確認してください

**workflowName の確認**
実行するデスクトップ フローの名称です。PAD のコンソール上や上記の環境を確認する手順で名称を確認して、控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/c8073a10-fd42-355d-184c-7ce350ad0577.png)

**指定するリンクの最終形**
上記の確認結果、実行で使用するリンクは以下のような内容になります。
例 : 
```
environmentId : Default-XXXXXXXX-XXXX-XXXX-XXXX-XXXX12345678 
workflowName :PAD Test 
```
であるなら、以下のリンクとなります。
```
ms-powerautomate:/console/flow/run?environmentId=Default-XXXXXXXX-XXXX-XXXX-XXXX-XXXX12345678&workflowName=PAD Test
```

#### 2. 実行時に確認メッセージを表示するかの設定について
外部リンクからのデスクトップ フローの実行時に、確認メッセージを表示し、実行するフローをユーザーが確認の上、実行することが可能です。この機能により、(後述するショートカットファイルからの実行などにおいて) 誤って意図しないフローの実行をした場合にも実行を抑止できる可能性があります。

この機能は、デフォルトで有効になっていますが、必要に応じて無効にすることで確認メッセージを表示せずにフローを実行することが可能です。利用する状況に応じて、設定を変更してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/98168599-adfd-e0d3-b7ba-0d16129fc76d.png)

以上で事前準備は完了のため、以下では外部リンクの実行方法をまとめてます。

# Web ブラウザーから実行する
Web ブラウザーにて、外部リンクが解釈可能のため、アドレス欄から実行できます。
1) 外部リンクを Web ブラウザーの アドレス欄に貼り付けて Enter キーで実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/595ca803-2412-2c28-9ae4-8984969d99ba.png)

ブラウザー側の機能の確認メッセージが表示されますので、"はい" を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/c28e6646-4a12-6c3e-4f88-6c3194aed040.png)

対象のフローが呼び出されて実行することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/e43a3a87-b570-adfd-0e61-bf6fc09d8567.png)


# ショートカットから実行する
デスクトップやフォルダー上にショートカットを作成して、ショートカットから実行することができます。
1)フォルダー上などの任意の場所を右クリックし、[新規作成] > [ショートカット] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/185ccd83-f016-2f7e-5164-74e7898791c7.png)
2) [項目の場所を入力してください] に外部リンクを設定して、[次へ] をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/65283f84-5b7d-407d-e088-09d5b2d572d5.png)
3) ショートカットの名前を任意の名前を設定し、[完了] をクリックします。
4) 作成したショートカットをダブルクリックすることで、対象のフローが呼び出されて実行することができます。




# PowerShell から実行する
PowerShell にて Start-Process コマンドを使用することで、外部リンクを実行することができます。
PowerShell を起動し、Start-Process "外部リンク" を入力し、実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/987de2ac-6b48-e330-3809-2d8386fd0963.png)

上記のコマンドを一度メモ帳などに貼り付けて、拡張子を ps1 として保存することで、PowerShell の実行ファイルとして保存することができます。

:::note info
日本語名のフローについては、保存する際にエンコードを UTF-8 (BOM 付き) にすることで、実行することができました。
:::

# Power Apps から実行する
Power Apps の Launch 関数から、外部リンクを実行することができます。
そのため、ボタン コントロールの OnSelect イベントに Launch 関数を設定し、ボタン選択時にデスクトップ フローを実行することができます。
下記の例は、SharePoint リストで、Power Apps のカスタム フォームを作成し、リスト アイテムの内容に応じてフローを実行するサンプルになります。よく実行する PAD のフローをリストにまとめておいて実行するのはおもしろいかもしれません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/b1548c35-a6f9-d014-688a-8f889c45a438.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/547452/10daa6f7-5616-2ef4-2fac-44fa1eac051d.png)


https://docs.microsoft.com/ja-jp/power-apps/maker/canvas-apps/functions/function-param




# おわりに
外部リンクからの実行機能が追加されたことにより、様々な方法で Power Automate for desktop のフローが実行できるようになりました。
Power Platform 以外からの実行も行えるため、既存の技術との組み合わせで自動化の幅がより広くなると思います。


# 免責事項
この記事は、2022 年 6 月時点の Microsoft が提供する公開情報や検証環境の動作から確認した内容を記載しています。
記載している実行方法がサポートされるかや実行方法に応じた必要なライセンスなど正確な内容を確認したい場合は、マイクロソフトに確認をお願いします。

なお、Power Automate for desktop 自体のサポート範囲は以下に記載がありましたので、ご参考ください。

https://jpdynamicscrm.github.io/blog/powerautomate/PowerAutomateDesktopSupportability/