索引付けされたPeop / User列をフィルタリングする方法
-
10-12-2019 - |
質問
長いリスト(5,000以上の項目を超える)を持ち、ビューしきい値がいくつかの列を索引付けしました。そのうちの1つは人/ユーザー列です。ユーザー列をフィルタリングするビューを作成したい場合は、機能しなくなり、エラーメッセージを返します。「このビューは、管理者によって強制されたリストビューのしきい値(5000項目)を超えているために表示できません。」
これは私がテストしたものです:
- "私が" [Me]を使うならば、
- 「名前」を使用していない場合は機能しません(列が名前を表示するように設定されています)
- 「ドメイン\ username」を使用している場合は、が機能しません。
- 「電子メール@アドレス」を使用している場合はが機能しません。
- "username"を使うなら、それはうまくいきません
- "userid"を使用している場合は、が機能しません。
- "userid;#; #username"を使用した場合はが機能しません。
- "" "" -1; #username "を使用した場合はが機能しません。
- 私は「含まれている」または「始める」、「人々のフィールド」だから
私はもうアイデアを持っていません....何か提案?
ありがとう
解決 2
ついに私は索引付けされた私のPerson / Group列のバージョンの唯一のバージョンを作成することにしました。私はそのテキスト列をフィルタリングすることができます、そして、私はこのテキストフィールドに人/グループの値をコピーするバックグラウンドにワークフローを持っています。
編集:
実際にはUserIDを使用してそれをすることが可能です。CAMLコードにはLookupId="True"
が含まれ、最後に、WHERE句は<FieldRef Name="My_x0020_Field_x0020_Name" LookupId="True"/><Value Type="Integer">123</Value>
のように見える必要がある必要があります。
このメソッドをMy href="http://aymkdn.github.io/sharepointplus/" rel="nofollow">クエリのSharePoint JavaScriptライブラリに実装しました。たとえば、userIDが123の場合、私の要求はSharePointPlus:のようになります。
.$SP().list("List Name").get({
fields:"Manager",
where:"Employee_x0020_Name ~= 123" /* we use the special operator '~=' */
}, function(data) {
if (data.length===1) alert("Manager: "+data[0].getAttribute("Manager"))
})
他のヒント
[Me]リストをフィルタリングする標準的な方法です。I Recallとして、Person / Group列には、ルックアップ列と同様に、しきい値に影響を与える追加のクエリがあるという点で追加のオーバーヘッドがあります。この追加のオーバーヘッドは、戻る可能性がある実際のしきい値を減らすことができます。私はそれへの参照を見つけようとしています。
リストビュールックアップしきい値を中央管理者でも増加させる必要があるかもしれません。