※ この記事は、Microsoft Power Automate Advent Calendar 2024 12月6日 担当分の記事です。
「削除されたフローを管理者として復元する」アクション
Power Automate管理コネクタに「削除されたフローを管理者として復元する」アクションがあります。
誤って削除したフローを復元するのに便利です。
今まで、PowerShellで復元したりしていたのですが、クラウドフローでできるならやってみようということで検証してみました。
といっても、復元する方法は、ちゃんと公式ドキュメントに記載があります。
Power Automate で削除されたフローを復元する - Power Automate | Microsoft Learn
ということで、公式ドキュメントを見ながら、進めていきます。
「削除されたフローを管理者として復元する」アクションに指定するのは、「環境」と「Flow」となっています。
どちらも選択肢になっていますが、「Flow」の方に削除したフローが選択肢に出るわけもないですね。。。
ドキュメントを見ると、「管理者としてフローの一覧を取得 (V2)」アクションを使えば、削除されたフローも一覧として取得できるようです。
「論理的に削除されたフローを含める」オプションを「はい」に設定すればよいようです。
「管理者としてフローの一覧を取得 (V2)」アクション
ということで、さっそく、削除されたフローが一覧として取得できるかから試してみます。
・・・ん?出力にさっき削除したはずのフローが出ていない。
まさかとは思うが、「はい」と「いいえ」が逆とか?と思い、「論理的に削除されたフローを含める」オプションを「はい」にしたり、「いいえ」にしたり、何も設定しなかったりと、テストを繰り返します。
どの設定にしても、取得したフローの数が一緒で、削除したはずのフローの情報は出力されません。。。
・
・
・
・
・
またですか・・・・・
(なんのことかお分かりにならない方は、管理者用 Power Automate 管理コネクタの「フローの承認を削除する」アクションを使ってみたをご覧ください。)
ひとまず、PowerShellで削除したフローが取得できるか確認してみようということで、以下でフローの一覧を取得します。
Get-AdminFlow -EnvironmentName <環境ID>-IncludeDeleted $true
問い合わせへ(再)
「分からないなら聞いちゃえばいいじゃない」ということで、問い合わせをする(SR発行)ことにしました。
・
・
・
・
・
数日後・・・
「改ページ」を有効化しろやボケ と言われました(注意:言われていません)
改ページが無効な場合の挙動
「あっ、改ページかー、たしかに」と思ったのですが、少し疑問がありました。
「削除されたフローを管理者として復元する」アクションは、「環境」を指定して、環境内のクラウドフローの一覧を取得するものです。
A環境だと「13」でしたので、すべて取れていると勘違いしたのです。
改ページ有効にすると「28」でしたので、それは勘違いだったわけですが、改ページ無効だとして、取得できる数が少ないなーと感じました。
たとえば、SharePointコネクタの「複数の項目を取得」アクションですと、改ページを無効化している状態では、最大 100件 までしか取得できません。
100件以上の情報を取得するためには、改ページを有効にするわけです。
そこで、改ページを無効にした状態でいくつかの環境にあるクラウドフローの数をカウントしてみたのが以下でとなります。
No. | 環境 | 改ページ無効 | 改ページ有効 |
---|---|---|---|
01 | A環境 | 13 | 28 |
02 | B環境 | 28 | 70 |
03 | C環境 | 147 | 147 |
04 | D環境 | 8 | 23 |
05 | E環境 | 4 | 4 |
06 | F環境 | 27 | 27 |
「管理者としてフローの一覧を取得 (V2)」アクションをの場合ですと、改ページの設定に関係なく同じ場合もあったり、改ページ有効の場合、ほとんどの環境において、20以上あるわけですが、無効の場合の取得できる数がまちまちです。
100以上ある環境の場合、無効の場合も有効の場合も同じ数が取れています。
改ページ無効でも「147」取得できる場合もあるわけで、無効の場合に取得できる上限はどうなっているのでしょうか?
とりあえず、どんなに数が少ないとしても、「管理者としてフローの一覧を取得 (V2)」アクションを利用する場合は、必ず改ページを有効化した状態で使うことが望ましいようです。
※ このあたりの仕様については、引き続き、問い合わせをしているので、動作が分かりましたら追記したいと思います。
(2024/12/27追記)「管理者としてフローの一覧を取得 (V2)」アクションにすべてのFlow一覧取得できない事象は、製品の既知の問題として扱っているそうです。対応策としては[改ページ]の設定にて改善すること、またはPowerShellにて取得することとのこと。
「削除されたフローを管理者として復元する」アクション
疑問が残ったままですが、「管理者としてフローの一覧を取得 (V2)」アクションで削除したフローが取得できない問題は解決したので、本題の「削除されたフローを管理者として復元する」アクションの動作を確認していきます。
「管理者としてフローの一覧を取得 (V2)」アクションの出力結果から、"state"が"Deleted"となっているのが、削除されたクラウドフローであることが分かりました。
'state'が "Deleted"であった場合、クラウドフローを復元するようにアクションを設定していきます。
環境の中で削除されたクラウドフローを復元することができました。
復元されたクラウドフローは、無効状態で復元されます。
復元できるクラウドフローは、「削除後 21 日以内」のものに限られますので、その点はご注意ください。
また、クラウドフローの復元は、Power Platform管理者の方しかできない点にも注意が必要です。
Power Platform管理者権限がないユーザーで実行した結果、以下のエラーが発生しました。
Power AutomateのCopilotが解説してくれた内容
さいごに
公式ドキュメント「Power Automate で削除されたフローを復元する - Power Automate | Microsoft Learn」に記載されているとおり、「管理者としてフローの一覧を取得 (V2)」アクション と 「削除されたフローを管理者として復元する」アクションを組み合わせることで、誤って削除したクラウドフローを復元することが可能です。
PowerShellでも、アクションを利用する場合においても、クラウドフローを復元するには、フローIDが必要になります。
ユーザーから「誤ってクラウドフロー削除したから、復元して欲しい」といわれても、復元するには、フローIDの確認から行わなければ実施する必要があるわけです。
しかし、削除したクラウドフローのフローIDなんて覚えているわけもないわけですよね。
「管理者としてフローの一覧を取得 (V2)」アクションを利用すれば、環境内で削除されたフローが検出でき、かつ、フローIDも併せて取得できますので、該当のクラウドフローを見つけ出すことが簡単にできます。
今回は、環境内で削除されたクラウドフローをすべて復元するように作成しましたが、「管理者としてフローの一覧を取得 (V2)」アクションでは、"creator"の"userId"も取得できるため、Office 365 ユーザーコネクタを組み合わせることで、環境内の特定のユーザーが削除したクラウドフローだけを復元することも可能です。
Power Platform管理者が、クラウドフローの復元依頼があった際に、活用できるクラウドフローが作成できるのではないでしょうか。
それでは、これからも、Power Automate Liefを楽しんでください。