Power BI, как получить значение настраиваемого настраиваемого поля Project Online для задачи? - PullRequest
0 голосов
/ 30 апреля 2019

Вы можете использовать канал 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, то мог бы связать идентификатор записи с таблицей поиска, чтобы получить правильное значение поля настраиваемой задачи.

...