Does your Power Automate flow need to filter only flagged documents using Yes/No (boolean) column and ignore the rest? Did you try all possible combinations in the filter query …column eq true, …column eq ‘true’, …equals(column, ‘true’)… but none of them works? While SharePoint is displaying the values as ‘Yes’ or ‘No’ to the users, and as ‘true’ or ‘false’ on the background, to make a working filter
on Yes/No (boolean) column in Power Automate you have to use numbers, Yes = 1, No = 0. That means you must define the filter in the following format. Before I found this solution I had a lot of flows where the filtering was done after the Get items action. But moving the filter into the Get items action itself instead of using IF condition did simplify the flow, made it much faster and also much easier to debug when needed. If also your flows have conditions like the one below, you too should
consider optimizing them. 2022.03.13 2021.01.21 Power Automateの「複数の項目の取得」アクションでフィルタークエリを設定するとき、ODataフィルタークエリで指定する必要がある。 このODATAクエリってのが意外と情報がないので、使い方をまとめてみた。 ODATAとはODataとはOpen Data Protocolの略で、HTTPを使ってやり取りするときに使うプロトコルのこと。 ODataとはでググるとわかりやすい解説がたくさん出てくるので、興味のある方はぜひ。 フィルターの仕様ODataを使ったフィルターの書き方は、↓の公式が一番詳しいと思われ。 ※わかりやすいかはまた別w 実際にフィルターをかけてみるということで、公式をみるよりやってみた方が早そうなので、サンプルリストとPower Automateを作って実際にやってみる。 今回使用するリストはこんな感じ。 そして、こんなPower
Automateを準備して、順にフィルターをかけていく。 最後のApply to eachは、フィルターがうまく動作しているかを見るためだけのものなので気にせずに。 比較演算子まずは比較演算子から。 等しい:eqリストからNumber列が3のアイテムを持ってきたい場合は、こんな感じ。 すると結果はこんな感じで、Number列が3のやつだけ持ってこれている。 等しくない:ne逆にリストからTitle列がccc以外のアイテムを持ってきたい場合は、こんな感じ。 結果はこんな感じ。4つアイテムが取れてきて、タイトル「ccc」のやつだけフィルターされている。 より大きい:gtNumber列が3より大きいものが欲しいときはこんな感じ。 結果はこんな感じで、2つだけアイテムが取得できる。 より小さい:lt3より小さいものが欲しいときはこんな感じ。 結果は、Number列が1と2のアイテムだけ取得できる。 以上:ge続いてNumber列が3以上のアイテムを取得。 結果はこんな感じで成功! 以下le最後はNumber列が3以下のアイテムを取得。 結果はこんな感じで成功! 論理演算条件が複数ある場合は、論理演算子で結び付けてあげる。 andNumber列が3以上かつTitle列が「ddd」以外のやつだけ欲しい場合は、こんな感じ。 とれたのは「ccc」と「eee」なので成功! orNumber列が4より大きい、またはTitle列が「aaa」のやつだけ欲しい場合は、こんな感じ。 結果はこんな感じで、Numberが5のアイテムと、Titleがaaaのやつが取れているので成功! かっこ()フィルタークエリにはかっこ()も使える。 例えば、(Number列が1または4)かつ(Titleが「aaa」または「ccc」のやつ)みたいな指定はこんな感じになる。 結果はこんな感じで、この条件に当てはまるアイテムは1個だけなので成功! 補足:SharePointリストの列を日本語で作った場合もしSharePointの列を日本語で作ってしまった場合は、Odataクエリに直すには少し工夫が必要。 まずSharePointのリストの設定へとアクセスして 日本語で作った列をクリックする すると、その列のページへと遷移するので、アドレスバーのFieldIDの中身をコピーする。 今回のサンプルリストの「数字」列の値でフィルターをかけたいときは、こんな感じ。 「数字」列が8のやつだけ持ってきているので、結果はこんな感じになる。 関連記事 |