我有一个很长的列表(超过 5,000 个项目),并且由于视图阈值,我对一些列建立了索引。其中之一是人员/用户栏。当我想要创建一个对“用户”列进行筛选的视图时,它不起作用并返回错误消息“无法显示此视图,因为它超出了管理员强制执行的列表视图阈值(5000 项)”。

这是我测试的:

  • 如果我使用“等于”“[Me]”那么它就有效
  • 如果我使用“等于”“名称”那么它不起作用(该列设置为显示名称)
  • 如果我使用“等于”“域\用户名”那么它不起作用
  • 如果我使用“等于”“email@address”那么它不起作用
  • 如果我使用“等于”“用户名”那么它不起作用
  • 如果我使用“等于”“userID”那么它不起作用
  • 如果我使用“等于”“userID;#username”那么它不起作用
  • 如果我使用“等于”“-1;#username”那么它不起作用
  • 我不能使用“包含”或“开头为”,因为它是一个人员字段

我没有更多的想法了......有什么建议 ?

谢谢

有帮助吗?

解决方案 2

最后,我决定创建一个也被索引的个人/组列的纯文本版本。我现在可以过滤该文本列,并且我在后台有一个工作流程,可将人员/组的值复制到此文本字段。

编辑:

实际上可以使用 UserID 来完成此操作。CAML 代码将包括 LookupId="True" 最后,WHERE 子句需要看起来像 <FieldRef Name="My_x0020_Field_x0020_Name" LookupId="True"/><Value Type="Integer">123</Value>

我已经在我的中实现了这个方法 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]是过滤列表的标准方法。正如我回忆中,人/组列具有额外的开销,因为存在影响阈值的其他查询,如查找列。此额外的开销逐渐降低了可以返回的实际阈值小于限制。我正试图找到对此的参考。

您可能需要在Central Admin中提高列表视图查找阈值。

许可以下: CC-BY-SA归因
scroll top