こんにちは、あおいです。
さて、Power Automateでフローを作成する時、Dataverseの[行を一覧にする]アクションを利用することがあると思います。詳細オプションの中には[行のフィルター]が用意されておりアイテムを絞り込むことができます。
基本的なフィルタークエリ構文は[列名 演算子 値]のような以下の形式です。
しかし、選択肢列や参照列のフィルタークエリの書き方がやや複雑です。私はかなり苦戦しました(泣)
そこで、今回はDataverseの列の各データ型に対するフィルタークエリの書き方を紹介したいと思います。
フィルタークエリの演算子についてはこちらのMicrosoftの公式ドキュメントを参考にしてみてください。
標準フィルタ演算子|Microsoft Docs
SharePointのフィルタークエリの書き方についてはこちらの記事を参考にしてみてください。
こちらの記事は演算子についても非常に分かりやすく説明されています。
【Power Automate】SharePoint フィルタークエリの書き方講座 ー Qiita
本アプリではプレミアムコネクタを使用するので、Power Automateの有料ライセンスが必要です。
まずはDataverseで[顧客]テーブルと[金融商品]テーブルを作成します。
[レコードの追加]から各テーブルに適当なデータを追加していきます。
それでは列の各データ型に対するフィルタークエリの書き方を説明していきます。
テキスト型
そのままテキストを入力して、シングルクォーテーションで囲むだけです。
例:name列の値が[ねこ]または[うさぎ]の行をフィルター
整数型
テキスト型の列と同様に、そのまま数値を入力しますがシングルクォーテーションで囲みません。
ちなみに、並び替え順で[列名 asc/desc]を設定して、昇順・降順の状態でフィルターも可能です。
例:age列の値が[25]以上の行を昇順でフィルター
はい/いいえ型
はい/いいえ型の列は、プログラミングでお馴染みのBoolean型のTrue/Falseに該当します。
直接true/falseを入力する、あるいは式タブからtrue/falseを選択します。
例:investment_experience列の値が[はい]の行をフィルター
選択肢型
選択肢型の列は、テキスト型や整数型のようにそのまま値を入力しても実行エラーになります。
以下の手順で操作をします。
① まず、一旦フィルタークエリは何も入力しないでフロー実行する。
②[未加工出力の表示]を選択して、取得した値の中身を確認する。
③ フィルター対象の選択肢型の列名を探す。今回の場合は[cr558_years_of_experience]
④ cr558_years_of_experienceに表示されている数値[908800000]を入力する。
例:years_of_experience列の選択肢が[1年未満]の行をフィルター
参照型
選択肢型の列と同様の手順で操作します。
① フロー実行で[未加工出力の表示]を選択して、取得した値の中身を確認する。
② フィルター対象の参照型の列名を探す。今回の場合は[_cr558_financial_products_of_interest_value]
③ _cr558_financial_products_of_interest_valueに表示されているGUIDの一意識別子を入力する。
例:financial_products_of_interest列の参照値が[株式]の行をフィルター
null値
null値を含む列をフィルターしたい場合は、直接nullを入力する、あるいは式タブからtrue/falseを選択します。
例:cr558_years_of_experience列の値がnull以外の行をフィルター
今回はPower Automateで利用頻度の高いDataverseフィルタークエリの書き方まとめを紹介させていただきました。
もちろん、フィルター方法は論理演算子(eq, ne, gt, lt)や比較演算子(and, or ,not)だけではありません!
グループ化演算子、前方一致startswith・後方一致endswithの検索クエリ等、様々なフィルタークエリを組み合わせることで複雑な絞り込みも可能になります!是非色々試して遊んでみてください!