#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. Пожалуйста, примите ваш ответ в качестве ответа , это может быть полезно для других участников сообщества, читающих эту тему.