Power Automate内で使用したExcelファイルを消そうとしたとき、エラーが発生したので対処方法をメモ。
エラー「~が共有するためにロックしています。」
例えばこんな感じでテーブルを持つExcelファイルがあって(中身は適当)、
これをフロー内で使用(参照)して、アクション「ファイルの削除」で消そうとすると、
こんな感じでエラーが発生する。
こちらの記事にあるようなUIで、
Power Appsの添付コントロールからドキュメントライブラリにファイルをアップする|画像コントロールは不要
Power AppsからSharePoint Online(以降SPO)のドキュメントライブラリにファイルをアップロードする方法をメモ。 事前準備 まずはSPOにファイルをアップロードするドキュメントライブラリを作って、 何でもよいのでSP...
- Power AppsからExcelファイルアップロード
- その中のテーブルを読み込んで何らかの処理を実行
- フローの最後でそのExcelを消したい
みたいなときにこのエラーが解消できないとちょっと困る。。
フロー内でExcelのテーブルを開いた場合6分間ファイルがロックされる。
で、解決方法を探しているとこんな記事を発見。
Override file lock sharepoint for deletion
So, I'm create a temporary file in sharepoint, to extract the rows and put them in a sharepoint list. on new item in lis...
こちらの記事によると、フロー内でExcelのテーブルを使うとそのExcelファイルは6分間ロックされるので、そのファイルを消したい場合は6分後に削除を実行する必要があるとのこと。
6分間削除を待つフローを作ってみた
ということで6分後にExcelファイルを削除するフローを作ってみた。
まずはDo untilアクションを用意して[ファイルの削除]アクションと[待ち時間]アクションを追加、Do Until条件の左側をこんな感じで設定して、
outputs('「ファイルの削除」アクション名')['statusCode']
[次の値に等しい]で200を入れる。
そして[待ち時間]アクションを6分間に設定する。
※約6分のロックとのことなので、2分とか3分とかにすると削除に失敗した場合の再実行が早いかもしれないけど、ひとまず6分で作成。
※約6分のロックとのことなので、2分とか3分とかにすると削除に失敗した場合の再実行が早いかもしれないけど、ひとまず6分で作成。
そして[待ち時間]アクションの[実行条件の構成]をクリックして、
「に失敗しました」を選択して「完了」を押して完成!
動作確認
フローを実行して「ファイルの作成」と「テーブルの取得」アクションが成功していることを確認。
きちんとドキュメントライブラリにExcelファイルができていることも確認。
そしたら約6分後にフローが成功!
中を見ると初回はファイルの削除に失敗していて、
6分後に実行された2回目のファイル削除は無事成功している!
もちろんファイルの削除も無事成功!
ということでフロー内でテーブルを参照したExcelをそのフロー内で削除したい場合は6分間待つ必要があるということがわかった。
コメント