Przykładowe raporty dotyczące postępu przebiegu
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Wykresy postępu przebiegu są przydatne do monitorowania, jak dobrze zespół wykonuje swój plan przebiegu. Kilka wbudowanych wykresów i widżetów pulpitów nawigacyjnych obsługuje monitorowanie postępu przebiegu. Zobacz Konfigurowanie i monitorowanie postępu przebiegu.
Można jednak dostosować wykres postępu przebiegu przy użyciu analizy i usługi Power BI z zapytaniami podanymi w tym artykule. W poniższym przykładzie pokazano wypalenie scenariuszy użytkownika i ich stanów.
Ważne
- Usunięcie ścieżek obszaru lub ponowne skonfigurowanie ścieżek iteracji powoduje nieodwracalną utratę danych. Na przykład wykresy z widżetami burndown i burnup, burndown i velocity charts dla zespołów ze zmienionymi ścieżkami obszaru nie będą wyświetlać dokładnych danych. Historyczne wykresy trendów odwołują się do ścieżki obszaru i ścieżki iteracji, ponieważ zostały one zdefiniowane w czasie dla każdego elementu roboczego. Po usunięciu nie można pobrać danych historycznych dla tych ścieżek.
- Można usuwać tylko ścieżki obszaru i iteracji, które nie są już używane przez żadne elementy robocze.
Aby uzyskać więcej informacji na temat burndown i burnup, oraz Burndown i burnup guidance (Burndown i burnup guidance).
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
Wykresy burndown wymagają wykonywania zapytań względem zestawu jednostek w WorkItemSnapshot
celu pobrania danych historycznych.
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 .
Scenariusze użytkownika burndown dla ścieżki obszaru i bieżącej iteracji
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/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"aggregate($count as Count, 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}
.
{areapath}
— Ścieżka obszaru. Przykładowy format:Project\Level1\Level2
.
Podział zapytań
W poniższej tabeli opisano każdą część zapytania.
Część kwerendy
Opis
$apply=filter(
Filtr początkowy()
WorkItemType eq 'User Story'
Burndown on User Stories
and startswith(Area/AreaPath,'{areapath}')
Elementy robocze w ramach określonej ścieżki obszaru. Zamienianie na Area/AreaPath eq '{areapath}'
elementy zwracane w określonej ścieżce obszaru.
Aby filtrować według nazwy zespołu, użyj instrukcji filter Teams/any(x:x/TeamName eq '{teamname})'
and StateCategory ne 'Completed'
Filtruje ukończone elementy. Aby uzyskać więcej informacji na temat kategorii stanów, zobacz How workflow states and state categories are used in Backlogs and Boards (Jak są używane stany przepływu pracy i kategorie stanów w listach prac i tablicach).
and DateValue ge Iteration/StartDate
Rozpocznij trend na początku iteracji.
and DateValue le Iteration/EndDate
Koniec trendu na końcu iteracji.
and Iteration/StartDate le now()
Wybierz bieżącą iterację.
and Iteration/EndDate ge now()
Wybierz bieżącą iterację
)
Zamknij filtr()
/groupby(
Rozpocznij grupowanie()
(DateValue, State, WorkItemType, Priority, Area/AreaPath, Iteration/IterationPath),
Grupuj według wartości DateValue (używanej do trendów) i wszystkie pola, dla których chcesz raportować
aggregate($count as Count, StoryPoints with sum as TotalStoryPoints)
Agregowanie według liczby scenariuszy użytkownika i suma punktów scenariuszy
)
Zamknij grupowanie()
Scenariusze użytkownika burndown dla zespołu i bieżącej iteracji
To zapytanie jest takie samo jak użyte powyżej, z wyjątkiem filtrów 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/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"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 StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Scenariusze użytkownika burndown dla wszystkich przebiegów od początku roku
Możesz wyświetlić spalenie wszystkich przebiegów w jednym raporcie. Te zapytania ściągają przebiegi, a ich według punktów historii, dla wszystkich przebiegów od początku roku 2022.
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/WorkItemSnapshot? "
&"$apply=filter( "
&"WorkItemType eq 'User Story' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate ge 2022-01-01Z "
&") "
&"/groupby( "
&"(DateValue,Iteration/EndDate,Area/AreaPath,Iteration/IterationPath,State,WorkItemType,Priority,AreaSK), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zadania wypalenia i praca pozostała
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.
Doc-ready Power BI Query (anonymized)
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItemSnapshot? "
&"$apply=filter( "
&"startswith(Area/AreaPath,'{project}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&"and WorkItemType eq 'Task' "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Activity,Priority,Area/AreaPath,Iteration/IterationPath,AreaSK), "
&"aggregate($count as Count, RemainingWork with sum as TotalRemainingWork) "
&") "
,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 Edytor Power Query
Przed utworzeniem raportu należy rozwinąć kolumny zwracające rekordy zawierające kilka pól. W tym przypadku należy rozwinąć następujące rekordy:
Area
Iteration
AssignedTo
Aby dowiedzieć się, jak rozwinąć elementy robocze, zobacz Transform Analytics data to generate Power BI reports (Przekształcanie danych analizy w celu generowania raportów usługi Power BI).
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 skumulowanego raportu wykresu kolumnowego
W usłudze Power BI wybierz raport Skumulowany wykres kolumnowy w obszarze Wizualizacje.
Dodaj
DateValue
do osi X, kliknij prawym przyciskiem myszy i wybierz polecenieDateValue
, a nieDate Hierarchy
Dodaj
Count
do osi Y.Dodaj
State
do osi Y.
Przykładowy raport, który wyświetla wypalenie zarówno w punktach historii, jak i w liczbie historii.
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