← 手順一覧へ戻る
クラウドフローSharePoint初心者向けよく使う

SharePoint「複数の項目の取得」で条件に合う項目を絞り込む

SharePointの未完了項目をフィルタークエリで取得。5件の入力から3件を選ぶ例で、列の内部名、valueの件数確認、0件・取得上限の違いを説明します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。

実行前に確認

  • SharePointへの接続と対象リストの読み取り権限が必要です。練習用リスト・列・データの準備には作成/編集権限も必要です。SharePointは標準コネクタですが、Power Automateの利用権、Microsoft 365の契約、組織のDLPポリシーを確認してください。誰でも無料という意味ではありません。
  • このフローは読み取りと確認のみです。更新・削除・メール送信のアクションは追加しません。入力が実行履歴に残るため、個人情報や業務の秘密を練習に使わないでください。
  • 0件なら対象サイト・リスト、Status列の文字(前後の空白や表記違い)、フィルター条件を確認します。式が文字のまま出力されたら「作成」の式欄を見直します。valueではなくbody全体をlengthへ渡さないでください。
  • Filter arrayは取得後の配列を絞ります。今回のフィルタークエリはSharePoint側で条件を指定するものです。上限で取得できなかった項目を、後からFilter arrayで探すことはできません。
  • 大量データではTop Count、ページネーション、リストのしきい値・索引などを別途確認します。10件返ったことや取得成功だけで全件取得と判断しません。この5件の練習は大規模リストの動作保証ではありません。

1使うトリガーとアクション

  1. トリガー手動でフローをトリガーする
  2. アクション複数の項目の取得GetOpenItems:Status eq '未完了'、ID昇順、最大10件
  3. アクション作成RetrievedItems:取得したvalue配列を確認
  4. アクション作成RetrievedCount:配列の件数を確認。メール送信・更新なし

図で見る処理のイメージ

概念図

架空の練習データ5件から、状態が未完了の3件だけを読みます。IDは説明用です。

  1. 入力5件

    未完了3件・完了2件。TitleとStatusを用意

  2. 取得時に絞る

    Status eq '未完了' / ID asc / Top Count 10

  3. 配列を確認

    valueの3件をRetrievedItemsで確認

  4. 件数を確認

    RetrievedCountは3。0件なら空配列と0

結果の例

基本は3件。該当なしの条件では0件。Top Countを2にすると2件だけで、未完了総数3件とは異なります。

入力5件とフィルターの期待値(Top Count=10)
ID(例)件名(Title)状態(Status)取得結果
21備品確認未完了取得する(1件目)
22会議室予約完了取得しない
23見積確認未完了取得する(2件目)
24資料整理完了取得しない
25棚卸準備未完了取得する(3件目)

表と図は架空データの期待値です。実際のフローを実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する9ステップの設定と確認方法
  1. 1

    準備:本番ではなく練習用のSharePointリストを使います。標準タイトル列(Title)と、作成時の名前を半角英字Statusにした「1行テキスト」列を用意します。この例では選択肢列やユーザー列を使いません。下の表の件名と状態を5件登録します。IDは自動採番なので、表の21〜25は説明用です。自分の実際のIDを使ってください。

  2. 2

    インスタントクラウドフローに「手動でフローをトリガーする」を置き、SharePointの「複数の項目の取得」を追加してGetOpenItemsに名前を変更します。サイトのアドレスと練習用リストを選択します。「項目の取得」はID指定で1件を読む別アクションです。

  3. 3

    詳細パラメーターのフィルター クエリ欄へ Status eq '未完了' を文字として入力します。Statusは列、eqは等しい、'未完了'は比較する文字列です。式欄に equals(...) を入れる書き方とは異なります。列名は引用符で囲まず、文字の値は半角のシングルクォートで囲みます。

  4. 4

    並べ替え(Order By)=ID asc、上から順に取得(Top Count)=10、アクション設定のページネーション=オフにします。IDの小さい順に条件一致の最大10件を受け取る練習です。リスト全件を取得する設定ではありません。

  5. 5

    データ操作「作成」を追加してRetrievedItemsに変更し、入力の式欄へ body('GetOpenItems')?['value'] を指定します。さらに「作成」を追加してRetrievedCountに変更し、式 length(body('GetOpenItems')?['value']) を指定します。配列全体と件数を見たいのでApply to eachは不要です。

  6. 6

    手動実行し、GetOpenItemsが成功したことを確認してから、実行履歴のRetrievedItemsとRetrievedCountを開きます。表のデータなら取得されるのは備品確認・見積確認・棚卸準備の3件、件数は3です。元のリスト5件は変更されません。ID21・23・25は表と同じIDだった場合の期待値です。

  7. 7

    0件の練習:フィルターだけを Status eq '該当なしテスト' に変更します。その文字を持つ行がなければ、取得成功時のvalueは []、RetrievedCountは0です。エラーで停止した場合とは区別します。確認後は Status eq '未完了' に戻します。

  8. 8

    上限の練習:この5件だけのリストでTop Countを2にすると、未完了3件のうちIDが小さい2件だけが返り、件数は2です。取得件数は条件一致する総件数とは限りません。確認後は10に戻します。全件処理が必要な場合は、関連する期限切れ通知の記事のページネーション確認手順へ進みます。

  9. 9

    既存リストへ応用する前に、列の内部名と種類を確認してください。画面の表示名が「状態」でも、そのままStatusや状態をクエリに書けるとは限りません。本例は作成時からStatusという英字名を使う前提です。列が存在しないエラーなら、まず練習用Status列で成功するか切り分け、既存列の定義をリスト管理者と確認します。表示名の変更だけで内部名を直そうとしないでください。

Microsoft公式ページで確認する

設定を確認できる公式資料