アプリ開発の調査にかかる
時間を削減したい
内製化支援サービス
アプリを自分たちで
作成できるようになりたい
DX人材育成プログラム
プロに開発を依頼したい
アプリ開発導入支援サービス
機能拡張サービス
X-SP Feature
デザイン拡張サービス
X-SP Design
モダン化から運用管理までサポート
構築支援サービス
Power Automateを用いて、SharePointドキュメントライブラリ上のファイルをフィルター(検索)したい場合があると思います。
上記を実装する場合は、Power Automateの「ファイルの取得(プロパティのみ)」アクションのフィルタークエリを使用します。
しかし、フィルタークエリに”{Name}”や”{FilenameWithExtension}”を用いることはできません。
そこで今回は、小ネタとして「ドキュメントライブラリ上のファイルをフィルターする方法」についてお伝えします。
Power Automateを用いて開発を行っている方にご覧いただきたい内容です。
最初に考えた方法(NGな方法)
今回は,SharePointドキュメントライブラリ(TestDocument)に「test.docx」というファイルが保存されています。

Power Automateを用いて上記ファイルを検索することが今回の目的です。
まずは、Power Automateのファイルの取得(プロパティのみ)アクションを用いてファイル一覧を出力しました。
出力結果は以下です。 (必要部分だけ抜き出して表示しています。)
"value": [
{
"{Name}": "test",
"{FilenameWithExtension}": "test.docx",
"{Path}": "TestDocument/",
"{FullPath}": "TestDocument/test.docx",
}
]Power Automateをある程度触っている方ですと、
この出力結果から「{Name}や{FilenameWithExtension}」でフィルタークエリを記載すればよい」と思うのではないでしょうか。
私も同様のことを考えまして、以下のようなフィルタークエリを設定してみました。
{FilenameWithExtension} eq 'test.docx'しかし、結果としてはエラーが発生してしまいました。。。
({Name}を用いてフィルタークエリを記載した場合も同様の結果となりました。)

上記結果からも分かるように、フィルタークエリに{Name}や{FilenameWithExtension}を用いることはできません。
対策
それではどのようにフィルタークエリを記載すればよいかというと、FileLeafRefを用います。
具体的なフィルタークエリとしては以下です。
FileLeafRef eq 'test.docx'こちらで正常に動作するようです。
(ちなみにFileLeafRefに関する情報って公式で出てるんですかね、、、
私は公式情報では見つけることができずに、コミュニティ内で発見しました。もし知ってる方いらっしゃれば教えてください!)

補足
補足ですが、FileLeafRef含め以下プロパティがありますので、必要に応じて使用してください。
内部名 | 内容 | 例 |
|---|---|---|
FileLeafRef | ファイル名 | test.docx |
FileRef | ファイルパス | /sites/SampleSite/TestDocument/test.docx |
File_x0020_Type | 拡張子 | docx |
おわりに
今回は、小ネタとしてドキュメントライブラリ上に保存されたファイル名にてフィルターする方法についてお伝えしました。
意外にハマるポイントだと思いますので、ぜひ参考にしていただけますと幸いです。
最後まで読んでいただき、ありがとうございました!
【こちらも合わせて読みたい】
小刀稱 知哉ことね ともや
得意領域
Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!
保有資格
こんにちは。アーティサン株式会社の小刀稱(ことね)です。