Тег Архивы: lists.asmx

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/SOAP/envelope/’>                
  <soapenv:Тело>
    <GetListItems xmlns =’
HTTP://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Настраиваемый список с вложенные папки</listName>
      <viewFields>  
        <ViewFields>
          <Имя FieldRef =' название’ />
          <Имя FieldRef ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/блоги Сценарии/списки/настраиваемый список с Sub папки/год 2006</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тело>
</soapenv:Конверт>

Много примеров и дискуссии вокруг этого привели меня к мнению, что все это мне нужно было <QueryOptions> и укажите имя папки.  Для меня, Нужно обоим подводить его внутрь <queryOptions> а также укажите полный URL-адрес для <Папка> узел.

Вот настройки AJAX jQuery:

$(документ).готов(функция() {
       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 Сценарии/списки/настраиваемый список с Sub папки/год 2006</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Тело> \
           </soapenv:Конверт>";

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin

Lists.asmx, GetList и "не может иметь значение null”

Я открыл сегодня что GetList() метод в lists.asmx веб-служба имеет очень тщательно вызываемый или он подвержен исключения таинственный «Не может иметь значение null» (и что это если вы можете получить последние еще хуже общее сообщение об ошибке, «Исключение типа ' Microsoft.SharePoint.SoapServer.SoapServerException’ была брошена.")  Специально, Я обнаружил, что не может представить какой-либо префикса по метод GetList.  В следующем фрагменте jQuery иллюстрирует точка:

image

Если вы сделаете это, веб-служба отвечает с «Не может иметь значение null» в соответствии с этой скрипач-предоставляет протокол HTTP:

<?Версия XML = "1.0" кодирование = «utf-8»?>
  <мыло:Конверт
     xmlns:мыло ="
HTTP://schemas.xmlsoap.org/SOAP/envelope/"    
     xmlns:xsi = "
HTTP://www.w3.org/2001/XMLSchema-instance
     xmlns:XSD ="
HTTP://www.w3.org/2001/XmlSchema">

  <мыло:Тело>
    <мыло:Ошибка>
      <faultcode>мыло:Сервера</faultcode>
      <faultstring>
        Исключение типа ' Microsoft.SharePoint.SoapServer.SoapServerException’ была брошена.
      </faultstring>
      <деталь>
        <ErrorString xmlns ="
HTTP://schemas.Microsoft.com/SharePoint/SOAP/">
Значение не может быть пустым.
        </ErrorString>
      </деталь>
    </мыло:Ошибка>
  </мыло:Тело>
</мыло:Конверт>

Конечно, Вы, вероятно, не будет содержать префиксом «s0» на ваших, Однако некоторые инструменты склонны делать это (как Eclipse).

Это тем более запутанным / сложно, потому что другие методы терпеть префиксы.  К примеру, в GetListCollection метод не против, если он имеет префикс, имена даже с абсурд как «xyzzy»:

image

Это «не может иметь значение null» кажется довольно часто с lists.asmx так надеюсь это поможет кто-то в будущем.

</конец>

Подписаться на мой блог.

Следуй за мной по щебетать на http://www.twitter.com/pagalvin