【问题标题】:Issue with the CAML query with SharepointSharepoint 的 CAML 查询问题
【发布时间】:2019-12-15 05:27:49
【问题描述】:

我正在尝试使用 CAML 查询从 sharepoint 文件夹和子文件夹中获取文件列表。我一直在尝试使用 RecursiveAll 作为视图范围。但没有运气。

代码:

request.AddParameter("application/json;odata=verbose", "{'query':{ '__metadata':{'type':'SP.CamlQuery'},'ViewXml':'<View><Query><RowLimit>8800</RowLimit></top>" + viewQueryData.ViewQuery + "<QueryOptions><ViewAttributes Scope=\"RecursiveAll\"/></QueryOptions></Query></View>'}}", ParameterType.RequestBody);

生成的查询:

<View Scope="RecursiveAll"><Query><Where><And><And><And><Or><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Workbook</Value></Eq><Eq><FieldRef Name="Document_x0020_Type" /><Value Type="Text">Standalone Scorecard</Value></Eq></Or><Neq><FieldRef Name="CR_x0020_Upload_x0020_Status" /><Value Type="Text">Complete</Value></Neq></And><Neq><FieldRef Name="CR_x0020_Upload_x0020_Status" /><Value Type="Text">Not Required</Value></Neq></And><Eq><FieldRef Name="Document_x0020_Status" /><Value Type="Text">Approved</Value></Eq></And></Where></Query></View>

如果我在这里遗漏了什么,有人可以帮助我吗?如果 RecursiveAll 未能获取所有文件,请告诉我,如果有任何其他方法。

【问题讨论】:

    标签: c# .net sharepoint caml


    【解决方案1】:

    请尝试使用小于 5000 的行限制来查看它是否有效,这可能会触发 Microsoft 为优化 SharePoint Online 环境查询性能而施加的列表视图阈值限制。但是,对于 SharePoint On-Prem,可以配置此限制,但不建议获得最佳性能。并确保 where 子句中的列都被索引。

    【讨论】:

    • 非常感谢您的回复。我们听取了您的意见并进行了调查。最后,问题是由于某些共享点列具有空值,因此没有被过滤掉。我们需要使用默认值配置 SharePoint 列。
    猜你喜欢
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多