2011-01-18 14 views
1

何らかの理由で、私はCAMLとWebサービスをPythonのsudsライブラリで使用してSharePoint 2007にクエリを実行しようとしています。呼び出しは次のようになります。何らかの理由でリストからすべてのアイテムを取得するための正しいSharePoint CAMLクエリは何ですか?

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

、私は<Query/>または<Query><Where/></Query>で0の結果やエラーが発生しますが、簡単なトートロジーWHERE x = 1 OR x != 1ですべての項目を取得します。

すべてのリスト項目を取得する正しい方法は何ですか?

答えて

1

すべての項目を取得するには、そこにorderby句を入れ、任意の列を指定します。すべてを返す必要があります...

1

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 ignores my query filter

+0

良いアドバイスですが、sudsライブラリは私のために ''(小文字の)ラッパーを作成します。通常の空ではない ' '(大文字)クエリはうまく動作します。私は空の文字列のRaw( '')と同じ振る舞いを持っているかどうかを確認するためにデバッガに入る必要があります。 – joeforker

0

あなたはROWLIMITパラメータに0を使用しています。 100のようなものを試してみてください。

+0

0は「制限なし」を意味すると思いました。 – joeforker

関連する問題