Power Automate Share Pointのフォルダを削除する方法|全フォルダ削除時のエラー対処も

Power AutomateからSharePointのフォルダを削除する方法をメモ。

スポンサーリンク

やりたいこと

今回はSharePointのドキュメントライブラリにあるフォルダをPower Automateから削除する。
フォルダの中にファイルを入れておく。

フォルダの削除はHTTPリクエストで行う

Power AutomateのSharePoint標準アクションにはフォルダの削除は含まれていない。

そこで、フォルダの削除はGraph API(HTTPリクエスト)経由で行う。

ごみ箱へ移動

まずはゴミ箱に移動する削除。メソッドに「DELETE」を使用し、GetFolderByServerRelativeUrlを呼び出す。
// メソッド
DELETE
// URI
_api/web/GetFolderByServerRelativeUrl('/sites/【サイト名】/【ライブラリ名】/【フォルダ名】')/recycle()
このフローが成功すると、
フォルダがドキュメントライブラリからごみ箱へ移動する。

ちなみにフォルダを復元すると、中のファイルも復元する。

完全削除

続いて完全削除。完全に削除するときは、先ほどのURIから「/recycle()」をなくすだけ。
// メソッド
DELETE
// URI
_api/web/GetFolderByServerRelativeUrl('/sites/【サイト名】/【ライブラリ名】/【フォルダ名】')
このフローが成功すると、
フォルダも中のファイルもゴミ箱へ移動せずに、削除される。

おまけ:「フォルダの一覧」アクションで取得した全フォルダを削除しようとするとエラーが起きる

ドキュメントライブラリに複数フォルダがあり、
これらを「フォルダーの一覧」アクションで取得し、
先ほどの方法でまとめて削除しようとすると、
フローが終了せず、失敗となる。これは「フォルダの一覧」アクションで取得したフォルダの中にはシステムフォルダ「Forms」が含まれるため。
最も単純な解決方法は、システムフォルダの名称が「Forms」や「_catalogs」「_layouts」など決まっているので、アレイのフィルター処理で除去するだけ。
※基本はFormsのみでOK
これで実行すると無事フローは成功し、
フォルダはすべて削除される。

コメント

タイトルとURLをコピーしました