Lists.asmx, GetListItems og -mapper

Jeg gjorde noen undersøkelser for noen i dag rundt list.asmx-webtjeneste som en del av SharePoint 2010 (og tidligere).  Hun var i stand til å få listeelementene i rotmappen (deriblant med navn på undermapper), men kunne ikke få elementer i undermapper.  Jeg gjorde noen ser på internets, og det er en overraskende vanlige spørsmål.  Ennå, Jeg kunne ikke få en bra svar pσ enkelt spørsmål, "Hvis jeg vet mappen, Hvordan får jeg elementene i mappen?”  For å være ærlig, Jeg gjorde ikke prøve alle at hardt siden jeg har ønsket å figur dette en ut på min egen for en stund Smil.

Sette opp dette, Jeg laget et nettsted som heter "Blogging scenarier" og en egendefinert liste som heter "Egendefinert liste med Sub mapper".  Jeg deretter opprettet mapper med navnet:

  • År 2005
  • År 2006
  • År 2007

Jeg har lagt noen elementer til mappen "Year 2006".  Dette er hvordan det ser ut:

image

Min venn er ikke skrive C#-kode, men heller benytter Java, SOAP-konvolutten var så hva hun virkelig trengte.  Å få det, Jeg skrev en bit av jQuery og deretter brukt fiddler for å få faktiske HTTP samtale.

Her er den aktuelle jQuery (Jeg kopierte koden ned nedenfor hvis du vil kopiere/lime):

image

De første nøkkelen er å inkludere både en <queryOptions> og <QueryOptions> noden.  Den andre nøkkelen er at den <Mappen> noden er en URL-adresse som klienten har tilgang.

Det kan være andre måter å få dette, men dette jobbet godt for meg da ved hjelp jQuery.

Her er SOAP-konvolutten for det over:

<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’>                
  <soapenv:Kroppen>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Egendefinert liste med Sub-mapper</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef navn =' tittel’ />
          <FieldRef navn ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappen>
http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Kroppen>
</soapenv:Konvolutt>

Mange eksempler og diskusjon rundt dette førte meg til å tro at alt jeg trenger var <QueryOptions> og angi et mappenavn.  For meg, Jeg trenger både brytes det i <queryOptions> i tillegg til å angi et fullstendig kvalifisert for den <Mappen> noden.

Her er oppsettet jQuery AJAX:

$(dokumentet).klar(funksjonen() {
       var soapEnv =
           "<soapenv:Konvolutt xmlns:soapenv =’http://schemas.xmlsoap.org/SOAP/Envelope/’> \
               <soapenv:Kroppen> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Egendefinert liste med Sub-mapper</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef navn =' tittel’ /> \
                              <FieldRef navn ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappen>http://demoserver1/Blogging Scenarier, lister, egendefinert liste med Sub-mapper/år 2006</Mappen> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Kroppen> \
           </soapenv:Konvolutt>";

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

6 tanker om “Lists.asmx, GetListItems og -mapper

  1. Daniel

    hei

    Jeg prøver å vise dokumenter under en bestemt mappe ved hjelp av en SPD 2010 DataSource GetListItems

    Når jeg kobler til min web-tjenesten og angi guiden for dokumentbiblioteket
    Jeg kan endre QueryOptions og angi følgende stykke CAML
    Samsvar TrainingCompanyX.

    Bare denne returnerer ikke noen resultater – fjerne parameteren QueryOptions returnerer alle dokumenter i dokumentbiblioteket rot….

    Er jeg ser på passerer noen slags se parameteren og inkluderer Vis guiden.

    Svar
    1. Paul Galvin Post forfatter

      Dette er en veldig gammelt innlegg/kommentar beklager for aldri svare. Jeg antar du lenge siden funnet ut hvordan å fortsette.

      Svar
  2. Bob Bolton

    ok, ser ut som den strippet ut xml… bare Erstatt nummertegn nedenfor med doble vinkeltegn.

    #queryOptions #
    #QueryOptions #
    #ViewAttributes omfang = 'Alt rekursivt' / #
    #/QueryOptions #
    #/queryOptions #

    Svar
  3. Doug

    Takk en samling for dette innlegget, Paul. Jeg har prøvd å konsumere GetListItems via ColdFusion-cfhttp, og kunne ikke få konvolutten rett. Til slutt kom over dette innlegget, og ditt eksempel arbeidet feilfritt. Takk igjen.

    Svar
  4. Doug

    BTW – vet du om en ressurs som viser alle riktig såpe konvoluttene? Den for GetList elementer som er publisert på microsoft.com ikke samsvarer med du er her…

    Svar

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *