Sharepoint Caml - PullRequest
       20

Sharepoint Caml

1 голос
/ 01 февраля 2012

Я использую php и caml для получения списка из sharepoint, только кажется, что он возвращает минимальный список, мне интересно, как настроить отображение списка, чтобы показать все элементы списка, а не минимальный список по умолчанию. В настоящее время я являюсь экспертом в sharepoint, и я впервые использую caml, так что простите мою нубизм по этому вопросу.

вот мой запрос

<GetListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">  
          <listName>'.$list.'</listName> 
          <rowLimit>'.$limit.'</rowLimit>
          '.$queryXML.'
          <queryOptions xmlns:SOAPSDK9="http://schemas.microsoft.com/sharepoint/soap/" >              
              <QueryOptions/> 
          </queryOptions> 
        </GetListItems>'

Я заполняю список и ограничиваю переменные, и он возвращает представление списка по умолчанию из sharepoint, но я хочу добавить либо возможность просто вернуть все в списке, либо сообщить ему, какие столбцы вернуть, но я ' Мне почти не повезло, что я искал это в интернете: (

Заранее спасибо за ваши ответы

Ответы [ 3 ]

3 голосов
/ 01 февраля 2012

Вы должны начать с проверки документации метода веб-службы на List.GetListItems .Вам необходимо указать в параметре ViewFields поля, которые вы хотите вернуть.

Создание запросов CAML не для слабонервных.Есть много несоответствий, и язык используется для многих не связанных задач.Выполнение запроса CAML из собственной объектной модели немного отличается от вызова веб-службы.К счастью, U2U создал CAML Query Builder , который позволяет вам создавать запросы CAML, выбирая метод, который вы хотите подключить (веб-службы в вашем случае), список, поля, критерии фильтрации и упорядочения, которые вам нужны.

Если вы ориентируетесь на SharePoint 2010, вы можете избежать (почтенных) веб-сервисов и использовать API REST / OData. OData - это API, похожий на GData, для доступа к различным источникам данных, который позволяет легко фильтровать, выбирать и, что лучше всего, является единым для всех источников данных.Вы можете вызвать REST API напрямую из своего кода или использовать OData SDK для PHP , чтобы сгенерировать прокси-класс для своего списка, который позволит вам выполнять запросы очень простым способом.

Проверьте " Введение в запросы к спискам с помощью REST ", чтобы получить хорошее представление о API REST.

0 голосов
/ 11 сентября 2015

Вам нужно перейти к настройкам списка в SharePoint и установить лимит элементов, который отвечает за отображение определенного количества записей.Если вы не укажете имя представления, то будет использоваться представление по умолчанию.Если это представление по умолчанию настроено на отображение элемента в пакетном режиме или отображение ограниченного количества элементов, то вы получите только это количество записей.Все это должно быть установлено в настройках списка / библиотеки через пользовательский интерфейс.Если вы укажете запрос CAML вместе со всеми параметрами, то представление игнорируется, и вы получите все записи, возвращенные запросом CAML.Вот пример определения нового запроса CAML (хотя в C #), где используется идентификатор представления (между фигурными скобками) и, кроме того, предоставляется запрос CAML.Это сужает результаты, извлеченные из этого представления.Вы можете легко найти в Google, как найти идентификатор списка.

XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlNode ndQuery = xmlDoc.CreateNode(XmlNodeType.Element, "Query", "");
XmlNode ndQueryOptions = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
ndQueryOptions.InnerXml = "<IncludeMandatoryColumns>FALSE</IncludeMandatoryColumns>" + "<DateInUtc>FALSE</DateInUtc>";
XmlNode ndViewFields = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
ndQuery.InnerXml = "<Where><Eq><FieldRef Name='LinkTitle'/><Value Type='Text'>New Tasks</Value></Eq></Where>";
XmlNode confNode = listsSvc.GetListItems("NotificationConfig", "{92428C7A-3F35-41B2-AEC4-B8B1C7E64533}", ndQuery, null, null, ndQueryOptions, null);
0 голосов
/ 12 июня 2015

Вы используете SP 2013 или 2010? Если это 2013, я бы порекомендовал использовать сервисы Rest для SP. Это намного проще в использовании, и вам не нужно использовать этот сумасшедший CAML. https://msdn.microsoft.com/en-us/library/office/fp142380.aspx?f=255&MSPPError=-2147217396

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