Tag Archives: Lists.asmx

Lists.asmx, GetListItems in mape

Je bila delaš nekaj raziskav za nekoga, danes okoli list.asmx spletna storitev, ki so del SharePoint 2010 (in starejših).  Ona je uspelo priti elemente seznama na korensko mapo (vključno z imena podmape), vendar strjena lava zaslužiti elemente v podmape.  Sem, da nekaj iskal okoli na internets in je presenetljivo skupno vprašanje.  Še, Nisem mogel dobiti dober odgovor na preprosto vprašanje, "če vem mapo, Kako dobim elemente v mapi?”  Iskren, Nisem poskusil vse, da težko saj sem želela slika to ena na moje za nekaj časa Smile.

To nastaviti, Ustvarili ste stran, ki je imenovan "Blogging scenarijev" in seznam po meri, imenovano »Po meri seznam s Sub mape« .  Nato ustvarili mape, imenom:

  • Leto 2005
  • Leto 2006
  • Leto 2007

Sem dodal nekaj elementov v mapo »Leto 2006« .  To je kako izgleda:

image

Moj prijatelj ni pisanje C# kodo, vendar raje uporabo Java, tako MILO ovojnico je bil, kaj je res potreben.  Zadobiti ki, Sem napisal malo jQuery in nato uporablja Violinista priti dejanske HTTP pogovor.

Tukaj je ustreznih jQuery (I kopirati šifro navzdol spodaj Če želite Kopiraj in Prilepi):

image

So prvi ključ je vključuje tako a <queryOptions> in <QueryOptions> vozlišče.  Druga ključna je, da je <Mapo> vozlišče je URL, ki ima odjemalec dostop.

Obstajajo lahko drugih načinov, da to, vendar to delal dobro za mene, ko z uporabo jQuery.

Tukaj je MILO ovojnico za zgoraj:

<soapenv:Ovojnica xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Telo>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Seznam po meri s Sub mape</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef ime = "naslov’ />
          <FieldRef ime = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mapo>
http://demoserver1 in Blogging Scenariji/sezname/Custom seznam s Sub mape in leto 2006</Mapo>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Telo>
</soapenv:Ovojnica>

Veliko primerov in razpravo okoli tega pripeljala me, da verjamem, da je bilo vse rabim <QueryOptions> in določite ime mape.  Za mene, I potreba obema zavijanje it znotraj <queryOptions> kot tudi določite popolnoma kvalificirano URL za v <Mapo> vozlišče.

Tukaj je jQuery AJAX setup:

$(dokument).pripravljena(Funkcija() {
       var soapEnv =
           "<soapenv:Ovojnica xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Telo> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Seznam po meri s Sub mape</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef ime = "naslov’ /> \
                              <FieldRef ime = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mapo>http://demoserver1/Blogging Scenariji/sezname/Custom seznam s Sub mape in leto 2006</Mapo> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Telo> \
           </soapenv:Ovojnica>";

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Lists.asmx, GetList in "vrednost ne more biti null”

Sem danes odkril da je GetList() metoda v Lists.asmx Spletna storitev je zelo skrbno imenuje ali je nagnjen k vrgel skrivnostni "Vrednost ne more biti nič" izjema (in to je ob predpostavki, da lahko prideš mimo še slabše sporočilo o splošni napaki, "Izjema tipa" Microsoft.SharePoint.SoapServer.SoapServerException’ bil vržen.")  Posebej, Sem našel kakršne koli predpono ne more zagotoviti na GetList način.  Naslednje odrezek jQuery ponazarja točka:

image

Če si to naredil, spletne storitve se odziva s "Vrednost ne more biti ničen" glede na to Fiddler-HTTP prepis, ki:

<?različica XML = "1,0" kodiranje = "utf-8"?>
  <milo:Ovojnica
     xmlns:milo ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:XSi = "
http://www.w3.org/ 2001/XMLSchema-primer
     xmlns:xsd ="
http://www.w3.org/ 2001/XMLSchema">

  <milo:Telo>
    <milo:Krivda>
      <faultcode>milo:Strežnik</faultcode>
      <faultstring>
        Razen tipa "Microsoft.SharePoint.SoapServer.SoapServerException’ bil vržen.
      </faultstring>
      <podrobnosti>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Vrednost ne more biti nič.
        </errorstring>
      </podrobnosti>
    </milo:Krivda>
  </milo:Telo>
</milo:Ovojnica>

seveda, verjetno ne bi dodate to predpono "s0" na svoje, vendar nekaj orodja so nagnjena k to storiti (kot Eclipse).

To je vse bolj zmedeno / frustrirajuće, ker druge metode prenašajo predpone.  Na primer, v GetListCollection metoda ne moti, če je bila pred, tudi z neumnosti predpone kot "xyzzy":

image

To »vrednost ne more biti nič« se zdi precej skupnega z lists.asmx, zato upajmo, da bo to pomagalo nekdo, v prihodnosti.

</namen>

Naročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin