Экпресс доступ к данным в Sharepoint

Как быстро получить данные из списка SharePoint не пользуясь веб сервисами.
Самый быстрый способ получить их это конечно  нажать кнопку Экспорт в Excel и Бинго.
Посмотрим что скрывается за этой выгрузкой. Откроем файл подключения
В нем можно найти все реквизиты и параметры
http://сайт/_vti_bin/owssvr.dll?XMLDATA=1&List={2187857A-977C-43F6-BF4A-0D10A8410A41}&View={3BD82CF2-EA85-4CD3-81B8-17150794A091}&RowLimit=0&RootFolder=%2fLists%2fList7
Selection={2187857A-977C-43F6-BF4A-0D10A8410A41}-{3BD82CF2-EA85-4CD3-81B8-17150794A091}
EditWebPage=
Formatting=None
PreFormattedTextToColumns=True
ConsecutiveDelimitersAsOne=True
SingleBlockTextImport=False
DisableDateRecognition=False
DisableRedirections=False
SharePointApplication=http://сайт/_vti_bin
SharePointListView={3BD82CF2-EA85-4CD3-81B8-17150794A091}
SharePointListName={2187857A-977C-43F6-BF4A-0D10A8410A41}
RootFolder=/Lists/List7
Как видим используется вызов RPC,
Немного информации  SharePoint Foundation RPC Protocol 
{0} – ссылка на сайт.  Корневой или любой подсайт.
{1} –GUID списка
Также можно использовать представления для выгрузки данных
таким образом наша ссылка в усеченном варианте  будет иметь вид
Результат можно непосредственно проверить в браузере
Ну а дальше XML можно использовать в скрипте на свое усмотрение.

PS:

На самом деле этот способ не всегда удобен и имеет свои ограничения, однако наглядный и простой.

 

Для остальных случаев есть  RESTJSOM or SOAP Services.
Пример ниже демонстрирует как получить элементы из списка использую  SharePoint REST API:
function getListItems(webUrl, listName, success, failure) {
    var url = webUrl + «/_vti_bin/listdata.svc/» + listName;
    $.ajax({
        url: url,
        method: «GET»,
        headers: { «Accept»: «application/json; odata=verbose» },
        success: function (data) {
            success(data.d.results);
        },
        error: function (data) {
            failure(data.responseJSON.error);
        }
    });
}
//Usage
getListItems(‘https://contoso.sharepoint.com/project/’, ‘Tasks’, function (taskItems) {
    console.log(taskItems);
    for (var i = 0; i < taskItems.length; i++) {
        console.log(taskItems[i].TaskName);
    }
},
  function (error) {
      console.log(JSON.stringify(error));
  }
);

 

Автор: Roman D
Дата публикации: 2016-05-17T04:24:00.000-07:00