Power Automateで使用するODataフィルタークエリの書き方(Dataverse for Teams)

こんにちは!フロッグポッドの鈴木です。
今回はPower AutomteのDataverse「行を一覧にする」アクションに使用する「行のフィルター」について記事を書こうと思います。
*今回の記事の内容はTeams版のPower AutomteとDataverse for Teamsを利用しています。

Power Automate内でDataverseの情報を取得したいときにDataverseコネクタの「行を一覧にする」アクションを利用すると思います。
そのアクション内の「行のフィルター」に絞り込み条件を記述すると特定のレコードのみ取得することができます。
*参考にした公式のドキュメントは以下のリンクです
Web API を使用したデータのクエリ (Microsoft Dataverse) - Power Apps | Microsoft Learn
今回使用するテーブルは下記のテーブルです。

フィルタークエリの書き方は
【列の論理名 フィルタ演算子 値】で書きます。
なのでまず絞り込みをしたい列の論理名を確認します。
Dataverse for Teamsの対象列の「・・・」をクリック、その後「編集」をクリックしてください。


右側に「列の編集」が表示されると思いますので、"高度なオプション"をクリックすると
論理名が表示されるのでコピーしておきましょう。
これでName列の論理名がわかりました、同様の方法で必要な列の論理名を確認してください

これで論理名がわかったので、あとはフィルター式を書いていくだけです!

比較演算子
eq:等しい
【例】名前が田中太郎のレコードを取得する
crff9_name eq '田中太郎'

ne:等しくない
【例】名前が鈴木次郎以外のレコードを取得する
crff9_name ne '鈴木次郎'

gt:より大きい
ge:以上
【例】従業員番号が2より大きいレコードを取得する
crff9_employee_no gt 2

lt:より小さい
le:以下
【例】従業員番号が4以下のレコードを取得する
crff9_employee_no le 4

論理演算子
and:論理積
【例】名前が鈴木次郎かつ従業員番号が5以下のレコードを取得する
crff9_name eq '鈴木次郎' and crff9_employee_no le 5

or:論理和
【例】名前が佐藤三郎または従業員番号が4以上のレコードを取得する
crff9_name eq '佐藤三郎' or crff9_employee_no ge 4

not:論理否定
【例】名前に"佐藤"の文字が含まれていないレコードを取得する
not contains(crff9_name ,'佐藤')

グループ化演算子
():優先順位によるグループ化
演算子には優先順位があり、論理演算子は比較演算子のあとに評価される、andとorだとandが先に評価される等、処理の順番が決まっているため
優先的に評価してほしい場合は()で囲むようにしましょう。
標準クエリ機能
contains:〇〇を含む
【例】名前に"田中"の文字が含まれているレコードを取得する
contains(crff9_name ,'田中')

endswith:〇〇で終わる
【例】名前が郎で終わるレコードを取得する
endswith(crff9_name ,'郎')

startswith:〇〇から始まる
【例】名前が山で始まるレコードを取得する
startswith(crff9_name ,'山')

今回はPower Automateのフィルタークエリの書き方についてご紹介させていただきました!
複数のフィルタークエリを組み合わせたり変数を使ってみたりすることで、さまざまなことにも応用できると思います!
皆さんもぜひ試してみてください。
最後までお読みいただき、ありがとうございます。
以上、フロッグポッドの鈴木でしたー!
フォローしませんか?
お気軽にご依頼・ご相談ください


