Вы можете использовать канал PowerBI Odata для получения данных о задачах из Project Online с помощью API-интерфейса REST ProjectServer. Например, попробуйте это в вашем браузере (после входа в Project Online):
https://[yourtenant].sharepoint.com/sites/[yoursite]/_api/ProjectServer/Projects('[projectGUID]')/Tasks('[taskGUID]')
Если вы сделаете это, вы получите в браузере возвращаемые значения, которые выглядят примерно так:
<content type="application/xml">
<m:properties>
<d:Id m:type="Edm.Guid">83e390a8-d357-e911-afb5-00155d0c6b26</d:Id>
<d:OutlinePosition>2</d:OutlinePosition>
<d:ActualFinish m:type="Edm.DateTime">0001-01-01T00:00:00</d:ActualFinish>
<d:ActualStart m:type="Edm.DateTime">0001-01-01T00:00:00</d:ActualStart>
<d:Cost m:type="Edm.Double">13591.68</d:Cost>
<d:Duration>4d</d:Duration>
<d:Finish m:type="Edm.DateTime">2019-04-10T17:00:00</d:Finish>
<d:IsActive m:type="Edm.Boolean">true</d:IsActive>
<d:Name>Develop Analysis of Alternatives (AoA) Study Guidance</d:Name>
<d:OutlineLevel m:type="Edm.Int32">1</d:OutlineLevel>
<d:PercentComplete m:type="Edm.Int32">0</d:PercentComplete>
<d:PercentPhysicalWorkComplete m:type="Edm.Int32">0</d:PercentPhysicalWorkComplete>
<d:RemainingDuration>4d</d:RemainingDuration>
<d:Start m:type="Edm.DateTime">2019-04-05T08:00:00</d:Start>
<d:Work>160h</d:Work>
<d:Custom_x005f_90eaefb93561e911afb900155d0c3815 m:type="Collection(Edm.String)">
<d:element>Entry_da588e9e3561e911afb900155d0c3815</d:element>
</d:Custom_x005f_90eaefb93561e911afb900155d0c3815>
/m:properties>
</content>
Однако при попытке использовать тот же URI REST, что и в источнике OData, вы получаете следующую ошибку:
DataSource.Error: Не удалось проанализировать результат ответа OData. Ошибка: A
значение без имени типа найдено, и ожидаемый тип недоступен.
Когда модель указана, каждое значение в полезной нагрузке должно иметь
тип, который может быть либо указан в полезной нагрузке, явно
вызывающий или неявно выведенный из родительского значения.
Обратите внимание на
<d:element>Entry_da588e9e3561e911afb900155d0c3815</d:element>
У тега
нет атрибута "m: type"; Я думаю, что это сбивает с толку PowerBI.
Как мне обойти это? Если бы я мог извлечь значение элемента в PowerBI, то мог бы связать идентификатор записи с таблицей поиска, чтобы получить правильное значение поля настраиваемой задачи.