前書き
Power Apps や Power Automate でよく使われる SharePoint のリスト。
様々なデータ型が指定できてとても便利です。
その列の中には、「はい・いいえ」型、いわゆる Boolean 型 の列も当然作れます。
こういった Boolean 型では、値が true or false でデータを所持していますので
Power Apps での Filter 関数や、LookUp 関数などでは、 true or false で
判定すると思います。
ところが、いざ Power Apps での Filter 関数や、LookUp 関数、Power Automate の Odata クエリで true or false を指定してみても、以下の通り、必ず false の条件の結果しか取得できません。
Power Apps
Filter('List logicflow',And(NativeTrue=Toggle1_1.Checked,NativeFalse=Toggle1.Checked))
Power Automate
NativeTrue eq true and NativeFalse eq true
対処法
後述しますが、動き的に SharePoint 側の問題な気がするので、一旦暫定的な対処方法を記載しておきますと、true と false は 1 と 0 と表現されることがあります。
その為、Filter 式に true と false を用いず、 1 と 0 を用いると解決します。
Power Apps
Filter(
'List logicflow',
And(
NativeTrue=If(
Toggle1_1.Checked,
1,
0
),
NativeFalse=If(
Toggle1.Checked,
1,
0
)
)
)
警告表記
このように、「型の互換性がないため比較できません」と表示されていますが、実際は比較処理は実行されていますので、無視して頂いて大丈夫です。
Power Automate
NativeTrue eq 1 and NativeFalse eq 1
根本原因?
SharePoint 側の問題なのかなと思いまして、Microsoft Graph Explorer で試してみましたら、全く同じ事象が発生します。
True / False での Filter クエリ
1 / 0 での Filter クエリ
ですので、一連の Power Apps や Power Automate 上で SharePoint の はい/いいえ 列が true と false で判定できないのは、SharePoint コネクタで参照している API 側に原因があるように思います。
まとめ
事象については報告済みで、事象再現も確認して頂いています。
結構昔にあった事象らしいのですが、なぜ今再現してるのか調査しているとのことです。
ただ、まぁいくつかのサービスが関連しあっているところだと思うので早期改善は厳しい気もしますので、一旦はこの暫定版で乗り切りましょう😃
補足
Power Automate は 1 or 0 で判定するものだったってお話しをSNS上で頂戴しましたが、このFilter式を実現しているものが、OData 仕様に基づくものです。
OData 言語の Boolean 形式の取り扱いについては、OData Document v4.01のこちらのページに記載されており、true / false を明示的に利用するよう明文化されています。
ですので、現状 1 と 0 で判定できていることは実はよろしくないですよねというお話ですね😃









