🧠 概要:
概要
この記事では、Power Automateを使ってBOXファイルを更新する方法を詳しく解説しています。著者は、フォルダ階層の変更によるファイル更新の問題を「ファイルID」を指定する方法に切り替えることで解決しました。
要約の箇条書き
- 背景: データをSharePointのExcelに転記し、BOXの同名ファイルに上書きする自動化を行っていた。
- 課題: フォルダ階層の整理が行われると、指定した「ファイルの作成」アクションが正しく機能しなくなり、BIツールのグラフが更新されなくなる問題。
- 解決策: 「ファイルID」を指定する「ファイルを更新します」アクションに切り替えた。
- 結果: フォルダの場所やファイル名が変わっても、正しく更新できる自動化が実現できた。
- 提案: 「ファイルの作成」を使い続ける場合は、エラーハンドリングを入れることを勧めている。
今回はPower AutomateのBOXのアクションについて書きます。
背景から記載します。
1.課題が発生した背景
当時は「吸い出したデータを、一旦Sharepoint内のExcelに転記し、BOXの同名ファイルにまるっと上書きする」という自動化を多く行っていました。
社内セキュリティの都合で「データを直接BOX上のファイルに書き込む」という自動化が難しかったためです。
そして、BOXファイルへの上書きには「ファイルの作成」アクションを利用していました。
当時よく使っていたフローのイメージ
一続きにしてしまっていますが、実際は、データ転記とBOXファイル上書きはフローを分けていました。(理由はPower Automateの先駆者が「上手くいかなかったから」と言っていたからだったと思います。不安定だったか、エラーハンドリングの観点でしょうか)
もし上の画像のように1つのフローで実現させたい場合は、転記→コンテンツ取得の間に「遅延」を入れてあげた方が安全かもしれません。
2.発生した課題
社内では組織再編等の理由により、不定期でBOXのフォルダ階層の整理が実施されておりました。
そのたびに「ファイルの作成」アクションで指定していたフォルダパスが存在しなくなってしまい、正しく上書きされなくなってしまう事象が発生したのです。
上書きで更新されたいファイルが更新されなくなると、そのファイルに紐づけていたBIツールのグラフが更新されなくなるなどの問題も生じました。
ちなみに、このフローをそのまま動かしておくと、Power Automateはフォルダから作成し直します。ファイルも勝手に作り直してくれます。
そのためフロー自体は失敗しないので、Power Automate上でこの事象をキャッチすることは困難でした。
3.解決するために行ったこと
「そもそもフォルダパス&ファイル名を指定して上書き先ファイルを指定するって、なんかイケてなくない…?」と思い、ちょろっと調べたところ、今回の使い方によりふさわしいBOXアクションを見つけました。
「ファイルを更新します」です。
何で最初からこっち使わなかったんだろう?
フォルダパス&ファイル名の代わりに、「ファイルID」を指定して上書き先ファイルを指定することができます。
「ファイルID」には、ファイルURLに含まれるファイルIDを指定します。
黄色い箇所がファイルIDです
「ファイルの作成」アクションを「ファイルを更新します」アクションに差し替えました。
4.結果、どうだった?
BOX内での場所が変わっても、「ファイルID」は変わりません。勝手に別のフォルダに移動されても、勝手にファイル名が変更されても、正しく更新できるフローにアップデートすることができました。
他の要因に左右されず、安定的に運用できる自動化って最高ですね。
もし「ファイルの作成」アクションを使い続けたい場合は、「このフォルダが存在しなかったら、エラーを通知してフローを停止する」のような例外処理を入れておけたら良さそうです。
Views: 0