Power AutomateでSharePointリストを扱う際のフィルタや並び替えの方法まとめ

# お詫び

初出時に「SharePointリストから読み込める件数は100件」と書いてしまっていましたが、これはあくまで既定値であり、設定で変更できるものでした。

2019/12/28に修正し、設定で上限を増やす方法についても追記しました。併せてごらんください。

# 前置き

Power Automate（旧Microsoft Flow）やLogic AppsでSharePointリストを扱う際の、アイテム数を制御する方法についてまとめました。

# 0. アクションの設定でしきい値を変更し、取得数を増やす

本記事のメインはフィルタや並び替えなのですが、まず、そもそもの取得数を増やす方法です。

SharePointの「複数の項目を取得」のアクションは、既定値では100件までしかリストの項目を取得しないのですが、この上限を設定で変更することが可能です。

アクション右上の「…」から「設定」を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/00742ac5-6c88-c906-6384-ab7dfcdb7671.png)

「改ページ」をオンにし、しきい値を設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/f76d162c-8061-1d4b-98fa-cfb289d51482.png)


これで、取得数を増やすことができます。

しきい値はアクションとしては10万まで設定できるようですが、実際には下記のようなPower Automateの制限事項やSharePointのAPI制限に左右されると思います（ここは未検証）

[Power Automate における制限と構成](https://docs.microsoft.com/ja-jp/power-automate/limits-and-config)

# 1. SharePointのビュー

SharePointのリストを利用する際、ビューを選択することが出来ます。

![2019-07-14_22h30_36a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/51ea8ce7-3145-d732-c3e9-3bec9404471b.png)

当然といえば当然ですが、Power Automateでデータを扱うためには、以下の条件を満たす必要があります。

* ビューに扱いたいデータの列が含まれている
* 扱いたい行がビューのフィルタで除外されていない

逆に言えば、SharePointのビューであらかじめフィルタをかけていれば、それだけ読み込むデータは少なくなります。

ただ、この時のビューはパブリックビューである必要があります。個人用のビューは利用できません

そのため、Power Automateのためだけにパブリックビューを用意する、というのは現実的ではない事もあるかと思います。その場合はPower Automate側でフィルタをかけたり並び替えをすることになります。

# 2. Power AutomateのSharePointアクション「複数の項目の取得」の【フィルタークエリ】

SharePointアクション「複数の項目の取得」のフィルタークエリを利用する方法です。

![2019-07-14_22h42_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/fe93afd1-5297-07e3-11b9-c24af2673b63.png)

この時、Power Automateのアクションで設定したしきい値は、フィルタ後の値に対して適用されます。

例えば、1000件のリストをフィルタークエリでフィルタした結果が200件で、しきい値が200件であれば、必要なデータはすべて読み込めたことになります。

また、SharePointのビューでざっと絞り込んだ後は、フィルタークエリや並べ替え順、上から順に取得、といった項目を組み合わせると便利です。

フィルタ及び並び替えの具体的な書き方については、別記事にまとめてあるのでそちらもどうぞ。

* [Power Automate（旧Microsoft Flow）でSharePointリストの収集をする際のフィルタや並び替えの書き方](https://qiita.com/tfunakoshi/items/0cbf65c9480c832982cb)

# 3. Power AutomateのSharePointアクション「複数の項目の取得」の【並べ替え順】

フィルタをしたうえで、並べ替えをする事も出来ます。例えば、フィルタークエリでは2019年6月のデータで絞り込み、絞り込んだ結果を社員番号順に並べる、といった使い方が可能です。（SharePointのビューでは日付順になっているものを社員番号順に並べ替えたい、など）

![2019-07-14_22h51_58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/c7af4fda-dbf4-150c-6e42-1715b99f84bc.png)

これもクエリの詳細はこちらをご覧ください。

* [Microsoft Power AutomateでSharePointリストの収集をする際のフィルタや並び替えの書き方](https://qiita.com/tfunakoshi/items/0cbf65c9480c832982cb)

# 4. Power AutomateのSharePointアクション「複数の項目の取得」の【上から順に取得】

【上から順に取得】というと何のことだかわかりにくいのですが、並べ替えをしたうえで、上から何件のアイテムを取得するかを数で指定します。既定値は「すべて」ですが、フィルタした結果がしきい値を超えている場合は最大でもしきい値までとなります。

![2019-07-14_22h55_53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/2b56cd85-9561-4348-171b-c0c6a5679321.png)

これは実際に値を絞り込みたいときはもちろん、テストの際にすべてのアイテムに対して実施すると時間がかかる、という場合にも利用できます。（5件くらいにしておいて分岐の動きまで確認したらしきい値である200件でテストする、など）

# 5. Power Automateのアクション「アレイのフィルター処理」

少なくともSharePointリストの利用時には、ここまでで紹介したフィルタなどが充実しているので、あまり出番はないと思います。SharePointアクション「複数の項目の取得」でのフィルタクエリがうまく動かない場合は試してみてもいいかもしれませんが、SharePointアクションで読み込めるデータがしきい値を超えることはありません。しきい値まで読み込んだ上でのフィルタ処理になります。

![2019-07-14_23h05_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/6e6d3674-9002-cdf9-09b7-c98fed7698d4.png)