13
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「削除されたフローを管理者として復元する」アクションを使ってみた

Last updated at Posted at 2024-12-21

※ この記事は、Microsoft Power Automate Advent Calendar 2024 12月6日 担当分の記事です。

「削除されたフローを管理者として復元する」アクション

Power Automate管理コネクタに「削除されたフローを管理者として復元する」アクションがあります。
誤って削除したフローを復元するのに便利です。
今まで、PowerShellで復元したりしていたのですが、クラウドフローでできるならやってみようということで検証してみました。

といっても、復元する方法は、ちゃんと公式ドキュメントに記載があります。
Power Automate で削除されたフローを復元する - Power Automate | Microsoft Learn

ということで、公式ドキュメントを見ながら、進めていきます。

「削除されたフローを管理者として復元する」アクションに指定するのは、「環境」と「Flow」となっています。
どちらも選択肢になっていますが、「Flow」の方に削除したフローが選択肢に出るわけもないですね。。。

restoreflow01.png

ドキュメントを見ると、「管理者としてフローの一覧を取得 (V2)」アクションを使えば、削除されたフローも一覧として取得できるようです。
「論理的に削除されたフローを含める」オプションを「はい」に設定すればよいようです。

restoreflow02.png

「管理者としてフローの一覧を取得 (V2)」アクション

ということで、さっそく、削除されたフローが一覧として取得できるかから試してみます。

・・・ん?出力にさっき削除したはずのフローが出ていない。
まさかとは思うが、「はい」と「いいえ」が逆とか?と思い、「論理的に削除されたフローを含める」オプションを「はい」にしたり、「いいえ」にしたり、何も設定しなかったりと、テストを繰り返します。
どの設定にしても、取得したフローの数が一緒で、削除したはずのフローの情報は出力されません。。。





またですか・・・・・
(なんのことかお分かりにならない方は、管理者用 Power Automate 管理コネクタの「フローの承認を削除する」アクションを使ってみたをご覧ください。)

ひとまず、PowerShellで削除したフローが取得できるか確認してみようということで、以下でフローの一覧を取得します。

Get-AdminFlow -EnvironmentName <環境ID>-IncludeDeleted $true

あるよ。削除したフローちゃんと出てくるよ。ねーさん。
restoreflow03.png

問い合わせへ(再)

「分からないなら聞いちゃえばいいじゃない」ということで、問い合わせをする(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"であった場合、クラウドフローを復元するようにアクションを設定していきます。

restoreflow04.png

<フローの全体像>
restoreflow05.png

環境の中で削除されたクラウドフローを復元することができました。
復元されたクラウドフローは、無効状態で復元されます。
restoreflow06.png

復元できるクラウドフローは、「削除後 21 日以内」のものに限られますので、その点はご注意ください。

また、クラウドフローの復元は、Power Platform管理者の方しかできない点にも注意が必要です。
Power Platform管理者権限がないユーザーで実行した結果、以下のエラーが発生しました。
restoreflow07.png

Power AutomateのCopilotが解説してくれた内容
restoreflow08.png

さいごに

公式ドキュメント「Power Automate で削除されたフローを復元する - Power Automate | Microsoft Learn」に記載されているとおり、「管理者としてフローの一覧を取得 (V2)」アクション と 「削除されたフローを管理者として復元する」アクションを組み合わせることで、誤って削除したクラウドフローを復元することが可能です。

PowerShellでも、アクションを利用する場合においても、クラウドフローを復元するには、フローIDが必要になります。
ユーザーから「誤ってクラウドフロー削除したから、復元して欲しい」といわれても、復元するには、フローIDの確認から行わなければ実施する必要があるわけです。
しかし、削除したクラウドフローのフローIDなんて覚えているわけもないわけですよね。
「管理者としてフローの一覧を取得 (V2)」アクションを利用すれば、環境内で削除されたフローが検出でき、かつ、フローIDも併せて取得できますので、該当のクラウドフローを見つけ出すことが簡単にできます。

今回は、環境内で削除されたクラウドフローをすべて復元するように作成しましたが、「管理者としてフローの一覧を取得 (V2)」アクションでは、"creator"の"userId"も取得できるため、Office 365 ユーザーコネクタを組み合わせることで、環境内の特定のユーザーが削除したクラウドフローだけを復元することも可能です。

Power Platform管理者が、クラウドフローの復元依頼があった際に、活用できるクラウドフローが作成できるのではないでしょうか。

それでは、これからも、Power Automate Liefを楽しんでください。

13
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?