从列表中检索所有项目的正确 SharePoint CAML 查询是什么?

发布于 2024-10-12 08:24:42 字数 548 浏览 1 评论 0原文

由于某种原因,我尝试使用 CAML 和 Web 服务以及 Python suds 库来查询 SharePoint 2007。该调用如下所示:

listItems = client.service.GetListItems(
    listName, '', Raw('<Query />'), viewFields, 0, 
    Raw("""<QueryOptions>
       <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>
       </QueryOptions>"""), 
    None)

由于某种原因,我得到 0 个结果或 < /code> 但使用简单的同义反复 WHERE x = 1 OR x != 1 获取所有项目。

获取所有列表项的正确方法是什么?

For some reason I am trying to query SharePoint 2007 using CAML and web services with the Python suds library. The call looks like:

listItems = client.service.GetListItems(
    listName, '', Raw('<Query />'), viewFields, 0, 
    Raw("""<QueryOptions>
       <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>
       </QueryOptions>"""), 
    None)

For some reason, I get 0 results or an error with <Query/> or <Query><Where/></Query> but get all items with a simple tautology WHERE x = 1 OR x != 1.

What is the correct way to just get all list items?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

九公里浅绿 2024-10-19 08:24:42

要获取所有项目,只需在其中放置一个 orderby 子句,并指定任意列。应该归还一切...

To get all items, just put an orderby clause in there, and specify an arbitrary column. Should return everything...

短叹 2024-10-19 08:24:42

有一个愚蠢的事情,您必须将 Query 包装在 query 元素中。生成的 SOAP 信封看起来像这样

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
 <soapenv:Body>
  <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
     <listName>TestQuery</listName>
     <query><Query><Where><Eq><FieldRef Name='Title'/>
      <Value Type='Text'>One</Value></Eq></Where></Query>
     </query>
     <viewFields><ViewFields><FieldRefName='Title'/>
  </ViewFields></viewFields><RowLimit>1</RowLimit>
 </GetListItems></soapenv:Body></soapenv:Envelope>

: 因此,GetListItems Web 服务确定您的查询是错误的并且不返回任何项目。

另请参阅这篇文章:GetListItems Webservice 忽略我的查询过滤器

there is a silly thing about it, you have to wrap your Query within a query element. The resulting SOAP envelope looks like

<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
 <soapenv:Body>
  <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'>
     <listName>TestQuery</listName>
     <query><Query><Where><Eq><FieldRef Name='Title'/>
      <Value Type='Text'>One</Value></Eq></Where></Query>
     </query>
     <viewFields><ViewFields><FieldRefName='Title'/>
  </ViewFields></viewFields><RowLimit>1</RowLimit>
 </GetListItems></soapenv:Body></soapenv:Envelope>

As a result, the GetListItems web service decides that your query is wrong and returns no items.

See also this post: GetListItems Webservice ignores my query filter

美煞众生 2024-10-19 08:24:42

您使用 0 作为 rowlimit 参数。尝试一下 100 之类的。

You are using 0 for rowlimit parameter. Try something like 100.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文