LoginSignup
0
2

More than 1 year has passed since last update.

Power Automate: SharePoint の FilterQuery でユーザー(オブジェクトとか)をフィルターする方法

Last updated at Posted at 2021-10-01

目的

SharePoint 系で取得データを減らす場合に FilterQuery を利用するかと思います。
簡単なもの(String/Intger/Boolean)であれば、特に困ることもないのですが、ユーザーを元にしようとするとちょっと手古摺ったので記録と共有を

今回の肝

  • オブジェクトは、'/' で指定可能っぽい?
こんな感じ
OData__x30e6__x30fc__x30b6__x30fc_/EMail eq 'uka2san@gmail.com'

概要

やることは単純です。

  1. 列名を取得する(Editor/Authorならここは不要)
  2. FilterQuery を定義

列名を取得する(Editor/Authorならここは不要)

一度 Action を実行してから結果から取得する

例えば、以下の場合であれば

列名
OData__x30e6__x30fc__x30b6__x30fc_

image.png
Editor/Author は 上記のように Default で同一名称なのでそのまま利用すればOK

リストでフィルターをかけて、URL から名称を取得する

知りたい列をフィルターした際に用意される URL Parameter から列名を取得
image.png

URL_Parameterのみ
FilterField1=_x30e6__x30fc__x30b6__x30fc_

取得した OData名に、"OData_" を連結して完成

列名
OData__x30e6__x30fc__x30b6__x30fc_

FilterQuery を定義

こんな感じ
OData__x30e6__x30fc__x30b6__x30fc_/EMail eq 'uka2san@gmail.com'

image.png

嵌りポイント

嵌りポイント 補足
全角半角 EMail Email この違いだけでエラーになります。
'/' と '#' Editor/ID Editor#ID JSON取得すると '#' もあるので・・ついつい
OData_付加時の'_' OData__**** OData_**** '_'も追加するのかよ!と。一度実行してJSONで確認がよさげ
先頭の '$' $filter filter 一度これ落として動かないと判断・・
Rest APIの場合
プロパティ名 定義 JSON InternalName を取得する必要あり。

InternalName

JSON の名称は微妙に違うので信用しないように。

  1. ここにデフォルトの定義
  2. Rest API での取得方法 ここ
    API https://{site_url}/_api/web/lists(guid'{list_guid}')/Fields
    _api/web/GetFolderByServerRelativeUrl('/sites/testforflow/Shared Documents')
  3. ここ が当初役立ちました。
    image.png

あとがき

Automate で実行すると重いかなって時は、Rest APIを直接叩いて確認してから使いましょう。
で、うまくいったら、Filter だけを FilterQuery で使用する感じです。

Parameter 概略
filter フィルター:FilterQuery が書けるんでここで試してからがいいかと
select 取得対象を絞る
Expand そのままだと Editor/EMail とか取れないので、これを使う
今回のActionでのRestの例
_api/web/lists/getbytitle('FirstList')/items?$select=OData__x30e6__x30fc__x30b6__x30fc_/ID,OData__x30e6__x30fc__x30b6__x30fc_/EMail&$Expand=OData__x30e6__x30fc__x30b6__x30fc_/ID&$filter=(OData__x30e6__x30fc__x30b6__x30fc_/EMail eq 'uka2san@gmail.com')

image.png

Keyword

How to Get Items with Filter Query by user

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2