Невозможно получить все поля списка, используя GetListItems в веб-сервисах sharepoint - PullRequest
4 голосов
/ 09 марта 2009

Я хочу получить все поля из каждого элемента в списке. Единственный способ, который я нашел, - создать представление, содержащее все поля. Но я не хочу создавать новый взгляд. Я пытался, но это не похоже на честь. Если бы это работало, я мог бы получить все поля с помощью GetList и заполнить ViewFields на основе этого.

Есть ли представление для переопределения представления по умолчанию из запроса xml? Мой текущий XML ниже.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://schemas.microsoft.com/sharepoint/soap/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <soap:Body>
    <s0:GetListItems>
      <s0:listName xsi:type="s:string">{GUID}</s0:listName>
      <s0:QueryOptions>
        <s0:ViewAttributes Scope="Recursive"></s0:ViewAttributes>
        <s0:IncludeMandatoryColumns>TRUE</s0:IncludeMandatoryColumns>
      </s0:QueryOptions>
      <s0:Query></s0:Query>
      <s0:ViewFields>
        <s0:FieldRef xsi:type="s:string" Name="ID"></s0:FieldRef>
        <s0:FieldRef xsi:type="s:string" Name="CellPhone"></s0:FieldRef>
        <s0:FieldRef xsi:type="s:string" Name="FirstName"></s0:FieldRef>
      </s0:ViewFields>
    </s0:GetListItems>
  </soap:Body>
</soap:Envelope>

Ответы [ 3 ]

4 голосов
/ 09 марта 2009

Я понял это. По какой-то причине у вас должен быть тег viewFields в правильном пространстве имен мыла. А внутри него тег ViewFields (важен регистр).

<s0:viewFields>
<ViewFields>
<s0:FieldRef ...>
</ViewFields>
</s0:viewFields>
1 голос
/ 10 марта 2009

«По какой-то причине»? Элемент идентифицируется комбинацией локального имени и пространства имен. С другим пространством имен это другой элемент, даже если он имеет одно и то же локальное имя.

1 голос
/ 09 марта 2009

Ваши ViewFields должны содержать все поля, которые вы хотите вернуть. Ваш запрос должен вернуть запрос CAML. CAML-запрос определит фильтр и отсортирует.

Хорошим инструментом, который поможет как с ViewFields, так и с запросом CAML, является U2U CAML Query Builder. У меня возникли проблемы с поиском ссылки, которая подходит для этого на данный момент, поэтому вам, возможно, придется поискать ее самостоятельно или прибегнуть к чьему-либо другому инструменту запроса CAML.

Kirk

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...