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 |
おわりに
今回は、小ネタとしてドキュメントライブラリ上に保存されたファイル名にてフィルターする方法についてお伝えしました。
意外にハマるポイントだと思いますので、ぜひ参考にしていただけますと幸いです。
最後まで読んでいただき、ありがとうございました!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200
こんにちは。アーティサン株式会社の小刀稱(ことね)です。