Lists.asmx, GetListItems і тэчак

Я рабіў некаторыя даследаванні для каго-то сёння каля службу list.asmx вэб падаюцца як частка SharePoint 2010 (і больш раннія версіі).  Яна была ў стане атрымаць спіс элементаў у каранёвай тэчцы (у тым ліку імёны подпапок), але не мог атрымаць дэталі ў падтэчку.  Я зрабіў некаторыя азіраючыся на інтэрнэт, і гэта дзіўна агульны пытанне.  Яшчэ, Я не мог атрымаць добры адказ на простае пытанне, "Калі я ведаю, што папка, як я магу атрымаць элементы ў тэчцы?"  Каб быць сумленным, Я не спрабаваў ўсё, што цяжка, так як я хацеў высветліць гэта самастойна на некаторы час ўсмешка.

Каб рэалізаваць гэтую магчымасць, Я стварыў сайт пад назвай "Блогі Сцэнарыі» і карыстальніцкі спіс пад назвай "Асаблівы спіс з ўкладзеных тэчак".  Затым я стварыў тэчкі з назвамі:

  • Год 2005
  • Год 2006
  • Год 2007

Я дадаў некалькі пунктаў у тэчку «Год 2006».  Гэта, як ён выглядае:

image

Мой сябар не піша кода C #, а з дапамогай Java, так SOAP канверце было тое, што яна сапраўды неабходная.  Для атрымання гэтага, Я напісаў трохі JQuery і затым выкарыстаў скрыпача, каб атрымаць фактычнае размове HTTP.

Вось адпаведны JQuery (Я скапіяваў код унізе, калі вы хочаце скапіяваць / ўставіць):

image

Яны першы ключ павінен ўключаць <queryOptions> і <QueryOptions> вузла.  Другі ключ з'яўляецца тое, што <Папка> вузел з'яўляецца URL, да якіх кліент мае доступ.

Там могуць быць і іншыя спосабы, каб атрымаць гэтую, але гэта працуе добра для мяне пры выкарыстанні JQuery.

Вось SOAP канверт для дадзеных:

<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’>                
  <soapenv:Цела>
    <GetListItems XMLNS =’
HTTP://schemas.microsoft.com / SharePoint / мыла /’>
      <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны>
      <ViewFields>  
        <ViewFields>
          <FieldRef NAME = 'Назва’ />
          <FieldRef NAME = 'EncodedAbsUrl’ />
        </ViewFields>
      </ViewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Цела>
</soapenv:Канверт>

Шмат прыкладаў і абмеркавання вакол гэтага прывяло мяне да думкі, што ўсё што мне трэба было <QueryOptions> і пакажыце імя тэчкі.  Для мяне, Мне трэба як апрацоўваць яго ў <queryOptions> а таксама пазначыць поўнае URL для <Папка> вузел.

Вось JQuery AJAX ўстаноўкі:

$(дакумент).гатовы(функцыя() {
       быў soapEnv =
           "<soapenv:Канверт XMLNS:soapenv =’HTTP://schemas.xmlsoap.org / мыла / канверт /’> \
               <soapenv:Цела> \
                    <GetListItems XMLNS =’HTTP://schemas.microsoft.com / SharePoint / мыла /’> \
                       <Лісцяны>Карыстацкі спіс з ўкладзеных тэчак</Лісцяны> \
                       <ViewFields> \
                           <ViewFields> \
                              <FieldRef NAME = 'Назва’ /> \
                              <FieldRef NAME = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </ViewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Сцэнарыі / Спісы / Карыстацкі спіс ўкладзеных тэчак з / Год выпуску: 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Цела> \
           </soapenv:Канверт>";

</канец>

Падпісацца на мой блог.

Выконвайце за мной на Twitter у http://www.twitter.com/pagalvin

6 думкі пра «Lists.asmx, GetListItems і тэчак

  1. Данііл

    Прывітанне

    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.

  2. Дуг

    Вялікі дзякуй за гэта паведамленне, Пол. Я спрабаваў спажываць GetListItems праз ColdFusion cfhttp, і не мог атрымаць права канверце. У рэшце рэшт наткнуўся на гэты пост, і ваш прыклад працаваў бездакорна. Яшчэ раз дзякуй.

  3. Дуг

    Дарэчы – Вы ведаеце, рэсурсу якой пералічаны ўсе належныя канверты мыла? Адзін для GetList, публікаваліся на microsoft.com не адпавядае Вашым тут…

Пакінуць каментар да Bob Bolton адмяніць адказ

Ваш электронны адрас не будзе апублікаваны. Абавязковыя палі пазначаныя * *