Definiowanie podstawowych zapytań przy użyciu usługi OData Analytics
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Korzystając z analizy dla usługi Azure DevOps, można tworzyć podstawowe i filtrowane zapytania, aby zwracać interesujące dane. Te zapytania można uruchamiać bezpośrednio w przeglądarce lub w usłudze Power BI.
Ten artykuł zawiera informacje zawarte w artykule Tworzenie zapytań OData na potrzeby analizy i dokumentacji metadanych dla usługi Azure Boards Analytics. Ponadto zapytania w tym artykule koncentrują się na pobieraniu zestawów jednostek śledzenia pracy, jednak zasady mają zastosowanie do wykonywania zapytań dotyczących innych zestawów jednostek.
W tym artykule dowiesz się, jak definiować zapytania zwracające następujące dane:
- Liczba elementów (brak innych danych)
- Liczba elementów i danych
- Właściwości zdefiniowane dla obszarów lub ścieżek iteracji
- Wybrane kolumny lub pola
- Przefiltrowane dane
- Zwracanie danych dla pól Tożsamość, Ścieżka obszaru i Ścieżka iteracji
- Filtrowanie według właściwości nawigacji
- Wykonywanie zapytań względem zakresu dat
- Zagnieżdżanie instrukcji expand
- Sortuj wyniki, opcję orderby
Uwaga
Usługa Analytics jest automatycznie włączona i obsługiwana w środowisku produkcyjnym dla wszystkich usług Azure DevOps Services. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest automatycznie instalowana i obsługiwana w środowisku produkcyjnym dla wszystkich nowych kolekcji projektów dla usługi Azure DevOps Server 2020 i nowszych wersji. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są ogólnie dostępne. Zachęcamy do korzystania z niego i przekazywania opinii. W przypadku uaktualnienia z usługi Azure DevOps Server 2019 możesz zainstalować usługę Analytics podczas uaktualniania.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Uwaga
Usługa Analytics jest dostępna w wersji zapoznawczej dla usługi Azure DevOps Server 2019. Możesz ją włączyć lub zainstalować dla kolekcji projektów. Integracja usługi Power BI i dostęp do źródła danych OData usługi Analytics są dostępne w wersji zapoznawczej. Zachęcamy do korzystania z niego i przekazywania opinii.
Dostępne dane są zależne od wersji. Najnowsza obsługiwana wersja to v2.0
, a najnowsza wersja zapoznawcza to v4.0-preview
. Aby uzyskać więcej informacji, zobacz Przechowywanie wersji interfejsu API OData.
Wymagania wstępne
- Dostęp: być członkiem projektu z co najmniej dostępem podstawowym.
- Uprawnienia: domyślnie członkowie projektu mają uprawnienia do wykonywania zapytań w usłudze Analytics i tworzenia widoków.
- Aby uzyskać więcej informacji na temat innych wymagań wstępnych dotyczących włączania usługi i funkcji oraz ogólnych działań śledzenia danych, zobacz Uprawnienia i wymagania wstępne dotyczące dostępu do analizy.
Uwaga
W tym artykule adres URL zapytania OData jest zdefiniowany dla usług Azure DevOps Services. Aby utworzyć podobne zapytanie dla serwera lokalnego, zapoznaj się ze wskazówkami podanymi w artykule Konstruowanie zapytań OData dla analizy. Zachęcamy do dostosowania zapytań dostarczonych dla twojej organizacji i projektu w celu zapoznania się z wykonywaniem zapytań OData przy użyciu przeglądarki.
Zwracanie liczby elementów (brak innych danych)
Aby dowiedzieć się więcej o liczbie elementów lub jednostek zdefiniowanych w organizacji lub projekcie, określ $apply=aggregate($count as Count)
opcję zapytania. Na przykład następujące zapytania zwracają liczbę projektów, elementów roboczych, ścieżek obszaru i użytkowników zdefiniowanych dla organizacji.
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Projects?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/WorkItems?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Areas?$apply=aggregate($count as Count)
https://analytics.dev.azure.com/{OrganizationName}/_odata/v4.0-preview/Users?$apply=aggregate($count as Count)
Napiwek
Zapytania między projektami kończą się niepowodzeniem, gdy użytkownik, na którym uruchomiono zapytanie, nie ma dostępu do wszystkich projektów. Przeczytaj więcej na temat wymagań dotyczących zapytań w zakresie projektu i organizacji.
Liczba projektów
@odata.context "https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Projects(Count)"
value
0
@odata.id null
Count 28
Liczba elementów roboczych
@odata.context "https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(Count)"
value
0
@odata.id null
Count 1166
Liczba obszarów
@odata.context "https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Areas(Count)"
value
0
@odata.id null
Count 70
Liczba użytkowników
@odata.context "https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#Areas(Count)"
value
0
@odata.id null
Count 16
Zwracanie liczby elementów i danych
Aby zwrócić liczbę elementów wraz z wybranymi danymi dla elementów, określ $count=true
opcję zapytania. Na przykład następujące zapytania zwracają liczbę elementów roboczych, ścieżek obszaru i użytkowników zdefiniowanych dla projektu wraz z określonymi właściwościami. Aby uzyskać prawidłowe właściwości, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics i daty kalendarza, projektu i dokumentacji metadanych użytkownika dla usługi Azure DevOps Analytics.
Napiwek
Jeśli nie określisz właściwości do zwrócenia, analiza zwróci wszystkie właściwości zdefiniowane dla określonego typu jednostki.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/WorkItems?$count=true&$select=WorkItemId,Title,WorkItemType
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/Areas?$count=true&$select=AreaName,AreaPath
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v4.0-preview/Users?$count=true&$select=UserName,UserEmail
Właściwości obszarów lub iteracji
Aby wyszukać AreaSK
właściwość lub IterationSK
lub inną ścieżkę obszaru lub ścieżkę iteracji, użyj następujących zapytań.
Zwracanie obszaruSK dla określonej ścieżki obszaru
Poniższe zapytanie określa, aby zwrócić właściwość zdefiniowaną AreaSK
dla ścieżki Fabrikam Fiber\Service Delivery\Internet Area. Aby określić inne właściwości zdefiniowane dla Areas
zestawu jednostek, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics, Obszary.
https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/Areas?$filter=AreaPath eq 'Fabrikam Fiber\Service Delivery\Internet' &$select=AreaSK
Zapytanie zwraca następujące dane.
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Areas(AreaSK)",
"value": [
{
"AreaSK": "637dc203-0549-4415-9663-b6358ac27d21"
}
]
}
Zwracanie iteracjiSK dla określonej ścieżki iteracji
Poniższe zapytanie określa, aby zwrócić właściwość zdefiniowaną IterationSK
dla ścieżki iteracji Fabrikam Fiber\Release 1\Sprint 3. Aby określić inne właściwości zdefiniowane dla Iterations
zestawu jednostek, zobacz Dokumentacja metadanych dla usługi Azure Boards Analytics, Iteracji.
https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/Iterations?$filter=IterationPath eq 'Fabrikam Fiber\Release 1\Sprint 3' &$select=IterationSK
Zapytanie zwraca następujące dane.
{
"@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Iterations(IterationSK)",
"value": [
{
"IterationSK": "862e961a-ac7a-4fcc-9ebc-8afd0c12fed5"
}
]
}
Zwracanie określonych właściwości lub pól
Aby zwrócić określone właściwości lub pola elementu roboczego, dodaj klauzulę określającą $select
nazwy właściwości.
Aby na przykład zwrócić identyfikator elementu roboczego, typ elementu roboczego, tytuł i stan elementów roboczych, dodaj następującą klauzulę do zapytania. Ta klauzula określa właściwości, które odpowiadają nazwanym polam.
Uwaga
Nazwy właściwości nie zawierają żadnych spacji. Zapytanie zakończy się niepowodzeniem, jeśli dodasz spacje. Zapytania OData wymagają uwagi na odstępy i wielkość liter. Aby zrozumieć, w jaki sposób właściwości pól niestandardowych są oznaczone, zobacz Dokumentacja metadanych dla usługi Azure Boards, właściwości niestandardowych.
W tym miejscu określimy, aby zwrócić trzy najważniejsze elementy robocze.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$top=3
Analiza zwraca następujące dane.
@odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State)"
value
0
WorkItemId 462
Title "Test case"
WorkItemType "Test Case"
State "Design"
1
WorkItemId 491
Title "Change color settings"
WorkItemType "Shared Steps"
State "Active"
2
WorkItemId 461
Title "Test impediment"
WorkItemType "Impediment"
State "Open"
.
Filtrowanie danych
Aby filtrować jednostkę ustawioną w celu zwrócenia wybranych elementów, określ klauzulę określającą $filter
kryteria, które muszą spełniać elementy. Opierając się na ostatnim zapytaniu, dodamy tutaj klauzulę filtru, aby zwracać tylko typy elementów roboczych funkcji , które znajdują się w stanie W toku .
/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=State eq 'In Progress'
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemType eq 'Feature' and State eq 'In Progress'&$select=WorkItemId,Title,AssignedTo,State
Analiza zwraca następujące dane.
@odata.context "https://analytics.dev.azure.com/kelliott/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,State)"
value
0
WorkItemId 380
Title "Refresh web look, feel, performance factors"
State "In Progress"
1
WorkItemId 480
Title "Customer Phone - Phase 1"
State "In Progress"
2
WorkItemId 493
Title "Change initial view"
State "In Progress"
3
WorkItemId 479
Title "Customer Web - Phase 1"
State "In Progress"
4
WorkItemId 551
Title "Mobile feedback"
State "In Progress"
Określ kilka klauzul filtru
Można użyć funkcji AND
i OR
, aby określić kilka klauzul filtru.
Na przykład następujące zapytanie określa, aby zwracać elementy robocze typu Historia użytkownika, Usterka i Praca zaległości (niestandardowy typ elementu roboczego), które znajdują się w stanach Nowy, Zatwierdzony lub Aktywny. Użyj nawiasu, aby grupować klauzule filtru zgodnie z potrzebami.
Ponadto można zastosować różne funkcje, takie jak contains
, startswith
endswith
i inne. Zobacz Obsługiwane funkcje i klauzule OData, Obsługiwane funkcje.
Zwracanie danych dla pól Tożsamość, Ścieżka obszaru i Ścieżka iteracji
Wybierz właściwości są skojarzone z właściwościami nawigacji i nie są bezpośrednio dostępne przy użyciu instrukcji $select
. Aby zwrócić interesujące dane, musisz użyć instrukcji $expand
. Te właściwości są często kojarzone z kilkoma własnymi właściwościami. Na przykład przy użyciu pól Tożsamość można określić, aby zwrócić nazwę użytkownika lub adres e-mail użytkownika.
W poniższej tabeli przedstawiono przykłady rozwijania kilku z tych właściwości.
Wpisz pola | Przywoływna właściwość | Przykładowe klauzule do uwzględnienia |
---|---|---|
DateTime | DateSK |
$expand=CreatedDate($select=Date) lub$expand=CreatedDate($select=WeekStartingDate) |
Tożsamość | UserSK |
$expand=AssignedTo($select=UserName) lub$expand=AssignedTo($select=UserEmail) |
Obszar | AreaSK |
$expand=Area($select=AreaName) lub$expand=Area($select=AreaPath) |
Iteracja | IterationSK |
$expand=Iteration($select=IterationName) lub$expand=Iteration($select=IterationPath) lub$expand=Iteration($select=StartDate) |
Project | ProjectSK |
$expand=Project($select=ProjectName) |
Zespół | TeamSK |
$expand=Teams($select=TeamName) |
Aby określić kilka właściwości, które należy rozwinąć, należy określić je w jednej klauzuli rozwijania na liście rozdzielanej przecinkami.
$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath)
Filtrowanie według właściwości nawigacji
Po określeniu właściwości nawigacji w ramach kryteriów filtrowania należy określić ją w wymaganym formacie.
Na przykład poniższa klauzula określa filtrowanie elementów roboczych na podstawie iteracji 1 zdefiniowanej dla projektu.
/WorkItems?$filter=Iteration/IterationPath eq 'Project Name\Iteration 1'
W tym przykładzie Iteration
jest nazwą właściwości nawigacji i IterationPath
odpowiada pełnej ścieżce iteracji. Aby użyć innej jednostki jako filtru, umieść właściwość nawigacji, po której następuje ukośnik, a następnie nazwę pola do filtrowania.
Oto pełne zapytanie OData:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$filter=Iteration/IterationPath eq 'Project Name\Iteration 1'
Oto kolejny przykład, który żąda pięciu pierwszych elementów roboczych w obszarze Fabrikam Fiber\Service Delivery\Voice Area Path są zwracane.
https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$top=5&$filter=Area/AreaPath eq 'Fabrikam Fiber\Service Delivery\Voice'&$select=WorkItemId, WorkItemType, Title, State&$orderby=WorkItemId asc
@odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State)"
value
0
WorkItemId 361
Title "Hello World Web Site"
WorkItemType "Product Backlog Item"
State "Removed"
1
WorkItemId 362
Title "Resume"
WorkItemType "Product Backlog Item"
State "New"
2
WorkItemId 363
Title "Welcome back page"
WorkItemType "Product Backlog Item"
State "Done"
3
WorkItemId 365
Title "Pause"
WorkItemType "Feature"
State "New"
4
WorkItemId 374
Title "Fix performance issues"
WorkItemType "Task"
State "To Do"
Napiwek
Nie można użyć właściwości nawigacji bezpośrednio w instrukcji $select
. Zamiast tego należy użyć polecenia $expand
.
Poprzedni przykład filtrowania dla ścieżki iteracji nie zwraca ścieżki iteracji, ponieważ znajduje się w powiązanej jednostce. Aby zwrócić dane w powiązanej jednostce, dodaj instrukcję $expand
:
/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=WorkItemId eq 10000&$expand=Iteration
Oto przykład, który zwraca informacje przypisane do elementu roboczego o identyfikatorze 480.
https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemId eq 480&$select=WorkItemId,WorkItemType,Title,State&&$expand=Iteration
@odata.context "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration)"
value
0
WorkItemId 480
Title "Customer Phone - Phase 1"
WorkItemType "Feature"
State "In Progress"
Iteration
ProjectSK "56af920d-393b-4236-9a07-24439ccaa85c"
IterationSK "c7063041-ff3a-4d7f-bb46-c433c7030d59"
IterationId "c7063041-ff3a-4d7f-bb46-c433c7030d59"
IterationName "Sprint 1"
Number 55297
IterationPath "Fabrikam Fiber\\Release 1\\Sprint 1"
StartDate "2022-01-17T00:00:00-08:00"
EndDate "2022-02-04T23:59:59.999-08:00"
IterationLevel1 "Fabrikam Fiber"
IterationLevel2 "Release 1"
IterationLevel3 "Sprint 1"
IterationLevel4 null
IterationLevel5 null
IterationLevel6 null
IterationLevel7 null
IterationLevel8 null
IterationLevel9 null
IterationLevel10 null
IterationLevel11 null
IterationLevel12 null
IterationLevel13 null
IterationLevel14 null
Depth 2
IsEnded true
AnalyticsUpdatedDate "2022-01-18T22:18:58.17Z"
Jak widać, ścieżka iteracji jest rozwinięta w wyniku i zwracane są wszystkie dane iteracji. Prawdopodobnie jest to więcej danych niż chcesz.
Aby zwrócić mniej danych, dodaj również instrukcję $select
względem iteracji:
/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=WorkItemId eq 10000&$expand=Iteration($select=Name,IterationPath)
Następnie zwraca następujące dane.
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration,Iteration(Name,IterationPath))",
"value":[
{
"WorkItemId":10000,
"WorkItemType":"Task",
"Title":"Some title",
"State":"Completed",
"Iteration":{
"Name":"Sprint 55",
"IterationPath":"Fabrikam\\Sprints\\Sprint 55"
}
}
]
}
Wykonywanie zapytań względem zakresu dat
Poniższy przykład zwraca elementy robocze, których data zmiany jest większa niż równa 1 stycznia 2021 r.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=ChangedDate ge 2021-01-01Z
Poniższy przykład zwraca elementy robocze, których data zmiany przypada w tygodniu od 26 kwietnia do 30 kwietnia 2021 r.
https://analytics.dev.azure.com{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?$select=WorkItemId,WorkItemType,Title,State&$filter=ChangedDate ge 2021-04-26Z&ChangedDate le 2021-04-30Z
Zagnieżdżanie instrukcji expand
W usłudze OData można zagnieżdżać $expand
instrukcje. Na przykład możesz napisać poprzednią instrukcję zapytania, aby wyświetlić projekt, w którym iteracja jest częścią:
/WorkItems?$filter=WorkItemId eq 10000&$expand=Iteration($expand=Project)
Zwraca on następujący kod JSON:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems",
"value":[
{
"WorkItemId":10000,
"Revision":3,
"Watermark":283397,
"Title":"Production deployment and testing for Entitlement API v2 and Subscriber database",
"WorkItemType":"Task",
"ChangedDate":"2014-07-10T19:29:58.41Z",
"CreatedDate":"2014-04-19T22:44:58.31Z",
"State":"Completed",
"Reason":"Completed",
"Priority":2,
"CompletedWork":10.0,
"OriginalEstimate":20.0,
"Count":1,
"Iteration":{
"IterationId":"7a2c246e-fc62-41af-ad18-62332017bc46",
"Name":"Sprint 55",
"Number":13021,
"IterationPath":"Fabrikam\\Sprints\\Sprint 55",
"StartDate":"2013-09-23T00:00:00Z",
"EndDate":"2013-10-11T00:00:00Z",
"IterationLevel1":"Fabrikam",
"IterationLevel2":" Sprints",
"IterationLevel3":"Sprint 55",
"Level":2,
"IsDeleted":false,
"Project":{
"ProjectId":"b924d696-3eae-4116-8443-9a18392d8544",
"ProjectName":"Fabrikam",
"IsDeleted":false
}
}
}
]
}
Można również połączyć $expand
instrukcje i $select
. Można na przykład zmienić poprzednie zapytanie tak, aby zwracało tylko nazwę iteracji i ścieżkę iteracji:
/WorkItems?$filter=WorkItemId eq 10000&$expand=Iteration($select=IterationId,IterationPath;$expand=Project)
Zwraca on następujący kod JSON:
{
"@odata.context":"https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/$metadata#WorkItems(Iteration(IterationId,IterationPath,Project))",
"value":[
{
"WorkItemId":10000,
"Revision":3,
"Watermark":283397,
"Title":"Production deployment and testing for Entitlement API v2 and Subscriber database","WorkItemType":"Task",
"ChangedDate":"2014-07-10T19:29:58.41Z",
"CreatedDate":"2014-04-19T22:44:58.31Z",
"State":"Completed",
"Reason":"Completed",
"Priority":2,
"CompletedWork":10.0,
"OriginalEstimate":20.0,
"Count":1,
"Iteration":{
"IterationId":"7a2c246e-fc62-41af-ad18-62332017bc46","IterationPath":"Fabrikam\\Sprints\\Sprint 55",
"Project":{
"ProjectId":"b924d696-3eae-4116-8443-9a18392d8544",
"ProjectName":"Fabrikam",
"IsDeleted":false
}
}
}
]
}
Zwróć uwagę, że w tym miejscu wynik pokazuje tylko iteracjiId i IterationPath oraz że projekt jest obiektem zagnieżdżonym w wyniku JSON. Innym kluczowym elementem do zanotowania jest sam adres URL. W przypadku używania instrukcji $select
i $expand
klauzuli należy użyć średnika (;) przed .$expand
Wszystkie inne elementy spowodują błąd.
Sortowanie wyników, orderby
opcja
Określ opcję sortowania $orderby
wyników lub określ sekwencję, w której są zwracane wyniki. Można sortować w kolejności rosnącej lub malejącej przy użyciu słów kluczowych asc
lub desc
, odpowiednio. Pokazano kilka przykładów
Sortuj według | Klauzula do uwzględnienia |
---|---|
Identyfikator elementu roboczego | /WorkItems?$orderby=WorkItemId |
Identyfikator elementu roboczego malejąco | /WorkItems?$orderby=WorkItemId desc |
Typ elementu roboczego i stan | /WorkItems?$orderby=WorkItemType,State |
Następne kroki
Powiązane artykuły
- Konstruowanie zapytań OData na potrzeby analizy
- Dokumentacja metadanych usługi Azure Boards Analytics
- Najlepsze rozwiązania dotyczące używania podczas wykonywania zapytań w usłudze Analytics
- Obsługiwane funkcje OData
- Specyfikacja OData w wersji 4.0
- OData v4.0 — część 2: Konwencje adresów URL Plus Errata 02