Lists.asmx, GetListItems og möppur

Ég var að gera sumir rannsókn fyrir einhvern dag um list.asmx vefur þjónustu sem hluta af SharePoint 2010 (og fyrr).  Hún var fær til fá the listi atriði á the rót mappa (þ.mt nöfn undir-möppur), en gat ekki fá atriði í staðinn fyrir einhvern-mappa.  Ég gerði nokkrar að leita í kring um internets og það er furðu algeng spurning.  En, Ég gat ekki fengið góða svar við einfaldri spurningu, "Ef ég veit að möppu, hvernig fæ ég þau atriði í möppunni?"  Til að vera heiðarlegur, Ég vissi ekki að reyna allt sem erfitt þar sem ég hef langað til að reikna þetta einn út á mitt eigið um stund bros.

Til að setja þetta upp, Ég bjó til síðuna sem heitir "Blogging Atburðarás" og sérsniðin listi sem heitir "Custom Listi með Sub möppur".  Ég skapaði þá möppur sem heita:

  • Ár 2005
  • Ár 2006
  • Ár 2007

Ég bætti nokkrum hlutum við möppu "ársins 2006".  Þetta er það sem það lítur út eins og:

image

Vinur minn er ekki að skrifa C # kóða heldur að nota Java, svo SOAP umslag var það sem hún þarf í raun.  Til að fá sem, Ég skrifaði smá jQuery og síðan notað Fiddler til að fá raunverulegan HTTP samtal.

Hér er viðeigandi jQuery (Ég afrita kóðann fyrir neðan ef þú vilt afrita / líma):

image

Þeir fyrstu Lykilatriðið er að fela bæði <queryOptions> og <QueryOptions> hnút.  Annað lykilatriði er að <Mappa> hnútur er slóðin sem viðskiptavinurinn hefur aðgang.

Það kann að vera aðrar leiðir til að fá þetta, en þetta virkaði vel fyrir mig þegar að nota jQuery.

Hér er sápa umslag fyrir ofan:

<soapenv:Umslag xmlns:soapenv =’HTTP://schemas.xmlsoap.org / sápu / umslag /’>                
  <soapenv:Body>
    <GetListItems xmlns =’
HTTP://schemas.microsoft.com / SharePoint / sápu /’>
      <listname>Custom Listi með Sub Mappa</listname>
      <viewFields>  
        <ViewFields>
          <FieldRef Name = 'Titill’ />
          <FieldRef Name = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Mappa>
HTTP://demoserver1/Blogging Atburðarás / listar / Custom List með Sub Mappa / árið 2006</Mappa>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Body>
</soapenv:Umslag>

A einhver fjöldi af dæmum og umræðu um þetta leiddi mig til að trúa því að allt sem ég þarf var <QueryOptions> og tilgreina heiti fyrir möppuna.  Fyrir mig, Ég þarf að bæði vefja það inni <queryOptions> og tilgreina fullgildur vefslóð fyrir að <Mappa> hnút.

Hér er jQuery AJAX skipulag:

$(skjal).tilbúinn(virka() {
       var soapEnv =
           "<soapenv:Umslag xmlns:soapenv =’HTTP://schemas.xmlsoap.org / sápu / umslag /’> \
               <soapenv:Body> \
                    <GetListItems xmlns =’HTTP://schemas.microsoft.com / SharePoint / sápu /’> \
                       <listname>Custom Listi með Sub Mappa</listname> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Name = 'Titill’ /> \
                              <FieldRef Name = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Mappa>http://demoserver1/Blogging Atburðarás / listar / Custom List með Sub Mappa / árið 2006</Mappa> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Body> \
           </soapenv:Umslag>";

</enda>

Gerast áskrifandi að bloggið mitt.

Fylgdu mér á Twitter á http://www.twitter.com/pagalvin

6 hugsanir á "Lists.asmx, GetListItems og möppur

  1. Daniel

    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.

    Svara
    1. Paul Galvin Post höfundur

      This is a very old post/comment so sorry for never replying. I assume you long since figured out how to proceed.

      Svara
  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#

    Svara
  3. Doug

    Takk a búnt fyrir þessa færslu, Paul. Ég hef verið að reyna að neyta GetListItems gegnum ColdFusion cfhttp, og gat ekki fengið umslag rétt. Lokum rakst á þessa færslu, og fordæmi þitt vann gallalaus. Takk aftur.

    Svara
  4. Doug

    BTW – veistu um auðlind sem birtir öll viðeigandi umslag sápu? Einn fyrir GetList Atriði birt á microsoft.com passar ekki hér þínum…

    Svara

Leyfi svar við Bob Bolton Hætta við svar

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *