SharePoint Web服务团队讨论和回复

时间:2012-01-11 01:57:07

标签: web-services sharepoint

我正在尝试与sharepoint web服务的所有回复进行讨论,但似乎只能获得根消息,而不是任何回复。下面是soap XML。我错过了什么?

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.microsoft.com/sharepoint/soap/">
   <soapenv:Header/>
   <soapenv:Body>
      <soap:GetListItems>
         <!--Optional:-->
         <soap:listName>Team Discussion</soap:listName>

         <soap:viewFields>
                <ViewFields>
            <FieldRef Name='Title'/>
            <FieldRef Name='ItemChildCount'/>
            <FieldRef Name='Body'/>
        </ViewFields>
         </soap:viewFields>
         <soap:queryOptions>
        <QueryOptions>
           <Folder>
        "http://Lists/Team Discussion/Bite Me"
       </Folder>
        </QueryOptions>
         </soap:queryOptions>

      </soap:GetListItems>
   </soapenv:Body>
</soapenv:Envelope>

回复是:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/">
         <GetListItemsResult>
            <listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
               <rs:data ItemCount="2">
                  <z:row ows_Title="Hello" ows_ItemChildCount="3;#1" ows_Body="&lt;div class=&quot;ExternalClass7B4989B3DC264716AD81B9CE55FD38FA&quot;>&lt;p>​The text of the message&lt;/p>&lt;/div>" ows_MetaInfo="3;#" ows__ModerationStatus="0" ows__Level="1" ows_ID="3" ows_UniqueId="3;#{6AF6D7DA-0D87-45EC-B002-AA0D153B6286}" ows_owshiddenversion="1" ows_FSObjType="3;#1" ows_Created="2012-01-11 12:21:26" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-01-11 12:21:26" ows_FileRef="3;#Lists/Team Discussion/Hello"/>
                  <z:row ows_Title="Bite Me" ows_ItemChildCount="1;#1" ows_Body="&lt;div class=&quot;ExternalClass76A3DB4368714038B6B75DB0D807240B&quot;>&lt;p>​Really?&lt;/p>&lt;/div>" ows_MetaInfo="1;#" ows__ModerationStatus="0" ows__Level="1" ows_ID="1" ows_UniqueId="1;#{336518DC-B806-4DFB-9483-AB8DBB6258B6}" ows_owshiddenversion="1" ows_FSObjType="1;#1" ows_Created="2012-01-09 14:16:29" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-01-09 14:16:29" ows_FileRef="1;#Lists/Team Discussion/Bite Me"/>
               </rs:data>
            </listitems>
         </GetListItemsResult>
      </GetListItemsResponse>
   </soap:Body>
</soap:Envelope>

编辑:上述每个帖子也应该有回复。

2 个答案:

答案 0 :(得分:3)

我最终找到了神奇的查询。似乎只有在您根据日期添加查询时才返回子文件夹,即此soap请求有效。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.microsoft.com/sharepoint/soap/">
   <soapenv:Header/>
   <soapenv:Body>
      <soap:GetListItems>
         <!--Optional:-->
         <soap:listName>969E0130-5727-4E7D-A908-B3A5BC447E24</soap:listName>

         <soap:viewFields>
                <ViewFields>
            <FieldRef Name='Title'/>
            <FieldRef Name='Created'/>
            <FieldRef Name='Author'/>
            <FieldRef Name='Body'/>
        </ViewFields>
         </soap:viewFields>

         <soap:query>
           <Query>
        <Where>
            <Geq>
                <FieldRef Name='Created' />
                <Value Type='DateTime'>2010-08-20T14:00:00</Value>
            </Geq>
        </Where>
        <OrderBy><FieldRef Name='ThreadIndex' Ascending='true' /></OrderBy>
      </Query>
         </soap:query>

    <soap:queryOptions>
           <QueryOptions>
        <ViewAttributes Scope="RecursiveAll" IncludeRootFolder="False" />
       </QueryOptions>
         </soap:queryOptions>
      </soap:GetListItems>
   </soapenv:Body>
</soapenv:Envelope>

基本部分是带有日期的查询元素,以及用于指定查询的查询选项是递归的。

imho不应该需要查询,因为它应该默认返回所有内容。

另一篇文章中列出的文件夹选项对我没有任何影响。

答案 1 :(得分:0)

你有没看过这篇文章:

如何使用Web服务访问SharePoint的讨论区
http://geekswithblogs.net/kobush/archive/2007/03/12/108545.aspx