Pergunta

I wrote a java program that uses SharePoint's Lists web service.
Right now, this is my CAML Query :

<Query>
    <Where>
      <Contains>
         <FieldRef Name='FileDirRef'/><Value Type='Lookup'>SubFolder1</Value>
      </Contains>
    </Where>
</Query>

and this is my CAML Query Options :

<QueryOptions>
   <ViewAttributes Scope='RecursiveAll' />
   <OptimizeFor>FolderUrls</OptimizeFor>
</QueryOptions>

This is what my root folder looks like :

enter image description here

And my program returns all File3.txt, SubFolder2 and File4.txt
What should I do in order to only get the contents of SubFolder1 : File3.txt AND SubFolder2 ?

Also, Is there a way to place myself on a folder other than root ?

Foi útil?

Solução

I finally found the answer I was looking for thanks to this Blog.
I deleted the CAML Query settings :

<Query>
    <Where>
      <Contains>
         <FieldRef Name='FileDirRef'/><Value Type='Lookup'>SubFolder1</Value>
      </Contains>
    </Where>
</Query>

and added this line to my CAML Query Options file :

<Folder>http://MySharePointServer/Root/SubFolder1</Folder>

And changed the Scope to All instead of RecursiveAll so it would only bring items directly under SubFolder1.

So now this is my Final CAML Query Options File :

<QueryOptions>

    <Folder>http://MySharePointServer/Root/SubFolder1</Folder>  
    <IncludeMandatoryColumns>TRUE</IncludeMandatoryColumns>     
    <ViewAttributes Scope="All"/>   
    <DateInUtc>TRUE</DateInUtc>     
</QueryOptions>


PS : you have to specify the hole URL to the SubFile. you cannot use RelativeUrl for this option.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a sharepoint.stackexchange
scroll top