Power Automate から SharePoint リストアイテムを取得して件数確認
先日いただいた質問からのご紹介です。
やりたいこと
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 に等しい、場合はこんな感じです。
つぎに、件数を取得するために、length 関数を利用し複数の項目の取得アクションの value を引数とします。
結果の件数をなんらかの列に書き込みたい場合は項目の更新アクションでよいと思いますが、図では変数に値をいれています。
以上、リストアイテム取得とその件数取得でした。
関連コース
- CI615-H Power Automate 入門 – Excel 連携
Power Automate をこれからはじめる業務ユーザー向けの基礎コース。業務でよく利用する Excel での自動化を課題とした実習ベースで解説します。 - CI617-H Power Automate によるフロー作成
基本を理解した方がより上級者レベルへと進むためのステップアップコース。Microsoft 365 各製品との連携や、より高度な設定の理解をめざします。 - CI614-H SharePoint & Power Apps & Power Automate 実践ラボ
Microsoft 365 ライセンスの範囲で Power Apps や Power Automate を活用した業務アプリを作成する方法を基本を理解されている方を対象に実践的なラボを行いながら解説する上位コースです。 - CI713-H Copilot Studio による Microsoft 365 チャットボット作成
Microsoft Copilot Studio を利用したチャットボット (Copilot) の作成を Teams や Microsoft 365 に含まれるライセンスの範囲でご紹介します。
チャットボットを作成する方や Microsoft 365 に含まれるライセンス範囲でチャットボットを活用されたい方におすすめのコースです。