Lists.asmx, GetListItems i mape

Sam bio događaj neki istraživanje za nekoga danas oko uslugu list.asmx web predviđeno kao dio sustava SharePoint 2010 (i ranije).  Ona je bila u mogućnosti da biste dobili stavke popisa na korijensku mapu (uključujući imena pod-mape), , ali nije mogao dobiti stavke u pod-mape.  Ja sam neki obličje okolo na internets i to je iznenađujuće zajedničko pitanje.  Još, Nisam mogao dobiti dobar odgovor na jednostavno pitanje, "Ako znam mapu, kako mogu dobiti stavke u mapi?"  Da budem iskren, Nisam pokušati sve što je teško jer sam želio shvatiti ovaj na moj posjedovati neko vrijeme Osmijeh.

Da biste postavili ovo gore, I stvorio je mjesto pod nazivom "Blogovi" Scenariji i prilagođeni popis pod nazivom "Custom Popis s podmape".  Tada sam stvorio mape pod nazivom:

  • Godina 2005
  • Godina 2006
  • Godina 2007

Dodao sam nekoliko stavki u mapu "Godina 2006".  To je ono što izgleda kao:

image

Moj prijatelj ne piše C # koda nego koristeći Java, tako da je SOAP omotnici je ono što je stvarno potrebno.  Da biste dobili da, Napisao sam malo jQuery i zatim koristiti Fiddler da biste dobili stvarni HTTP razgovor.

Evo relevantne jQuery (Ja kopirati kod ispod želite li copy / paste):

image

Oni su prvi ključ je da su oba <queryOptions> i <QueryOptions> čvor.  Drugi ključ je da <Mapa> čvor je URL koji klijent ima pristup.

Postoji svibanj biti drugih načina da se to, ali to je radio i za mene kada se koristi jQuery.

Ovdje je SOAP omotnice za gore:

<soapenv:Omotnica xmlns:soapenv =’http://schemas.xmlsoap.org / sapun / kuverta /’>                
  <soapenv:Tijelo>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / sapun /’>
      <listname>Prilagođeni popis s podmape</listname>
      <viewFields>  
        <ViewFields>
          <FieldRef Ime = 'Naslov’ />
          <FieldRef Ime = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mapa>
http://demoserver1/Blogging Scenariji / popisi / Custom List sa podmape / godine 2006</Mapa>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Tijelo>
</soapenv:Omotnica>

Puno primjera i diskusiju oko to je dovelo me da vjerujem da je sve što mi treba je <QueryOptions> i odredite naziv mape.  Za mene je, Trebam oba zamotajte ga u <queryOptions> kao i navesti u potpunosti kvalificirani za URL <Mapa> čvor.

Evo jQuery AJAX postava:

$(dokument).spreman(funkcija() {
       je soapEnv =
           "<soapenv:Omotnica xmlns:soapenv =’http://schemas.xmlsoap.org / sapun / kuverta /’> \
               <soapenv:Tijelo> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / sapun /’> \
                       <listname>Prilagođeni popis s podmape</listname> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Ime = 'Naslov’ /> \
                              <FieldRef Ime = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mapa>http://demoserver1/Blogging Scenariji / popisi / Custom List sa podmape / godine 2006</Mapa> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Tijelo> \
           </soapenv:Omotnica>";

</kraj>

Pretplatite se na moj blog.

Slijedite me na Twitter-u http://www.twitter.com/pagalvin

6 misli o „Lists.asmx, GetListItems i mape

  1. Danijel

    Bok

    I am trying to display the documents under a specific folder using a SPD 2010 DataSource GetListItems

    Once I connect to to my web service and enter the guid for the document library
    I can modify the QueryOptions and enter the following piece of CAML
    Compliance Training\CompanyX.

    Only this does not return any results – removing the QueryOptions parameter returns all the documents in the root document library….

    Am I looking at passing some sort of view parameter and include the view guid.

  2. Bob Bolton

    Ok, looks like it stripped out the xml… just replace the pound signs below with chevrons.

    #queryOptions#
    #QueryOptions#
    #ViewAttributes Scope=’RecursiveAll’/#
    #/QueryOptions#
    #/queryOptions#

  3. Doug

    Hvala hrpa za ovaj post, Pavle. Pokušavao sam da konzumiraju GetListItems putem ColdFusion cfhttp, i nije mogao dobiti pravo omotnice. Na kraju je došao preko ovaj post, i tvoj primjer je radio besprijekorno. Hvala još jednom.

  4. Doug

    BTW – znate li od resurs koji navodi sve odgovarajuće sapun omotnice? Jedan za GetList stavki objavljenih na microsoft.com ne odgovara vaš ovdje…

Ostavite odgovor na Bob Bolton Odustani odgovor

Vaša email adresa neće biti objavljena. obavezna polja su označena *