【管理者向け】Power Automate Desktop に関連するDataverseテーブルなどについて


みなさん、こんにちは。
日本マイクロソフトの佐々木です。
本日はPower Platform管理者がPower Automate Desktopを管理していく中で確認する（直接的にも間接的にも）Dataverseテーブルなどについてまとめたいと思います。

# なぜDataverseテーブルを知ることが重要か
Dataverseは一般的にPower Appsなどで利用するためのデータベースとしての側面で知られています。

一方で、Power Automate Desktopに限らず、Power Platformにおける関連リソースやログなどのデータは大半Dataverseテーブルに格納されています。
そのため、管理者目線でみると、それらのテーブルを知ることで**データ量を適切に管理したり野良リソースを発見したり**と運用に活かすことができます。

特に、**既定環境を健全な状態に保つ**ためにもこれらの知識があったほうがいいといえます。

# 前提として
Power Automate Desktopは有償ライセンス（Power Automate PremiumやProcessライセンス）による開発/実行か無償ライセンスによるものかによって結構振る舞いが異なります。

今回の記事は主に**有償ライセンスを利用した場合**の管理内容（主にリソース管理や実行ログ管理）となります。

| 管理項目                         | Premiumライセンス                          | 無償ライセンス                       |
|----------------------------------|---------------------------------------|-------------------------------------|
| リソース（デスクトップフロー）の保存場所 | 指定した環境のDataverseテーブルに保存    | 既定環境のDataverseテーブルに保存   |
| 実行ログの保存場所                   | デスクトップフローが存在する環境のDataverseテーブルに保存 | クライアント端末に保存              |


詳細は下記のLearnを確認ください。

https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/premium-features


裏を返せば、**無償ライセンスの場合、管理者目線からみて、管理できる内容少なくなる**とイメージしていてだいてもいいかもしれません。特に**実行ログ**が一元的に管理できなくなります。


## Power Automate Desktopのキーコンセプト
ざっくりと下記のようなイメージになります。
1. PC/VMでデスクトップフローを開発
1. 開発すると指定したDataverseテーブルに保存（有償ライセンスのみ。無償ライセンスの場合は既定環境のDataverseテーブルに保存）
1. Power Automate Portalから実行指示（有償ライセンスのみ。無償ライセンスの場合は実行端末から直接実行のみ）
1. ログがDataverseテーブルに保存される（有償ライセンスのみ。無償ライセンスの場合は実行端末に保存）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/a8b08ba7-a468-4747-a9c0-4f3f196d0600.png)


# Power Automate Desktop関連のDataverseテーブルについて
以下に主要なテーブルをまとめます。
このほかにも実行用マシンを管理するテーブルなど様々ありますが、デスクトップフローのリソースや実行ログの観点でよく利用するテーブルに絞ってまとめます。

| テーブル名           | 説明                                                         |
|--------------------|------------------------------------------------------------|
| プロセス（Workflow）  | フローの定義情報等が保存されます。                                    |
| フローセッション（flowsession） | 有償ライセンスの利用時に、デスクトップ フローの実行履歴データが保存されます。  |
| Flow Log（flowlog）   | 有償ライセンスの利用時かつ、アクション ログ バージョンV2を選択している場合、デスクトップ フローのアクション詳細ログが保存されます。 |
| ワークフロー バイナリ（workflowbinary） | 有償ライセンスの利用時に、workflowbinary テーブルにスクリーンショット情報が保存されます。


実行ログについてはログv1とログv2で対象となるテーブルや特徴が異なります。

:::note info
ログv1の場合、Additional Contextというファイル列にアクションの詳細が格納されています。こちらはAzure Blob上に格納されているデータのため、手軽にアクセスすることが難しいです。

一方でログv2は、アクションの詳細がJSON形式で格納されているため、アクションの詳細を取得しやすいことが特徴です。
:::

https://learn.microsoft.com/ja-jp/power-automate/desktop-flows/configure-desktop-flow-logs


# Power Automate Desktopの管理について
詳細は割愛しておりますし、主な標準機能での手段についての一覧となります。
基本的には、デスクトップフローのリソース情報、実行ログ情報の観点で整理していきたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/eed42d50-9703-45c8-98cc-62b1c6b3a75c.png)

これらのGUIやAPIを利用して、各種リソース（Power Automate Desktopのデスクトップフロー）や実行ログを管理していきます。
代表的な内容だけこのブログで紹介したいと思います。


## Dataverse テーブルからアクセス
まず、手軽な方法として、DataverseのGUI上から各種テーブルのレコードにアクセスする方法です。

下記のように、プロセス（Workflow）テーブルやフローセッション（flowsession）テーブルにアクセスし、各種リソースの情報や実行ログにアクセスすることが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/e273d5c4-2c4b-4feb-a215-0df661fd7479.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/bef33fd4-a13c-4d62-b816-c921acbd6f00.png)


## Dynamics 365からアクセス
こちらについては、Power Platformの各種ポータルからDataverseのテーブルにアクセスするのではなく、Dynamics 365からDataverseテーブルにアクセスする方法を指しています。
レコードを一括で確認したり削除したりすることができるので、管理者目線では楽に操作することが可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/5f3ecd38-bc5c-4593-b995-d0813c4819f2.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/460644eb-2bb2-45ce-a512-1f1be0e7c99d.png)


詳細は当社のサポートのブログがわかりやすいです。

https://jpdynamicscrm.github.io/blog/powerautomate/power-automate-desktop-get-owner/#1-Power-Apps-%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%AB%E9%81%B7%E7%A7%BB%E3%81%97%E3%81%BE%E3%81%99


## Power Automate Portalからアクセス
Power Autoamte Poralの[マイフロー]から自身が所有するデスクトップフローが一覧で確認可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/e3944013-7f43-4384-8f30-e90663d5ce30.png)


:::note info
環境のシステム管理者は環境内のフローが共同所有者として共有されるため、すべてのデスクトップフローが共同作成者として表示されます。
:::

また、デスクトップフローの実行一覧やデスクトップフロー活動などから実行履歴を閲覧可能です。アクションの詳細内容についても閲覧可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/b5772cba-bd62-4842-907f-a06434d0f0c5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/fb2c3882-e67a-4429-a1f8-36cfcf3d5427.png)


## Power Platform 管理センター
分析タブより実行履歴やリソースの情報が閲覧可能となります。
ただし、実行履歴は「クラウドフローからトリガーされたデスクトップフローの実行履歴」のみが表示されるため、データとしては不十分な可能性があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2975138/315ec5e2-bffd-49db-b639-121c2bc236c4.png)


## Dataverseコネクタ
Power AutomateのDataverseコネクタを利用して、テーブルから該当のレコードを取得・操作する方法です。プロセス（Workflow）テーブルやフローセッション（flowsession）テーブルに対して、コネクタを経由してアクセスします。


# おわりに
簡単ではございますが、Power Automate Desktop に関連するDataverseテーブルについてご説明しました。登場するテーブルは多岐にわたりますが、まずは主要なテーブルについてご紹介しました。