このフローの目的
Microsoft365 と オンラインストレージ Box.com を併用していると、Box上にあるExcelブックをPowerAutomateからアクセスして処理したいというケースがあるかと思います。しかし、Excel Online (Business) コネクタは SharePoint か OneDrive for Business(以降ODfBと記載) 上のファイルしか扱うことができません。
そこをなんとかしてみようという工夫です。
フロー全体図
フロー解説
フロー開始時にBoxからファイルコンテンツを取得し、ODfB にファイルを作成しているだけです。あとはOD4B側の一時ファイルをExcel Online (Business) コネクタで処理すればOKです。
- 一時ファイルのファイル名に年月日時分秒を含める
Excelコネクタの制限事項で「Excel ファイルはコネクタを最後に使用してから最大 6 分間更新または削除のためにロックされることがあります。 」というものがあり、最大6分間はファイルを上書きする事ができません。このため、OD4bに作成する一時ファイル名が固定の場合は6分以内にフローを再実行するとエラーが発生する可能性があります。一時ファイルのファイル名に年月日時分秒を含めることで、6分以内にフローを再実行してもエラーにならないようにしています。 - 一時ファイルの削除は別フローで
こちらも「Excel ファイルはコネクタを最後に使用してから最大 6 分間更新または削除のためにロックされることがあります。 」という制限事項への対処です。 今回のフローには一時ファイルの削除処理が含まれていません。このままではOD4Bのフォルダに一時ファイルが増え続けてしまいます。
一時ファイルの削除は、別途削除する専用フローを定期的に実行しています。
今回のフロー内でDo Until ループで6分待って削除を試みるという手段もありますが、API要求を無駄に使ってしまうので別フローでの削除がおすすめです。 (Power Automate クラウドフローには 待機(Wait) がない)
2023/5/8訂正
スケジュールコネクタに待ち時間アクションがありました!こちらを使えば待機することもできそうです。
ファイルを更新する事も可能
上記のフローでは読み込みのみですが、Box上のファイルを更新する事も可能です。
上記フローと同じ手順で一時ファイルを作成し、一時ファイルを更新した後に↓のようにBox側に書き戻すだけです。
ただし、Boxコネクタにはファイルをロックするアクションが用意されていません。無条件に上書きになることをご注意ください。
Boxコネクタ-ファイルの作成アクションはピッカーは使わない
Boxコネクタのファイルの作成アクションを利用する際には、ピッカーでフォルダを選択しないように注意しましょう。
Boxコネクタの制限事項で日本語環境では正常に動作しなくなります。詳しくはこちらにまとめてあります。
qiita.com