Archifau Tagiau: SharePoint Gwasanaethau We

Lists.asmx, GetListItems a Folders

Roeddwn yn gwneud rhywfaint o waith ymchwil i rywun heddiw o amgylch y gwasanaeth we list.asmx a ddarperir fel rhan o SharePoint 2010 (ac yn gynharach).  Roedd hi'n gallu cael yr eitemau rhestr ar y ffolder wraidd (gan gynnwys enwau is-ffolderi), ond ni allai gael eitemau yn is-ffolderi.  I ddim yn rhai edrych o gwmpas ar y internets ac mae'n gwestiwn rhyfeddol o gyffredin.  Eto, Nid oeddwn yn gallu cael ateb da i'r cwestiwn syml, "Os wyf yn gwybod y ffolder, sut ydw i'n cael y eitemau yn y ffolder?"  I fod yn onest, Doeddwn i ddim yn ceisio bob un sy'n caled ers i mi wedi bod eisiau i ffigur hwn allan ar fy mhen fy hun am gyfnod Smile.

I osod hyn i fyny, Yr wyf yn creu safle o'r enw "Senarios Blogio" a rhestr arfer o'r enw "Rhestr Custom gyda Is Folders".  Yna greu ffolderi a enwir:

  • Blwyddyn 2005
  • Blwyddyn 2006
  • Blwyddyn 2007

I ychwanegu ychydig o eitemau at 'r folder "Blwyddyn 2006".  Dyma sut mae'n edrych:

image

Nid yw fy ffrind yn ysgrifennu C # cod, ond yn hytrach gan ddefnyddio Java, felly yr amlen SOAP oedd beth oedd gwir angen.  Er mwyn cael y, Ysgrifennais ychydig o jQuery ac a ddefnyddir wedyn ffidlwr i gael y sgwrs HTTP gwirioneddol.

Dyma y jQuery perthnasol (I gopïo y cod i lawr isod os ydych am gopi / past):

image

Maent yn allweddol cyntaf yw cynnwys ill dau <queryOptions> a <QueryOptions> nod.  Yr ail allweddol yw bod y <Folder> nod yw URL y mae gan y cleient fynediad.

Gall fod ffyrdd eraill o gael y, ond mae hyn yn gweithio'n dda i mi wrth ddefnyddio jQuery.

Dyma'r amlen SOAP ar gyfer yr uchod:

<soapenv:Xmlns Amlen:soapenv =’http://schemas.xmlsoap.org / sebon / amlen /’>                
  <soapenv:Corff>
    <Xmlns GetListItems =’
http://schemas.microsoft.com / sharepoint / sebon /’>
      <Collddail>Rhestr Custom gyda Is-Folders</Collddail>
      <viewFields>  
        <ViewFields>
          <FieldRef Enw = 'Teitl’ />
          <FieldRef Enw = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folder>
http://demoserver1/Blogging Senarios / rhestrau / Rhestr Custom gyda Is Folders / Flwyddyn 2006</Folder>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Corff>
</soapenv:Amlen>

Mae llawer o enghreifftiau a thrafodaeth o gwmpas hyn fy arwain i gredu bod yr holl ei angen arnaf yn <QueryOptions> ac yn nodi enw ffolder.  I mi, Mae angen i'r ddau lapio y tu mewn i <queryOptions> yn ogystal â nodi URL hollol gymwys ar gyfer y <Folder> nod.

Dyma y setup AJAX jQuery:

$(dogfen).barod(swyddogaeth() {
       Roedd soapEnv =
           "<soapenv:Xmlns Amlen:soapenv =’http://schemas.xmlsoap.org / sebon / amlen /’> \
               <soapenv:Corff> \
                    <Xmlns GetListItems =’http://schemas.microsoft.com / sharepoint / sebon /’> \
                       <Collddail>Rhestr Custom gyda Is-Folders</Collddail> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Enw = 'Teitl’ /> \
                              <FieldRef Enw = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folder>http://demoserver1/Blogging Senarios / rhestrau / Rhestr Custom gyda Is Folders / Flwyddyn 2006</Folder> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Corff> \
           </soapenv:Amlen>";

</diwedd>

Tanysgrifio i fy mlog.

Dilynwch fi ar Twitter yn http://www.twitter.com/pagalvin