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 を引数とします。
結果の件数をなんらかの列に書き込みたい場合は項目の更新アクションでよいと思いますが、図では変数に値をいれています。
以上、リストアイテム取得とその件数取得でした。
関連コース
- CI628-H Power Automate クラウド フロー 基礎
クラウド フローの基本的な概念、構築手順を習得いただけます。日常的な業務に沿った Excel 操作やメール操作を中心としたシナリオを実習の題材とし、クラウド フローの基本操作を習得し、自部門の業務を効率化するためのフローを自力で構築できるようになることをめざします。 - CI618-H Power Automate クラウド フロー 実践
Power Automate の基本操作を習得した方を対象に、関数を用いた数式記述、繰り返し処理、JSON データ処理、さらに安定したフローを構築するためのエラーハンドリング手法など、Power Automate の応用力を高めるために必要なスキル習得をめざします。 - CI627-H Power Automate for desktop による自動化
Power Automate for desktop の利用方法について、基本的な UI 操作の自動化、条件分岐やループ処理などの制御構造、ファイル操作、Excel 連携など、業務現場で頻出するシナリオを題材に、ローカル環境での反復作業を自動化するフローを、自ら設計・構築できるスキルの習得をめざします。 - CI626-H Microsoft 365 – Office スクリプトと Excel によるデータ活用
Power Query を利用したデータの取り込みや加工、Power Pivot による高度なデータ モデルの構築と分析手法を学びます。また Office スクリプトを利用することで、Excel 内で行うルーチン業務をスクリプト化して自動化し、業務の効率化と標準化を実現する方法も解説します。