Возвращает только самую последнюю запись из связанного объекта в запросе OData

#azure-devops #powerbi #odata

#azure-devops #powerbi #odata

Вопрос:

Я пытаюсь создать запрос OData для возврата ошибок из Azure DevOps для отчета PowerBI, но я не получаю результатов, которые ищу, поскольку одна из связанных сущностей, которую я пытаюсь расширить, возвращает несколько результатов.

Мой базовый запрос выглядит следующим образом (упрощение и удаление пользовательских полей)

 https://analytics.dev.azure.com/[organization]/[project]/_odata/v3.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State,LeadTimeDaysamp;$filter=WorkItemType eq 'bug'amp;$expand=Teams($select=TeamName,AnalyticsUpdatedDate)
  

Некоторые записи возвращают несколько имен команд в ответе JSON

 "value": [
{
  "WorkItemId": 16547,
  "LeadTimeDays": 173.0639004,
  "Title": "test",
  "WorkItemType": "Bug",
  "State": "Closed",
  "Severity": "3 - Medium",
  "Teams": [
    {
      "TeamName": "Team1",
      "AnalyticsUpdatedDate": "2019-09-17T01:48:46.5433333Z"
    },
    {
      "TeamName": "Team2",
      "AnalyticsUpdatedDate": "2019-12-03T16:52:39.9466667Z"
    }
  ]
}
  

]

Я не могу сказать, почему эти записи имеют несколько значений для этого объекта, но мне нужно только самое последнее (команда 2 в примере выше). Возможно ли вернуть только самую последнюю запись для связанного объекта Teams? Я пытался использовать orderby и top в предложении expand и других местах в запросе, но безрезультатно. Если я не могу сделать это в запросе OData, я могу выполнить это в Power BI после расширения таблицы.

Ответ №1:

Я нашел, как это решить. Мне нужны были точки с запятой между предложениями в предложении Expand .

 https://analytics.dev.azure.com/[organization]/[projet]_odata/v3.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State,LeadTimeDaysamp;$filter=WorkItemType eq 'bug'amp;$expand=Teams($select=TeamName,AnalyticsUpdatedDate;$orderby=AnalyticsUpdatedDate desc;$top=1)
  

Комментарии:

1. Пожалуйста, примите ваш ответ в качестве ответа , это может быть полезно для других участников сообщества, читающих эту тему.