SharePoint「値が有効な範囲にありません。」への対処法

  • 2013.02.19 Tuesday
  • 18:37
VisualStudioで 、SharePoint2010用のワークフローアクションでリストデータを参照するプログラムを開発していたところ、下記のようなエラーが発生しました。

「値が有効な範囲にありません。」
「value does not fall within the expected range.」

ソースはこんな感じです。


例外が発生するのは決まったフィールドでしたので、
何らかの設定値が影響しているとは思っていましたが、
思いもよらない設定が影響しておりました。

解決の糸口になったのはこちらのサイト

Value does not fall within the expected range

どうやら「リストビュー参照のしきい値」に左右されるようです。
SPQueryを使えば大丈夫だよ、という情報もあったのですが、いくらやってもダメでした。
(成功した人がいましたら、連絡お願いします!)


結局、考えられる対応策としては、2パターンあります。

■対策その1:エラーが発生しない列の種類に変更する


例外エラーが発生する列の種類は、調べたところ
「ユーザまたはグループ」
「参照(このサイトにある既存の情報)」
の2種類のようです。

そこで、この2種類の列を「リストビュー参照のしきい値」以下の数になるように頑張る。

リストにはデフォルトで「作成者」「更新者」という「ユーザまたはグループ」種別の列が存在していますので、これら値も参照したいのならば、「リストビュー参照のしきい値」からさらに「−2」しておく必要があります。


■対策その2:「リストビュー参照のしきい値」を変更する


WEBアプリケーションの設定変更できるのならば、この方法が手っ取り早いです。
しかし、この値を上げることは負荷を高めることにもなりますので、
有効な手立てかどうかは判断しかねます。

一応下記に設定手順を記載致します。

(1)SharePointサーバ上で、「SharePoint 2010 サーバーの全体管理」アプリを起動




(2)サーバの全体管理 ⇒ アプリケーション構成管理 ⇒ WEBアプリケーションの管理をクリック





(3)SharePoint - 80をクリックし、選択状態とします
(デフォルトでは80ですが、環境によっては数値がことなります)



(4)全体設定 ⇒ リソースの調整 をクリック
(全体設定の下▼マークを押すのがコツです)



(5)「リストビュー参照のしきい値」を変更
(デフォルトは8です)
 ↓



■まとめ


今回ワークフローアクションで発生した当事象ですが、
WEBパーツにおいても同様のようです。
今回勉強になったのは、リストデータを直接扱っているつもりでしたが、内部的にはリストビュー経由での参照だったのですね。
理屈はわかるのですが、情報が少ない分、ド嵌りしました。
こういうクリティカルな情報は、MSDNに判り易く載せてほしいです。



スポンサーサイト

  • 2020.10.21 Wednesday
  • 18:37
  • 0
    • -
    • -
    • -
    コメント
    コメントする








        
    この記事のトラックバックURL
    トラックバック