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 не адпавядае Вашым тут…

Пакінуць каментар

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