SharePointとBoxを双方向で同期する方法|ファイル更新はどこまで反映できるか実機検証【Power Automate】
はじめに
この記事では、Power Automate で SharePoint と Box を双方向に同期し、既存ファイルの「更新」まで反映できるのかを、実際にフローを組んで検証した結果を解説します。
前回の記事では、Box と SharePoint の間で「新しく追加されたファイル」を自動コピーするフローを作りました。ただ、あのフローは新規ファイルにしか反応せず、既存ファイルの中身を編集しても同期されません。
先に検証結果の結論を言うと、双方向同期は組めますが「非対称」です。更新が完全に反映されるのは SharePoint→Box 方向だけで、Box→SharePoint 方向は新規ファイル専用。そして面白いことに、この非対称性のおかげで、双方向に動かしても無限ループは起きません(実測済み)。順に見ていきましょう。
結論:双方向同期はできる。ただし「更新」は片方向だけ
今回の検証で確定した対応関係は次の通りです。
| 同期の方向 | 新規ファイルの追加 | 既存ファイルの更新 |
|---|---|---|
| SharePoint → Box | ○ 反映される | ○ 反映される(新バージョンとして保存) |
| Box → SharePoint | ○ 反映される | × エラーになる(反映されない) |
「新規ファイルの追加」の同期フロー(この記事の土台)をまだ作っていない方は、先に前回の記事からどうぞ。本記事はそのフローに手を加えていきます。

【手順】SharePoint→Boxの更新同期フロー
まずは成立する方、SharePoint 側の更新を Box に反映するフローです。前回作った「SharePoint→Boxバックアップ」フローからの変更点は、たった1つ。トリガーを差し替えるだけです。
① ファイルが作成または変更されたとき(SharePoint・プロパティのみ) → ② ファイル コンテンツの取得(SharePoint) → ③ ファイルの作成(Box)
トリガーを SharePoint の「ファイルが作成されたとき」から「ファイルが作成または変更されたとき(プロパティのみ)」に変更します。サイトのアドレスとライブラリの指定は前回と同じです。これで、新規追加だけでなく既存ファイルの上書き保存でもフローが動くようになります。

②「ファイル コンテンツの取得」と ③ Box「ファイルの作成」は前回のままで OK です(ファイル名に「拡張子付きのファイル名」、コンテンツに「本文」を指定する点も同じ)。保存してフローをオンにします。

実際にファイルを更新して検証
SharePoint のドキュメントライブラリで、既存のテキストファイルを「置き換える」で上書きアップロードしてみます。

1〜2分後、フローが発火して成功しました。実行詳細を見ると、3ステップすべて成功しています。


そして Box 側を見ると——同名ファイルがエラーにならず、「V2」バッジ付きの新バージョンとして保存されていました。ファイルサイズも更新後の内容に変わっています。

補足:「ファイルを更新します」アクションは不要
Box コネクタには「ファイルを更新します」という専用アクション(ファイル ID とファイル コンテンツを指定して中身を差し替える)もあります。ただし上記の通り「ファイルの作成」だけでバージョン更新されるため、今回の構成ではこのアクションを使う必要はありませんでした。


変更点はトリガー1つだけ。Box のバージョン管理が優秀で、拍子抜けするほどあっさり動きました!
Box→SharePoint方向はなぜ更新できないのか
「じゃあ逆方向も同じようにできるのでは?」と思いますよね。実は途中までは行けます。Box コネクタにも「ファイルが変更されたとき」という更新トリガーがちゃんと存在するのです。

そこで、Box→SharePoint のフローをこの更新トリガーで組み、オンにしてみます。

Box 側でファイルを更新(同名で再アップロード)すると、トリガーは正しく発火します。

ところが結果は失敗。Box のトリガーとコンテンツ取得は成功しているのに、最後の SharePoint「ファイルの作成」だけが BadRequest エラーになります。

一方、SharePoint 側に同名ファイルが存在しない場合は問題なく成功します。つまり Box→SharePoint 方向は「新規ファイルの追加」専用ということです。


どうしても Box→SharePoint の更新反映が必要な場合は、SharePoint の「ファイルの更新」系アクションを使い、既存ファイルの ID を検索して特定する、といった追加の作り込みが必要になります(本記事では未検証です)。ただ、次のセクションで説明する通り、安易に対応させない方がよい理由があります。
双方向で同時に動かすと無限ループする?【実測】
双方向同期で心配するのが無限ループです。「SP→Box がコピー → それを Box→SP が検知してコピー → それをまた SP→Box が……」という永久機関になりそうですよね。実際に両方向のフローを同じフォルダーの組み合わせで同時にオンにし、テストファイルを1つ投入して確かめました。
結果は——1往復で自然に停止しました。まず SP→Box 方向が発火し、Box へのコピーに成功します。

続いて Box 側のコピーを検知した Box→SP 方向が発火しますが、SharePoint には元ファイルが既にあるため、先ほどの「既にあります」エラーで失敗。ここで連鎖が切れます。

実験後のフォルダーを確認しても、ファイルの増殖はゼロ。SharePoint 側の「上書きできない」制約が、意図せず無限ループのブレーキとして機能しているわけです。

おすすめの運用構成
検証結果を踏まえると、現実的な運用は次の形になります。
ファイルの編集は SharePoint 側で行い、本記事の「作成または変更されたとき」トリガーの SP→Box フローだけをオンにする構成です。新規も更新もすべて Box に反映され、ループの心配もありません。Box を共有・受け渡し用の窓口にしたい場合は、前回記事の Box→SP(新規のみ)フローを追加で組み合わせても安全です。
運用にあたっては、次の2点も頭に入れておきましょう。
- 1回の更新で2回実行されることがある:SharePoint が更新を「プロパティ変更」と「バージョン追加」の2イベントとして通知する場合があります。Box側はバージョンが1つ余分に積まれるだけで実害はありませんが、実行回数は消費します。
- 反映まで1〜2分かかる:トリガーはポーリング型のため即時ではありません。リアルタイム同期が必要な用途には向きません。
あわせて読みたい
本記事の土台になっている基本編と、Box・SharePoint の関連記事です。
まとめ
- SP→Box の更新同期は成立:トリガーを「作成または変更されたとき」に差し替えるだけ。Box が同名ファイルを新バージョン(V2, V3…)として自動保存してくれる
- Box→SP は新規のみ:更新トリガーは存在するが、SharePoint「ファイルの作成」が既存ファイルに上書きできず(Overwrite=はい でも BadRequest)、更新は反映できない
- 無限ループは起きない(実測1往復で停止):ただし Box→SP 側を更新対応に改造するとループし得るので、その場合はトリガー条件での対策が必須
「マスターは SharePoint、Box は自動バックアップ」の構成なら、フロー1本で新規も更新も安全に同期できます。前回の基本フローに一手間加えるだけなので、ぜひ試してみてください。





