管理者用 Power Automate 管理コネクタの「フローの承認を削除する」アクションを使ってみた

※ この記事は、[Microsoft Power Automate Advent Calendar 2024](https://qiita.com/advent-calendar/2024/powerautomate) 12月1日 担当分の記事です。

# 管理者用 Power Automate 管理コネクタ

管理者用 Power Automate 管理コネクタは、クラウドフローのオン/オフや削除といった操作を管理者として行うことができるコネクタです。

Power Automate管理コネクタについては、[小林 竜也](https://x.com/rockfun)さんの以下の記事が参考になります。合わせて読んでいただくと、どんなことができるかイメージが沸くのではないかと思います。
[Power Automateの管理コネクタを試してみた。](https://qiita.com/rockfun/items/dcfce5235cb375b74c1e)

# 「フローの承認を削除」アクションとは

色々あるアクションの中で「フローの承認を削除」アクションというものがあることに気づきました。
これって、承認アクションの承認を削除したりするものなのかな？ということで、検証を開始しました。
（承認コネクタで何度も登壇したことのある身としては、見逃せないアクションなのです）


まずはLearnを見てみます。
・
・
・
・
・
「フローの承認を削除します」それだけじゃ分からんのですよｗ
![powerautomateforadmins_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/e987a1ab-eda6-1d7a-12fb-4e183ca7a94e.png)

引用：[Power Automate for Admins - Connectors | Microsoft Learn](https://learn.microsoft.com/ja-jp/connectors/microsoftflowforadmins/?WT.mc_id=DX-MVP-5005072)

操作ID：Remove-AdminFlowApproval で検索すると、PowerShellのLearnを発見！!

![powerautomateforadmins_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/7892269a-2ac0-9187-c240-8ada54ed48fb.png)

引用：[Remove-AdminFlowApprovals (Microsoft.PowerApps.Administration.PowerShell) | Microsoft Learn
](https://learn.microsoft.com/en-us/powershell/module/microsoft.powerapps.administration.powershell/remove-adminflowapprovals?view=pa-ps-latest&WT.mc_id=DX-MVP-5005072)

「すべてのアクティブおよび非アクティブなフロー承認を削除します。」
なんとなく分かったような分からないような・・・たぶん、承認コネクタを使った時の承認依頼と承認履歴とか消してくれるんじゃないかと予想。


# 「フローの承認を削除」アクションの設定

「フローの承認を削除」アクションの設定値は、「環境名」「UserId フィールド」です。
詳細パラメータに「API バージョン フィールド」がありますが、すでに入力されているので、そのままとします。PowerShellのLearnにも APIバージョンは、「2016-11-01」と記載があったので、このままでよさそうです。

![powerautomateforadmins_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/5d33e229-ea43-019b-d7c9-f8cf9352f262.png)

「環境名」には、「環境ID」 か 「環境の表示名」どちらかを設定することになりそうです。
「UserId フィールド」は、プレスホルダに「フロー ユーザープリンシパル オブジェクトIDです。」と記載されています。
オブジェクトIDだから、Office 365 Userコネクタを利用して、IDを動的コンテンツで設定すればいいのかしら？ということで、試してみます。

まずは、「環境名」に「環境ID」を指定してみます。
「環境ID」は、Power Platform管理センターの[環境]で該当環境をクリックしたときに表示されます。
![powerautomateforadmins_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/b0ed71ab-7d80-27af-4374-3572235dc463.png)

こんな感じでフローを作成しました。
![powerautomateforadmins_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/faa48457-07f9-cd79-1a22-0701788e8672.png)


結果は
・
・
・
・
・
404！ NotFound でした・・・
![powerautomateforadmins_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/3c4cba3a-9ade-4d9c-74e5-401858a8552e.png)

じゃあ、表示名入れてみようということで実行してみると
403 ！ Forbidden でした・・・
「この 'ManagedEnv' でフローを設定することは許可されていません。アクセス許可が付与されている既定の環境または独自の環境のいずれかに切り替えてください。」というメッセージ。

![powerautomateforadmins_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/23758ba7-ffdc-d46d-02d8-5a3249e49d98.png)

アクセス許可？既定の環境？セキュリティロール絡みかな？システム管理者ロールついているんだけどな？と思いつつ、既定の環境で実施してみても、同様の結果でした。

はて？何が悪いのだろうか？

# 問い合わせへ
「分からないなら聞いちゃえばいいじゃない」ということで、問い合わせをする（SR発行）ことにしました。

結果として、環境名には「環境ID」を指定する必要があるという回答を得ました。
やっぱり、そうだよね。ごめんなさい。

が、しかし、サポートの方が検証した結果、

> アクション自体に問題がありそうなので、調査します。

とのこと、検証できなーーーーーーーーーーーい。

# 数日後・・・

サポートの方からお返事がきました。

> 「フローの承認を削除」アクションについて、調査した結果をご報告いたします。
> このアクションは以前から正しく動作しないため、開発部署ではこのアクションを廃止する方向で検討されています。

・・・廃止されるんかい。
というわけで、「フローの承認を削除」アクションは廃止されるため、利用できません。

# 承認を削除するにはどうしたらいいのか
代替手段は以下となります。

![powerautomateforadmins_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/1c64c760-6175-2732-25f8-5d4427212e40.png)
[個人データの削除要求に対応する (Microsoft Entra ID) - Power Automate | Microsoft Learn](https://learn.microsoft.com/ja-jp/power-automate/privacy-dsr-delete?WT.mc_id=DX-MVP-5005072#delete-the-users-approval-history)

手順に従って、実際に承認履歴を削除してみようと思います。

現在の承認の状態です。
＜受信済み＞
![powerautomateforadmins_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/edabaed9-2c82-6af2-dba8-cde341f3058f.png)

＜履歴＞
![powerautomateforadmins_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/4e91d9a5-de91-70af-ad1f-b6e4fb86a2a4.png)

該当テーブルを探してみます。
テーブル名が日本語になっているので、Learnの記事を英語で確認します。

> 4\. 承認 テーブルを見つけて、垂直省略記号 (⋮) を選択します。
> 4\. Find the Approvals table, and select the vertical ellipsis (⋮).

「Approvals」テーブルを見つければよさそうだと思い、「Approvals」で検索をしてみると、表示名が「承認ステップ」で名前が「msdyn_flow_approvalstep」が引っ掛かりました。
これではないようです。
![powerautomateforadmins_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/0339cd5a-5745-b5b8-f2ea-cfcdacf9431c.png)

というわけで、素直に日本語で「承認」で検索をします。
赤枠で囲んだ「承認」「msdyn_flow_approval」がLearnに書いてあるテーブルでしょうね。
![powerautomateforadmins_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/138aabe0-09b7-8859-e8cc-398198ab6f05.png)


> 5\. 編集 または 新しいタブで編集する を選択します。
「名前」と「作成日」しか表示されなかったので、その他の列として「ステータス」「タイトル」「状態」「所有者」を表示しました。
![powerautomateforadmins_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/7d6d4c4b-29fe-6d78-16b3-0c6085a7afc5.png)

「状態」が「アクティブ」なものが「受信済み」に表示されているもので、「状態」が「非アクティブ」なものが「履歴」に表示されているものと一致しました。


ということで、以下の手順に沿って、「東雲ぱん吉」さんの履歴を削除したいと思います。
> 7\. 所有者 列の見出し、フィルター の順に選択します。
> 8\. データを削除するユーザーの名前を入力し、レコードの削除 を選択します。

「履歴」から消えました。
![powerautomateforadmins_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1382111/df07fc59-4b07-d3fd-5abd-1a083694aa7e.png)


残りは以下のテーブルを順番に該当のレコードを削除していきます。

> 9\. 手順 3 で見つけたメイン テーブル リストに戻り、次の各テーブルの手順 4 から 8 を繰り返します。
> 承認依頼
> 承認応答
> 基本的な承認モデル データ
> すべて待機の承認モデル
> すべて待機のアクション承認モデル
> 承認ステップ
> アクション承認モデル


「承認依頼」テーブルから該当レコードを削除したら、「受信済み」から削除されました。


ということで、「フローの承認を削除」アクションが廃止になるということで、承認履歴の削除は、手動で削除しなければいけないということのようです。
（Dataverseコネクタ使ったら、クラウドフローでも削除できそうな気がしますけどね・・・・・

# 結論
ということで、検証が検証にならなかったお話でした。おあとがよろしいようで（よろしくない