承認者が13人以上いる承認フローを作成していたら、まだフローの実行を行ったことがないのに、実行履歴にエラーが表示されました。


調べてみたところ、トリガーの「項目が追加されたとき」に使用している SharePoint リストの列の種類や数に原因があったみたいです。

  1. 作成した承認フローのリスト
  2. エラーの原因
  3. ビューによる列の制限
  4. 必須入力を任意入力に変更
  5. まとめ
    列のしきい値に影響する列の種類
    列のしきい値を超えていた場合の、上記の列に対しての対処方法

1.作成した承認フローのリスト

検証用に下記のような簡単なリストを作成しました。また、承認者が空欄になっているとフローがエラーで失敗するため、全部の列を必須入力に設定してあります。

列名列の種類
タイトル一行テキスト
ユーザー1ユーザーまたはグループ
ユーザー2ユーザーまたはグループ
ユーザー13ユーザーまたはグループ

リストの作成方法については、弊社のサポートサイトを参考に作成してください。

2.エラーの原因

冒頭にあったキャプチャの「トリガーを修正してください」をクリックしたところ、ボディの message に『クエリに含まれるルックアップ列の数が、管理者によって設定されたルックアップ列のしきい値を超えているため、クエリを完了できません。』と表示されました。

特に SharePoint のルックアップ数を設定した記憶がなかったので、既定値がいくつになっているのかを調べてみました。
SharePoint Sever での内容しか見つけられなかったのですが、下記のようにありました。

参照列、ユーザーまたはグループ列、ワークフロー状態列に基づく結合など、クエリごとに許可される結合の最大数を指定します。クエリで 8 個より多くの結合を使用すると、操作はブロックされます。これは単一アイテムの操作には適用されません。オブジェクト モデルから (ビュー フィールドを指定せず) 最大ビューを使用すると、最大で最初の 12 個の参照が返されます。

ソフトウェアの境界と制限 (SharePoint Server 2016 および 2019)

すごく簡単に要約すると、他からデータを参照している列については、12個以下にする必要があるみたいです。

3.ビューによる列の制限

トリガーの詳細オプションを表示してみたところ、「ビューによる列の制限」で回避できそうでした!新しくリストのビューを作成して、この項目に指定してみることにしました。

(1)ビューの作成

『ユーザー12人』という名前で、タイトル列とユーザー1~12までを指定したビューを作成しました。

また、「ビューのによる列の制限」で使用するリストのビューは、個人用ビューではなくパブリック ビューで作成してください(Power Automate の「ビューによる列の制限」で指定可能なビューが、パブリック ビューのみのため)。

(2)トリガーの設定

作成したビューを、トリガーの「ビューに列のよる制限」に指定しました。

(3)ビューを制限した結果

相変わらずエラーのままでした、、、
一応時間をおいてみたり、ビューのユーザー列を減らしてみたりもしましたが、解消されなかったです。

4.必須入力を任意入力に変更

動的なコンテンツを表示してみたところ、なぜかビューで制限されているはずの「ユーザー13」が表示されていました。

もしかしてリストの列の設定を必須入力にしているのが原因かな?と思ったので、リストでの必須入力の設定をやめてみることにしました。

(1)リストとトリガーの設定

リスト:全部の列を「必須」から「任意」の入力に変更
トリガーのビュー:ユーザー12人(変更なし)

(2)結果

エラーが表示されなくなりました!!

ビューによる列の制限をやめて、必須から任意入力だけにした場合では、冒頭と同じエラーが表示されました。

5.まとめ

列のしきい値に影響を与える列の種類と、列のしきい値を超えていた場合に影響をする列への対処方法を下記にまとめました。

【列のしきい値に影響する列の種類】
・ユーザーまたはグループ
・参照
・タスクの結果
・外部データ
・管理されたメタデータ

【トリガーが列のしきい値を超えていた場合、上記の列に対しての対処方法】
・リストのビューで12列以下にする(必要に応じて複数のビューを作成)
・必須入力を12列以下にする


列のしきい値に影響する列については、リスト ビューおよび必須入力を12列以下にする必要があることが分かりました。

もともと、承認者が空欄のまま申請されてしまうとフローがエラーで失敗してしまうために、全ての列を必須入力にしていました。
しかしながら、承認者が13名以上いる場合などでは、この方法以外でエラーの回避を行う必要があるみたいです、、、

また時間あるときに、Power Apps などを組み合わせてみて回避できないか試してみよう (^・ェ・^)ノ