2022年10月7日金曜日

ロックモードのため、ファイルが移動できない問題が解決【PowerAutomate&Sharepoint】

event_note10月 07, 2022

こんにちは。

PowerAutomateを使って、普段の手作業を自動化できないかな?と試みています。

主に、ExcelOnlineとSharepointのトリガーやアクションを使うことが多いのですが、Excelファイルを参照すると、ロックされてしまいファイルの移動ができなくなってしまうという事がおこってしまいました。

この現象の解決方法について説明したいと思います。

現象)ファイルがロックされて別フォルダへ移動できない!

Excelのテーブルを参照し、その後にそのExcelファイルを別フォルダへ移動しようとすると、Excelを参照した時にロックされているためファイルが移動できません。

例えば、以下のような処理を行った時に発生します。

・「表内に存在する行を一覧表示」のアクションを使って

 Documents/General/test/Book11.xlsx のテーブルデータを読み込み

・「ファイルの移動」で別フォルダDocuments/General/sumi/ へ移動


実行した結果、

「ファイル '(移動しようとしたファイルパス)' はロック モードのため、移動できません。」


というエラーが発生してまいます。

原因は、移動しようとしたファイルが「表内に存在する行を一覧表示」で使いっぱなしとみなされてロックされているためだと思われます。



解決策)ファイルのチェックアウトを使う

時間を置けば、ロックが解除されるのですが24時間かかることもあるそうです。そんなにまっていられませんね…。

そこで、以下のようにチェックアウト関連のアクションを入れたところ、ロックが発生せずにファイルを移動することができましたよ!

「ファイルのチェックアウト」←追加!

・「表内に存在する行を一覧表示」のアクションを使ってテーブルデータを読み込み

「ファイルのチェックアウトの破棄」←追加!

・「ファイルの移動」で別フォルダへ移動


実行結果は以下の通りです。

補足 ファイルのチェックアウトについて

チェックアウトをすると、他の人がファイルを編集しないようにできますよ。この状態でファイルを開くのは読み取り専用でファイルを開くような感じですね。

チェックアウトの破棄は、チェックアウトを取り取り消すことで他の人がファイルを編集できるようになります。

終わりに

この方法にたどり着くまでに、Do Untilと待機を使ってロック解除するまで待ってみようかと試したりしましたが、時間がかかりすぎてうまくいきませんでした。

せっかくファイルを移動するフローを作ったのに、使えない…と思ていたので助かりました。

ファイルのチェックアウトは、できるだけフローのはじめで実行した方が確実に邪魔が入らずよいかもしれませんね。