Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Funkcja zbiorcza zapewnia obsługę wyświetlania liczby elementów roboczych lub sumy Punktów Historii, Pracy Pozostałej albo innego pola niestandardowego w elementach 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 Story zsumowanych dla Funkcji nadrzędnych.
Więcej informacji o agregacji i opcjach wyświetlania agregacji znajdziesz w artykule Wyświetlanie postępu agregacji lub sum w usłudze Azure Boards.
Uwaga
W tym artykule założono, że zapoznałeś się z dokumentem Omówienie przykładowych raportów przy użyciu zapytań OData oraz że masz podstawową wiedzę na temat usługi Power BI.
| Kategoria | Wymagania |
|---|---|
| poziomy dostępu |
-
Członek projektu. — Co najmniej podstawowy dostęp. |
| Uprawnienia użytkownika | 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 w celu wspierania generowania raportów z 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 w elemencie EntityType lub NavigationPropertyBinding Path wartości dostępnych z EntitySet. 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 EntityTypeelementu .
Scenariusz zbiorczy wskazuje funkcje podrzędnych scenariuszy użytkownika na podstawie ścieżki obszaru
Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w oknie Pobierz dane>Puste zapytanie. 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
Łańcuchy podstawienia i analiza zapytań
Zastąp następujące ciągi wartościami. Nie dołączaj nawiasów {} do zamiany. Na przykład jeśli nazwa organizacji to "Fabrikam", zastąp {organization}ciąg Fabrikam , a nie {Fabrikam}.
-
{organization}— Nazwa organizacji -
{project}— Nazwa projektu zespołowego lub całkowicie pomiń "/{project}" dla zapytania obejmującego wiele projektów -
{areapath}— Twoja ś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 zwrotu.
and State ne 'Cut'
Pomiń zamknięte usterki.
and startswith(Area/AreaPath,'{areapath}')
Zwraca elementy robocze w ramach określonej ścieżki obszaru, a zastąpienie Area/AreaPath eq '{areapath}' zwraca elementy 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: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 właściwości z możliwością rozwinięcia: AssignedTo, Iteration, Area.
Descendants(
Rozwiń klauzulę Descendants .
$apply=filter(WorkItemType eq 'User Story')
Filtruj elementy podrzędne, aby uwzględniały tylko historyjki użytkownika (pomija zadania i usterki).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Dla wszystkich elementów potomnych odpowiadających klauzuli filtru, zlicz je i podsumuj właściwość StoryPoints.
)
Zamknij Descendants().
Zestawienie punktów historyjek dla funkcji podrzędnych historyjek użytkownika według zespołów
Poniższe zapytania pokazują, jak generować raporty zestawień z filtrowaniem według nazwy zespołu zamiast ścieżki obszaru.
Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w oknie Pobierz dane>Puste zapytanie. 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
Sumowanie punktów historii do epików
W poniższych zapytaniach można sumować punkty historyczne do Epików.
Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w oknie Pobierz dane>Puste zapytanie. 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
Zestawienie pozostałej i ukończonej pracy do historyjek użytkownika
Poniższe zapytanie pokazuje, jak zestawić pozostałą pracę i wykonaną pracę przydzieloną do podrzędnych zadań i powiązać je z scenariuszami 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 Power BI bezpośrednio w oknie Pobierz dane>Puste zapytanie. 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 podsumowana według cech
Poniższe zapytania pokazują, jak utworzyć zestawienie liczby usterek przypisanych do funkcji. Te zapytania zakładają, że błędy są zdefiniowane jako elementy podrzędne cechy w określonej ścieżce obszaru.
Skopiuj i wklej następujące zapytanie Power BI bezpośrednio w oknie Pobierz dane>Puste zapytanie. 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 przekształcić go w określone pola. W tym przypadku powinieneś rozwinąć następujące rekordy:
AssignedToAreaPathIterationPath
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.
Zamień wartości null w polach podsumowania
Jeśli element roboczy nie ma żadnych elementów podrzędnych, wartość zestawienia może być pusta. Na przykład, Descendants.CountOfUserStories ma wartość "null", jeśli Funkcja nie ma żadnych podrzędnych historyjek użytkowników.
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ź "null" w polu Wartość do znalezienia.
- Wprowadź "0" w polu Zamień na.
- Wybierz pozycję OK.
Powtórz dla wszystkich kolumn podsumowania.
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.
Utwórz raport tabeli
W usłudze Power BI wybierz raport Tabela w obszarze Wizualizacje.
Dodaj następujące pola do kolumn w podanej kolejności:
-
WorkItemIwybierz pozycję Nie sumuj , aby w razie potrzeby pokazać identyfikator WorkItemTypeTitleStateCount 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
- Dodaj fragmentator dla zespołu do istniejącego raportu