Tag Archives: lists.asmx

Lists.asmx, GetListItems ir aplankai

Darau kai tyrimų kažkas šiandien aplink kaip SharePoint žiniatinklio paslaugos list.asmx 2010 (ir anksčiau).  Ji buvo suteikta galimybė gauti sąrašo elementus į šakninį aplanką (įskaitant poaplankius pavadinimai), Tačiau negalėjo gauti elementus ir poaplankius.  Aš padarė kai dairausi internetas ir tai yra stebėtinai įprastas klausimas.  Dar, Aš negalėjo gauti tinkamą atsakymą į paprastą klausimą, "jei aš žinau aplanką, kaip man elementus į aplanką?”  Tiesą sakant, Aš ne bandyti visi, kad sunku, nes aš norėjau pav tai vienas iš savo, o šypsena.

Kad tai nustatytumėte, Aš sukūrė tinklalapį, pavadintą "Blogų scenarijų" ir pavadintas "Pasirinktinį sąrašą su Sub katalogų" pasirinktinį sąrašą.  Aš tada sukūrė aplankus pavadintus:

  • Metų 2005
  • Metų 2006
  • Metų 2007

Aš pridėjo keletą daiktų į aplanką "metai 2006".  Tai kaip jis atrodo:

image

Mano draugas yra ne rašyti C# kodą bet o naudojant Java, Taigi SOAP vokas buvo, kas ji tikrai reikalinga.  Gauti, kad, Aš šiek tiek jQuery ir tada gaudavo smuikininkas tikrasis HTTP pokalbis.

Štai atitinkamo jQuery (Aš nukopijuoti kodą žemyn žemiau jei norite kopijuoti ir įklijuoti):

image

Jos pirmasis svarbiausia yra ir yra <queryOptions> ir <QueryOptions> mazgas.  Antrajam raktui yra tai, kad į <Aplankas> mazgas yra URL kuria klientas gali naudotis.

Gali būti kitų būdų, kaip gauti šią, bet tai dirbo gerai man naudojant jQuery.

Štai SOAP vokas planai:

<soapenv:Voko xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Įstaiga>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Pasirinktinį sąrašą su poaplankius</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef pavadinimas = "pavadinimas’ />
          <FieldRef pavadinimas = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Aplankas>
http://demoserver1/Dienoraštis Scenarijų/sąrašai/Pasirinktinis sąrašas su submeniu aplankus/metai 2006</Aplankas>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Įstaiga>
</soapenv:Vokas>

Daug pavyzdžių ir diskusijų apie tai privertė mane manyti, kad visi man reikia buvo <QueryOptions> ir nurodykite aplanko pavadinimą.  Man, Man reikia tiek apvyniokite viduje <queryOptions> taip pat nurodyti visas URL į <Aplankas> mazgas.

Štai jQuery AJAX nustatymas:

$(dokumento).paruošta(funkcija() {
       var soapEnv =
           "<soapenv:Voko xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Įstaiga> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Pasirinktinį sąrašą su poaplankius</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef pavadinimas = "pavadinimas’ /> \
                              <FieldRef pavadinimas = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Aplankas>http://demoserver1/Blogging Scenarijų/sąrašai/Pasirinktinis sąrašas su submeniu aplankus/metai 2006</Aplankas> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Įstaiga> \
           </soapenv:Vokas>";

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin

Lists.asmx, GetList ir "vertės negali būti neapibrėžta”

Odkryłam šiandien, kad, GetList() metodas lists.asmx tinklo tarnyba turi būti vadinamas labai atidžiai arba dažnai mesti Paslaptingos išimtis "Reikšmė negali būti nulinė" (ir darant prielaidą, kad yra kad jūs galite praeiti dar blogiau nepatentuotos klaidos pranešimą, "Išimtis tipo" Microsoft.SharePoint.SoapServer.SoapServerException’ buvo išmesti.")  Konkrečiai, Radau, kad jums negali suteikti bet kokios prefiksą GetList metodo.  Šie jQuery kodo fragmentą iliustruoja taškas:

image

Jei tai padarysite, Voratinklio paslauga atsako su "Reikšmė negali būti nulinė" kaip už tai Smuikininkas-Jeigu HTTP dialogowa:

<?XML versija = "1.0" kodavimo = "utf-8"?>
  <muilas:Vokas
     xmlns:muilo ="
http://schemas.xmlsoap.org/SOAP/Envelope/"    
     xmlns:XSi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <muilas:Įstaiga>
    <muilas:Kaltė>
      <faultcode>muilas:Serverio</faultcode>
      <faultstring>
        Išimtis tipo "Microsoft.SharePoint.SoapServer.SoapServerException’ buvo mesti.
      </faultstring>
      <išsamiai>
        <errorstring xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Reikšmė negali būti nulinė.
        </errorstring>
      </išsamiai>
    </muilas:Kaltė>
  </muilas:Įstaiga>
</muilas:Vokas>

žinoma, Jūs tikriausiai nebūtų pridėti kad "S0 atėmus" prefiksą savo, Tačiau kai kurie įrankiai yra linkę daryti (kaip užtemimas).

Tai dar labiau painu / nelinksma, nes kitų būdų toleruoti prefiksus.  Pavyzdžiui, į GetListCollection metodas neturi proto, jei ji yra buvo priešdėliu, net su nesąmonė prefiksus kaip "xyzzy":

image

Tai "reikšmė negali būti nulinė" atrodo gana bendro su lists.asmx, todėl tikiuosi tai bus padėti kažkam ateityje.

</pabaigos>

Prenumeruoti savo dienoraštį.

Sekite mane Twitter ne http://www.twitter.com/pagalvin