Zbiorcze wartości podrzędnych elementów roboczych do nadrzędnego przykładowego raportu
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Pakiet zbiorczy zapewnia obsługę wyświetlania liczby elementów roboczych lub sumy punktów historii, pracy pozostałej lub innego pola niestandardowego elementów podrzędnych. Ten artykuł zawiera kilka przykładów generowania tabelarycznego raportu zbiorczego dla epików, funkcji lub scenariuszy użytkownika zawierających podrzędne elementy robocze. Na poniższej ilustracji przedstawiono przykład punktów scenariuszy zwijanych dla ich nadrzędnych funkcji.
Aby uzyskać więcej informacji na temat zestawienia i opcji wyświetlania zestawienia, zobacz Wyświetlanie postępu zestawienia lub sum w usłudze Azure Boards.
Uwaga
W tym artykule założono, że zapoznasz się z omówieniem przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat usługi Power BI.
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.
Przykładowe zapytania
Następujące zapytania zwracają dane z WorkItems
zestawu jednostek, aby obsługiwać generowanie raportów macierzy zestawień.
Uwaga
Aby określić dostępne właściwości dla celów filtru lub raportu, zobacz Dokumentacja metadanych dla usługi Azure Boards. Możesz filtrować zapytania lub zwracać właściwości przy użyciu dowolnej z Property
wartości dostępnych EntityType
w elemecie EntitySet
lub NavigationPropertyBinding Path
. Każda z nich EntitySet
odpowiada elementowi EntityType
. Aby uzyskać więcej informacji na temat typu danych każdej wartości, zapoznaj się z metadanymi podanymi dla odpowiedniego EntityType
elementu .
Scenariusz zbiorczy wskazuje funkcje podrzędnych scenariuszy użytkownika na podstawie ścieżki obszaru
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Ciągi podstawienia i podział zapytań
Zastąp następujące ciągi wartościami. Nie dołączaj nawiasów {} do podstawienia. Na przykład jeśli nazwa organizacji to "Fabrikam", zastąp Fabrikam
ciąg {organization}
, a nie {Fabrikam}
.
{organization}
— Nazwa organizacji{project}
— Nazwa projektu zespołowego lub całkowicie pomiń "/{project}" dla zapytania obejmującego wiele projektów{areapath}
— Ścieżka obszaru. Przykładowy format:Project\Level1\Level2
.
Podział zapytań
W poniższej tabeli opisano każdą część zapytania.
Część kwerendy
Opis
$filter=WorkItemType eq 'Feature'
Funkcje zwracane.
and State ne 'Cut'
Pomiń zamknięte usterki.
and startswith(Area/AreaPath,'{areapath}')
Zwraca elementy robocze w ramach określonej ścieżki obszaru, zastępując Area/AreaPath eq '{areapath}'
elementy zwracane w określonej ścieżce obszaru.
Aby filtrować według nazwy zespołu, użyj instrukcji Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Descendants/any()
Uwzględnij wszystkie funkcje, nawet te bez scenariuszy użytkownika. Zastąp ciąg "any(d/WorkItemType eq 'User Story')", aby pominąć funkcje, które nie mają podrzędnych scenariuszy użytkownika.
&$select=WorkItemId, Title, WorkItemType, State
Wybierz pola, które mają być zwracane.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Wybierz pola AssignedTo
właściwości z możliwością rozwinięcia, , Iteration
Area
.
Descendants(
Rozwiń klauzulę Descendants
.
$apply=filter(WorkItemType eq 'User Story')
Filtruj elementy podrzędne, aby uwzględniały tylko scenariusze użytkownika (pomija zadania i usterki).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Dla wszystkich elementów potomnych pasujących do klauzuli filter zliczaj je i sumuj StoryPoints
właściwość.
)
Zamknij element Descendants()
.
Scenariusz zestawienia wskazuje funkcje podrzędnych scenariuszy użytkownika w oparciu o zespoły
Poniższe zapytania pokazują, jak generować raporty zestawienia filtrowania według nazwy zespołu, a nie ścieżki obszaru.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Cut'"
&" and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname})"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Rzutowy scenariusz wskazuje epiki
W poniższych zapytaniach można rzutować historię punktów epików.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Epic'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any(d:d/WorkItemType eq 'User Story')"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate(StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zadania zestawienia pozostałych zadań roboczych i ukończonych pracy w scenariuszach użytkownika
Poniższe zapytanie pokazuje, jak rzutować pozostałe zadania pracy i ukończone przydzielone do podrzędnych zadań do scenariuszy użytkownika w hierarchii. Te zapytania zakładają, że zadania są przypisywane jako elementy podrzędne scenariusza użytkownika w określonej ścieżce obszaru.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'User Story'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Task')"
&"/aggregate(RemainingWork with sum as TotalRemainingWork, CompletedWork with sum as TotalCompletedWork)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Liczba usterek zestawienia do funkcji
Poniższe zapytania pokazują, jak utworzyć zestawienie liczby usterek przypisanych do funkcji. Te zapytania zakładają, że usterki są zdefiniowane jako elementy podrzędne funkcji w określonej ścieżce obszaru.
Skopiuj i wklej następujące zapytanie usługi Power BI bezpośrednio w oknie Pobieranie pustego >zapytania. Aby uzyskać więcej informacji, zobacz Omówienie przykładowych raportów przy użyciu zapytań OData.
let
Source = OData.Feed("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Bug')"
&"/aggregate($count as CountOfBugs)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Opcjonalnie) Zmienianie nazwy zapytania
Możesz zmienić nazwę domyślnej etykiety zapytania Query1 na bardziej zrozumiałą. Po prostu wprowadź nową nazwę w okienku Ustawienia zapytania.
Rozwijanie kolumn w usłudze Power BI
Klauzula &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
zwraca rekordy zawierające kilka pól. Przed utworzeniem raportu należy rozwinąć rekord, aby spłaszczać go w określone pola. W tym przypadku należy rozwinąć następujące rekordy:
AssignedTo
AreaPath
IterationPath
Aby dowiedzieć się, jak to zrobić, zobacz Transform Analytics data to generate Power BI reports (Przekształcanie danych analizy w celu generowania raportów usługi Power BI).
(Opcjonalnie) Zmienianie nazwy pól
Po rozwinięciu kolumn możesz zmienić nazwę co najmniej jednego pola. Możesz na przykład zmienić nazwę kolumny AreaPath
na Area Path
. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie nazwy pól kolumn.
Zastępowanie wartości null w polach zestawienia
Jeśli element roboczy nie ma żadnych elementów podrzędnych, wartość zestawienia może mieć wartość null. Na przykład element Potomny.CountOfUserStories ma wartość "null", jeśli funkcja nie ma żadnych podrzędnych scenariuszy użytkownika.
Aby ułatwić raportowanie, zastąp wszystkie wartości null wartością zero, wykonując następujące kroki.
- Wybierz kolumnę, klikając nagłówek kolumny.
- Wybierz menu Przekształć.
- Wybierz pozycję Zamień wartości. Zostanie wyświetlone okno dialogowe Zamień wartości .
- Wprowadź wartość "null" w polu Wartość, aby znaleźć.
- Wprowadź ciąg "0" w polu Zamień na.
- Wybierz pozycję OK.
Powtórz dla wszystkich kolumn zestawienia.
Zamknij zapytanie i zastosuj zmiany
Po zakończeniu wszystkich przekształceń danych wybierz pozycję Zamknij i zastosuj z menu Narzędzia główne , aby zapisać zapytanie i wrócić do karty Raport w usłudze Power BI.
Tworzenie raportu tabeli
W usłudze Power BI wybierz raport Tabela w obszarze Wizualizacje.
Dodaj następujące pola do kolumn w podanej kolejności:
WorkItemI
wybierz pozycję Nie sumuj , aby w razie potrzeby pokazać identyfikatorWorkItemType
Title
State
Count of User Stories
Total Story Points
.
Zostanie wyświetlony przykładowy raport.
Powiązane artykuły
- Eksplorowanie przykładowych raportów przy użyciu zapytań OData
- Konstruowanie zapytań OData na potrzeby analizy
- Nawiązywanie połączenia z usługą Power BI przy użyciu zapytań OData
- Zapoznaj się z metadanymi usługi Azure Boards Analytics
- Uzyskiwanie dostępu do przykładowych raportów i szybkiego indeksu referencyjnego
- Dodawanie fragmentatora zespołu do istniejącego raportu