LoginSignup
0
0

PowerAutomate: Lists/Excel Table での Filter Query: Bool 編

Last updated at Posted at 2023-10-21

背景

Microsoft Lists のアイテム取得時に Filter Query 利用するたびに、
Bool で躓く自分に悲しくなったので、記録しておく

まとめ for Bool

対象 指定 取得結果(json)
Lists 0/1 true/false
Excel 文字列で指定
大文字小文字の揺らぎは無視
ex.) TRUE/FALSE
"True"/"False"

前提

SharePoint REST サービスでサポートされる OData クエリ演算子

で定義されてる演算子が色々あるけれど・・

準備

適当に、利用しそうな型での Lists を用意

image.png

で、これをそのままエクスポートして Query を使って Excel に取り込んだ

image.png

型毎に調べておく

と思ったけれど、骨が折れるので、躓きやすい Bool だけにしておく

Bool 型を、列名"Bool" で検証

表記、内部共に、揺れが起きやすい型

  • はい/いいえ
  • Yes/No
  • 1/0
  • true/false
  • True/False
  • "True"/"False"
  • "TRUE"/"FALSE"
    まぁ、他にも・・

実際の取得例からみた型比較

Lists

取得した JSON 上は、bool

  • true/false

取得結果例

            "Bool": false,

Excel Table

取得した JSON 上は、文字列っぽい

  • "True"/"Talse"

取得結果例

            "Bool": "False",

演算子 eq (Equal)

Lists

概要 記述例 取得結果 所感
0 / 1 で Bool eq 0 "Bool": false 正常
0 / 1 で Bool eq 1 "Bool": true 正常
bool で Bool eq true "Bool": false 異常、反転
bool で Bool eq false "Bool": false 正常に見えるだけ?
文字列で Bool eq 'true' "Bool": false 異常、反転
文字列で Bool eq 'false' "Bool": false 正常に見えるだけ?
文字列で Bool eq 'TRUE' "Bool": false 異常、反転
文字列で Bool eq 'FALSE' "Bool": false 正常に見えるだけ?

Excel Table

概要 記述例 取得結果 所感
0 / 1 で Bool eq 0 (nothing) 取得不可
0 / 1 で Bool eq 1 (nothing) 取得不可
bool で Bool eq true Invalid filter error 演算子認識エラー
bool で Bool eq false Invalid filter error 演算子認識エラー
文字列で Bool eq 'true' "Bool": "True", 正常
文字列で Bool eq 'false' "Bool": "False", 正常
文字列で Bool eq 'TRUE' "Bool": "True", 正常
文字列で Bool eq 'FALSE' "Bool": "False", 正常

|文字列で|Bool ne 'FALSE'|"Bool": "True","Bool": "",|正常|

Invalid filter error

演算子そのものもおかしいといわれる始末

Invalid filter clause: unsupported operation. Only single 'eq', 'ne', 'contains', 'startswith' or 'endswith' is currently supported.
clientRequestId: 363b1d12-3df7-4c89-b9e7-fe9ed52689ff
serviceRequestId: f2dcd170-0ac0-453b-bd6e-7f22754fecd1;985f7e49-e341-4e22-8161-26ab09d7be18;0ecc2835-76df-4a2a-a373-ab9a1601b281

演算子 ne (Not Equal)

Lists

概要 記述例 取得結果 所感
0 / 1 で Bool ne 0 "Bool": true, 正常
0 / 1 で Bool ne 1 "Bool": false, 正常
bool で Bool ne true "Bool": true, 異常、一致
bool で Bool ne false "Bool": true, 正常に見えるだけ?
文字列で Bool ne 'true' "Bool": true, 異常、一致
文字列で Bool ne 'false' "Bool": true, 正常に見えるだけ?
文字列で Bool ne 'TRUE' "Bool": true, 異常、反転
文字列で Bool ne 'FALSE' "Bool": true, 正常に見えるだけ?

Excel Table

概要 記述例 取得結果 所感
0 / 1 で Bool ne 0 (all rows) 全取得。合っているともいえるが、フィルターの価値無し
0 / 1 で Bool ne 1 (all rows) 全取得。合っているともいえるが、フィルターの価値無し
bool で Bool ne true Invalid filter error 演算子認識エラー
bool で Bool ne false Invalid filter error 演算子認識エラー
文字列で Bool ne 'true' "Bool": "False",
"Bool": "",
正常
文字列で Bool ne 'false' "Bool": "True",
"Bool": "",
正常
文字列で Bool ne 'TRUE' "Bool": "False",
"Bool": "",
正常
文字列で Bool ne 'FALSE' "Bool": "True",
"Bool": "",
正常
文字列で Bool ne 'tRue' "Bool": "False",
"Bool": "",
正常。大文字小文字は無視してくれる :laughing:

あとがき

下手にやったことがあると、Lists と Excel の間で混乱するので、統一するか上手く許容してくれるとありがたいが・・難しそうかなぁ

0
0
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
0