SharePoint における「ファイルパス」と「ファイル ID」の違い
Power Automate で SharePoint のドキュメント操作を行う際、
「ファイルパス」と「ファイル ID」 という 2 種類の参照方法が存在します。
この違いを理解していないと、保存エラーや原因不明の不具合に繋がりやすくなります。
※私も保存エラーにハマりました、、、
ファイルパスとは
/sites/example/Shared Documents/Report.xlsx
ファイルパスは、人が認識しやすいファイルの場所を表します。
特徴
- フォルダ構成とファイル名に依存する
- UI 上で直感的に指定しやすい
- フォルダ移動・名前変更で簡単に変わる
よく使われる場面
- ファイルの存在チェック
- 特定フォルダ配下の検索
- 条件分岐用の判定
ファイル ID とは
a92f2a6c-1c24-4cf8-aa7a-5eb599baa652
ファイル ID は、SharePoint 内部で管理されている一意の識別子です。
特徴
- フォルダ移動・名前変更をしても変わらない
- UI 上で見えにくい
- 内部的にはこの ID を使って処理されるケースが多い
よく使われる場面
- ファイルの更新・削除・移動
- Excel Online (Business) との連携
- 後続アクションへの引き渡し
なぜ「パス」と「ID」を混在させると壊れやすいのか
Power Automate の SharePoint アクションでは、
- 入力欄は「パス」を要求しているように見える
- 内部的には「ID」で処理している
というケースが多くあります。
そのため、次のような状態が起こり得ます。
- パス指定でファイルを取得
- 処理途中でファイルを削除・移動
- 内部的に保持していた ID を後続で参照
- 保存時や実行時にエラーが発生する
UI 上は正しく設定されているように見えても、
内部参照が壊れている状態になってしまうのが厄介な点です。
設計時に意識すべきポイント
SharePoint のドキュメント操作を含むフローでは、次の考え方をおすすめします。
-
取得・判定フェーズ
→ パス指定でも可(存在チェック・条件分岐) -
操作フェーズ(更新・削除・移動)
→ ID に統一する -
削除・移動後
→ そのファイルを再参照しない設計にする
Scope(スコープ)を活用して、アクションがエラー終了したことを検知することも忘れずに意識しておく必要があると思います。最初は難しいですが、失敗しながら分かるようになる気がします。
公式ドキュメントとの位置づけ
Microsoft 公式ドキュメントでも、
Power Automate と SharePoint は 内部的に ID ベースで処理される前提で設計されていることが示唆されています。
- Power Automate と SharePoint の統合概要
https://learn.microsoft.com/power-automate/sharepoint-overview
この前提を理解していないと、
「UI 上は正しいのに、なぜか動かない」 という状況に陥りがちです。
少しずつ実装して、こまめに保存とテストをしながら作っていきましょう(自戒)。
