Lists.asmx, GetListItems i carpetes

Jo estava fent una investigació per algú avui al voltant de la list.asmx web servei proporcionat com part del SharePoint 2010 (i anteriors).  Ella va ser capaç d'obtenir els elements de la llista a la carpeta d'arrel (incloent-hi els noms de sub-carpetes), però no podria aconseguir elements en subcarpetes.  Vaig fer algunes mirant al voltant de la internets i és una pregunta sorprenentment comú.  No obstant això, No podria aconseguir una bona resposta a la pregunta simple, "si jo sé la carpeta, com puc obtenir els elements a la carpeta?”  Per ser honest, No intento dur tot el que ja he volgut aquest un terme figura en el meu propi una estona somriure.

Per configurar-ho, He creat un lloc anomenat "Blogging escenaris" i una llista personalitzada anomenat "Costum llista amb subcarpetes".  Llavors vaig crear carpetes anomenades:

  • L'any 2005
  • L'any 2006
  • L'any 2007

He afegit uns elements a la carpeta de "Any 2006".  Això és el que sembla:

image

El meu amic no és l'escriptura de codi de c# però més aviat utilitzant Java, Així, els sobres de sabó, va ser el que realment necessitava.  Per aconseguir que, Vaig escriure una mica de jQuery i llavors utilitzava el violinista a la conversa d'HTTP present.

Heus aquí la jQuery rellevant (He copiat el codi avall per sota si vol copiar/enganxar):

image

És de primera clau per incloure a banda un <queryOptions> i <QueryOptions> node.  La segona clau és que el <Carpeta> node és un URL al qual el client té accés.

Pot haver-hi altres maneres d'aconseguir això, però això funcionava bé per a mi quan utilitzant jQuery.

Aquí hi ha les sobres de sabó per a l'anterior:

<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Cos>
    <GetListItems xmlns =’
http://Schemas.Microsoft.com/SharePoint/SOAP/’>
      <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA>
      <viewFields>  
        <ViewFields>
          <FieldRef nom =' títol’ />
          <Nom de FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Carpeta>
http://demoserver1/blocs Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Cos>
</soapenv:Sobres>

Un munt d'exemples i discussió al voltant d'això em va portar a crec que tot el que necessito és la <QueryOptions> i especifiqueu un nom de carpeta.  Per a mi, Jo necessitar als dos embolicar dins <queryOptions> així com d'especificar una URL plenament qualificat per a la <Carpeta> Node.

Aquesta és la configuració d'AJAX jQuery:

$(document).preparat(funció() {
       var soapEnv =
           "<soapenv:Sobres xmlns:soapenv =’http://Schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Cos> \
                    <GetListItems xmlns =’http://Schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <NOMBRELISTA>Llista personalitzada amb subcarpetes</NOMBRELISTA> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef nom =' títol’ /> \
                              <Nom de FieldRef ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Carpeta>http://demoserver1/Blogging Llista d'escenaris/llistes/personalitzada amb Sub les carpetes a l'any 2006</Carpeta> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Cos> \
           </soapenv:Sobres>";

</final>

Subscriure's al meu blog.

Follow me on Twitter http://www.twitter.com/pagalvin

6 comentaris a "Lists.asmx, GetListItems i carpetes

  1. Daniel

    Hola

    Estic intentant mostrar els documents en una carpeta específica utilitzant un SPD 2010 DataSource GetListItems

    Un cop em vaig connectar al meu servei web i introdueixi el guid per a la biblioteca de documents
    Puc modificar el QueryOptions i introduïu el següent fragment de CAML
    Compliment TrainingCompanyX.

    Només això no obtindreu cap resultat – traient el paràmetre QueryOptions retorna tots els documents de la biblioteca de documents d'arrel….

    Estic mirant a passar alguns tipus de Mostra paràmetre i inclouen el guid de vista.

    Resposta
    1. Paul Galvin enviament autor

      Aquesta és una molt antiga post/comentari tan trist per respondre mai. Suposo que llarga ja que imaginava com procedir.

      Resposta
  2. Bob Bolton

    Correcte, sembla que-desposseït a terme el xml… només substitueix els signes lliura sota els xebrons.

    #queryOptions #
    #QueryOptions #
    #ViewAttributes àmbit = 'RecursiveAll' / #
    #/QueryOptions #
    #/queryOptions #

    Resposta
  3. Doug

    Moltíssimes gràcies per aquest missatge, Paul. He estat tractant de consumir GetListItems mitjançant ColdFusion cfhttp, i no podia encertar l'embolcall. Finalment vaig trobar aquest post, i el seu exemple treballat impecablement. Gràcies una altra vegada.

    Resposta
  4. Doug

    BTW – saps d'un recurs que s'enumeren tots els sobres de sabó adequat? Aquell GetList elements publicades a microsoft.com no coincideix amb tu estàs aquí…

    Resposta

Deixi una contestació a Paul Galvin Cancel resposta

no es publicarà la seva adreça de correu electrònic. Els camps necessaris estan marcats *