0

I have a long list (more than 5,000 items) and due to view threshold I indexed some columns. One of them is a people/user column. When I want to create a view that filters on the User column, then it doesn't work and returns the error message "This view cannot be displayed because it exceeds the list view threshold (5000 items) enforced by the administrator."

Here is what I tested :

  • if I use "equal to" "[Me]" then it works
  • if I use "equal to" "name" then it doesn't work (the column is set to display the Name)
  • if I use "equal to" "domain\username" then it doesn't work
  • if I use "equal to" "email@address" then it doesn't work
  • if I use "equal to" "username" then it doesn't work
  • if I use "equal to" "userID" then it doesn't work
  • if I use "equal to" "userID;#username" then it doesn't work
  • if I use "equal to" "-1;#username" then it doesn't work
  • I cannot use "contains" or "begins with" because it's a people field

I don't have any more ideas.... Any suggestions ?

Thank you

  • Are you using claims?? In such case the user name would be different. – Marius Constantinescu - MVP May 30 '13 at 15:00
  • @C.Marius nope... I don't know what it is ! – AymKdn May 31 '13 at 9:08
0

[Me] is the standard way to filter the list. As I recall, person/group columns have additional overhead in that there are additional queries that affect the threshold, as with lookup columns. This additional overhead in turns reduces the actual threshold value that can be returned is less than the limit. I'm trying to find a reference to that.

You may need to have the List View Lookup Threshold increased in Central Admin as well.

  • I don't have access to the Central Admin :-( – AymKdn May 31 '13 at 9:08
0

Finally I decided to create a Text Only version of my person/group column that is also indexed. I can now filter on that TEXT column, and I have a workflow in the background that copy the value of the person/group to this text field.

EDIT:

It's actually possible to do it using the UserID. The CAML code will include LookupId="True" and, at the end, the WHERE clause needs to look like <FieldRef Name="My_x0020_Field_x0020_Name" LookupId="True"/><Value Type="Integer">123</Value>

I've implemented this method in my Sharepoint JavaScript library for the queries. For example if the UserID is 123 my request will look like that with 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"))
})

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.