Power Automate

Power Automate から SharePoint リストアイテムを取得して件数確認

  • 2020.06.29
  • 株式会社イルミネート・ジャパン

先日いただいた質問からのご紹介です。

やりたいこと

SharePoint リストから条件に一致するアイテムの件数を確認したい。
条件: 日付型の列の値と同じ月の件数を知りたい

設定

条件に一致する SharePoint のリストアイテム (複数) を取得するため、フロー内に [複数の項目の取得] アクションを利用します。

アクションを追加後、サイトのアドレスやリスト名を指定して、

フィルター条件は [フィルタークエリ] に OData フィルタークエリを用いて記述します。SharePoint でのコーディングや REST API の操作に慣れた方にはおなじみかと思いますが、そうではない方には最初は ???? となるかもしれません。

[フィルタークエリ]
図の内容ですが、date は条件判断に利用する SharePoint 列名です。列名は内部名で指定します。 ge が 「より大きいまたは等しい」 となり、startOfMonth 関数を利用して日付列の値の月初めの日付と比較しています。
もし今日の日付をもとに同じ月の値を取得したいなら、startOfMonth(utcNow()) でもいいと思います。図ではトリガーで取得した date 列の値を利用しています。

[上から順に取得]
既定では取得されるデータの上限は 100 件なので、リスト内のアイテム数に応じて [上から順に取得] を指定します。空白だと既定値の 100 となり、これは REST API の $top に相当し SharePoint で一度で取得できる上限である 5000 まで設定できます (これ以上アイテム数がある場合は Pagination を利用して複数回に分けて取得するなど工夫が必要) 。
 

参考:比較演算子

他にも、次のような演算子が利用できます。

lt より小さい
le 未満または等しい
gt より大きい
ge より大きいまたは等しい
eq 等しい
ne 等しくない
startswith からはじまる (文字列) ※ startswith (列名, ‘文字列’)
substringof を含む (文字列) ※ substringof (‘文字列’, 列名)

例えば date 列に入力された日付と同じ月である かつ Category が A に等しい、場合はこんな感じです。

演算子など参考はこちらを
https://docs.microsoft.com/ja-jp/sharepoint/dev/business-apps/power-automate/guidance/working-with-get-items-and-get-files#filter-queries

つぎに、件数を取得するために、length 関数を利用し複数の項目の取得アクションの value を引数とします。
結果の件数をなんらかの列に書き込みたい場合は項目の更新アクションでよいと思いますが、図では変数に値をいれています。

以上、リストアイテム取得とその件数取得でした。

  

Power Platform 関連コース開催中!

お問い合わせ

イルミネート・ジャパンが提供するトレーニングやサービスに関するご相談など、
お気軽にご連絡ください。

担当者に相談する