Lists.asmx, GetListItems и папки

Аз правя няколко изследвания на някой днес около list.asmx уеб услуга, предоставени като част от SharePoint 2010 (и по-рано).  Тя е в състояние да получи елементите от списъка в главната папка (включително имената на подпапките), но не можа да се получи елементите в подпапките.  Направих някои поглед по internets и това е изненадващо общ въпрос.  Още, Не мога да получа добра отговорът на прост въпрос, "Ако знам, че папката, Как да получа елементите в папката?”  За да бъда честен, Аз не опитайте всички усърдно, тъй като съм исках да фигура, тази комбинация, на моята собствена за известно време Усмивка.

За да зададете това като настройка, Създадох даден сайт, наречена "Сценарии за Blogging" и списък по избор, наречена "Потребителски списък с последващо папки".  След това създадох папки, наречени:

  • Година 2005
  • Година 2006
  • Година 2007

Добавих няколко елементи в папката "2006 година".  Ето как изглежда той:

image

Моят приятел не писане C# код а по-скоро използване на Java, така че САПУН плика е това, което тя наистина необходимо.  За да получите, I пише малко jQuery и използва fiddler, за да получите действителната HTTP разговор.

Ето съответните jQuery (Аз копиран кода под ако искате да копирате/поставяте):

image

Те първият ключ е да включат и двете <queryOptions> и <QueryOptions> възел.  Вторият ключ е, че <Папка> възел е URL АДРЕС, към която клиентът има достъп.

Може да има други начини да получите това, но това работи добре за мен, когато се използва jQuery.

Тук е SOAP пакет за горните:

<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’>                
  <soapenv:Тяло>
    <GetListItems xmlns =’
HTTP://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Списък по избор с последващо папки</listName>
      <viewFields>  
        <ViewFields>
          <Име на FieldRef =' заглавие’ />
          <Име на FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Списък на сценарии/списъци/по избор с последващо папки/година 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тяло>
</soapenv:Плик>

Много примери и дискусия около това довело ми да се смята, че всичко трябва да е <QueryOptions> и задайте име на папка.  За мен, Аз трябва да и го поставете между вътре <queryOptions> както и да укажете напълно квалифицирани URL АДРЕС за <Папка> възел.

Тук е настройка на jQuery AJAX:

$(документ).готов(функция() {
       var soapEnv =
           "<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org/SOAP/envelope/’> \
               <soapenv:Тяло> \
                    <GetListItems xmlns =’HTTP://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Списък по избор с последващо папки</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Име на FieldRef =' заглавие’ /> \
                              <Име на FieldRef ='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. Даниел

    Здравей

    Аз съм се опитва да покажете документите под определена папка използване на ЕПД 2010 Източник GetListItems

    След като се свържете с моя уеб услуга и въведете guid за библиотеката с документи
    Мога да променя QueryOptions и въведете следното парче на CAML
    Съответствие TrainingCompanyX.

    Само това не връща никакви резултати – премахване на параметъра QueryOptions се връща всички документи в главната библиотека с документи….

    Съм аз гледам в преминават някои вид преглед параметър и включва guid на изгледа.

    1. Пол Galvin Мнение автор

      Това е много стар пост/коментар толкова съжалявам за никога не отговаряте. Предполагам, че сте дълго, тъй като разбра как да се процедира.

  2. Боб Болтън

    Добра статия! Благодаря.

    Също така можете да използвате RecursiveAll опцията за автоматично траверса определяне структурата на папките (от главното ниво).

  3. Боб Болтън

    OK, изглежда като тя жилки се xml… просто замени на лира признаци по-долу с ъглови скоби.

    #queryOptions #
    #QueryOptions #
    #Преглед на атрибути обхват = "RecursiveAll" / #
    #/QueryOptions #
    #/queryOptions #

  4. Дъг

    Благодаря китка за този пост, Пол. Аз се опитвам да консумират GetListItems чрез ColdFusion cfhttp, и не можех да получите плика право. В крайна сметка дойде в този пост, и вашият пример работи безотказно. Благодаря отново.

  5. Дъг

    BTW – Знаете ли на един ресурс, който изброява всички правилното сапун пликове? Този за GetList елементи, публикувана в microsoft.com не съвпада ли сте тук…

Оставете отговор

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани *