Как агрегировать списки на веб-сайтах Project?

Я пытаюсь извлечь данные из Microsoft Project Online, используя PowerQuery как в PowerBI, так и в Excel.

Это скорее вопрос о PowerQuery/SharePoint, а именно о Project Online.

Итак, я могу составить список сайтов проектов, который, как я понимаю, является отдельным сайтом SharePoint для каждого проекта.

let
 Source = OData.Feed(SiteBaseURL & "_api/ProjectData/Projects", null, [Implementation="2.0"]),
 #"Removed Other Columns" = Table.SelectColumns(Source,{"ProjectIdentifier", "ProjectWorkspaceInternalUrl"}),
in
 #"Removed Other Columns"

который производит

https://............sharepoint.com/sites/edison/Project 1
https://............sharepoint.com/sites/edison/Project 2
https://............sharepoint.com/sites/edison/Project 3

Так что теперь у каждого из этих сайтов SharePoint есть свои собственные списки — вероятно, 99% одинаковых имен на каждом сайте, но, тем не менее, все сайты разные.

Итак, как мне получить полную совокупность всех списков на всех сайтах, перечисленных выше?

У меня две проблемы:

  1. Разрешения. Я могу получить доступ к URL-адресу ( https://....sharepoint.com/sites/edison/Project 1), если просто вставлю его в свой браузер. Но PowerQuery сообщает мне, что доступ запрещен. (Это единый вход в среду с токенами)

  2. Как мне закодировать формулу, которая перебирает списки и создает список списков?


person Maxcot    schedule 07.04.2021    source источник


Ответы (1)


Если все сайты имеют общий родительский элемент, вы можете использовать API-интерфейс поиска/запроса Sharepoint. Он просматривает управляемые свойства списков на родительском и дочерних сайтах, а затем предоставляет хранящиеся в них данные.

person O A    schedule 28.04.2021