Как вытащить все доступные документы из SharePoint (2007) через веб-сервисы? - PullRequest
0 голосов
/ 20 июля 2010

Я пытаюсь сделать что-то, что, на мой взгляд, было бы довольно легко (поскольку я подозреваю, что я не единственный, кто хочет это сделать);

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

Не знаюу меня есть какие-то технические проблемы, у меня все в порядке с веб-сервисами, я могу использовать их все, находить найденные предметы и т. д., я просто не могу найти правильный способ добраться до этих золотых самородков.Я думал о том, чтобы использовать lists.asmx -> getListCollection для получения основных списков и обхода их для документов, но, очевидно, это не так.Я могу вытащить список общих документов (root) по имени, но могу ли я получить список всех репозиториев для данного пользователя?

Ответы [ 2 ]

1 голос
/ 20 июля 2010

Я так понимаю, вы имеете в виду готовые веб-сервисы. Для того, чтобы делать то, что вам нужно, вам нужно использовать веб-сервис «Веб», доступный по адресу /_vti_bin/Webs.asmx, чтобы возвращать информацию о веб-сайте и его веб-сайтах. Когда вы вернете данные веб-сайта, к которому вы обращаетесь, вы иметь список доступных библиотек документов. Затем вы можете вызвать службу списков для каждого списка в этом, чтобы вернуть ваши данные. Полагаю, моя главная мысль заключается в том, что вам придется рекурсивно проходить через все паутины и подсети.

   private void RecurseThroughWebsForDocuments(SPWeb web){
       //do whatever with documents on the web here

      foreach(SPWeb subWeb in web.Webs){     
       RecurseThroughWebsForDocuments(subWeb);
      }
}

Возможно, вам лучше написать свой собственный веб-сервис и развернуть его на сервере SharePoint. Вы можете создать рекурсивный метод для запуска сайтов / дочерних сайтов, а затем перечислить библиотеки документов и т. Д. Если вы имеете дело с большим объемом данных, вы можете разделить их на несколько потоков и объединить результаты, прежде чем возвращать их, чтобы ускорить это. .

Надеюсь, это имеет смысл,

Шейн

0 голосов
/ 21 июля 2010

Не уверен, что понимаю ваши требования, кажется, смешать условия. Я хотел бы взглянуть на http://spi.codeplex.com/, хорошо видеть, как sharepoint представляет URL-адрес, список имен / guid и т. Д.

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