Przykładowy raport zestawienia postępu funkcji
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
W tym artykule pokazano, jak utworzyć skumulowany raport słupkowy w celu wyświetlenia postępu funkcji na podstawie ukończonych podrzędnych scenariuszy użytkownika. W raporcie jest wyświetlana wartość procentowa ukończona przez zestawienie punktów scenariuszy dla danego zestawu aktywnych funkcji. Przykład pokazano na poniższej ilustracji.
Podobne wykresy słupkowe postępu można wyświetlić z listy prac, dodając kolumnę zestawienia. Aby dowiedzieć się, jak to zrobić, zobacz Wyświetlanie postępu zestawienia lub sum.
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
Postęp funkcji wysyła zapytanie do jednostki, WorkItems
aby uzyskać bieżący stan postępu.
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 .
Przeglądanie postępu funkcji 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 'Removed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Descendants/any()"
&"&$select=WorkItemId,Title,Area,Iteration,AssignedTo,WorkItemType,State,AreaSK"
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(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 pominięta/{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ń funkcje oznaczone jako Wytnij.
and startswith(Area/AreaPath,'{areapath}')
Zwracanie elementów roboczych 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 Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Descendants/any()
Odfiltruj wszystkie elementy robocze, które mają co najmniej jeden element podrzędny lub "dowolny". Zawiera wszystkie funkcje z co najmniej jednym podrzędnym elementem roboczym. Aby pobrać wszystkie elementy robocze ze swoimi elementami podrzędnymi, nawet jeśli nie mają żadnych elementów podrzędnych, uruchom zapytanie bez filtru Descendants/any()
. Aby pominąć funkcje, które nie mają podrzędnych scenariuszy użytkownika, zastąp element .any(d:d/WorkItemType eq 'User Story')
Dla wszystkich elementów roboczych z elementami podrzędnymi i bez elementów podrzędnych:
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Dla wszystkich elementów roboczych z co najmniej jednym elementem potomnymi:
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Wybierz właściwości do zwrócenia.
&$expand=Descendants(
Początek klauzuli expand Descendants
$apply=filter(WorkItemType eq 'User Story')
Filtruj elementy podrzędne. Obejmują tylko scenariusze użytkownika (pomijanie zadań i usterek).
/groupby((StateCategory),
Grupuj zestawienie według stateCategory. 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).
aggregate(StoryPoints with sum as TotalStoryPoints))
Suma zagregowanych punktów historii.
)
Zamknij Descendants()
klauzulę.
Przeglądanie postępu funkcji dla zespołu
Poniższe 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/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=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(StoryPoints with sum as TotalStoryPoints)) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Przekształcanie danych w Edytor Power Query
Zapytanie zwraca kilka kolumn, które należy rozwinąć, zanim będzie można ich użyć do utworzenia raportu. Każda jednostka ściągana przy użyciu instrukcji OData $expand zwraca rekord z potencjalnie kilkoma polami. Rozwiń rekord, aby spłaszczać jednostkę w polach.
W przypadku raportu Postęp funkcji należy wykonać następujące przekształcenia:
- Rozwiń kolumnę na
Descendants
dwie kolumny:Descendants.StateCategory
iDescendants.TotalStoryPoints
- Zastosuj przekształcenie kolumny przestawnej w
Descendants.StateCategory
kolumnie, aby oddzielić poszczególne kategorie stanów - Zastąp wartości null we wszystkich kolumnach przestawnych.
- Dodaj kolumnę niestandardową, aby reprezentować procent wykonania. Kolumna niestandardowa wyświetli błędy, jeśli w kolumnach stanu przestawnego znajdują się jakiekolwiek kolumny o wartości null.
Aby dowiedzieć się, jak to zrobić, zobacz następujące sekcje w temacie Przekształcanie danych analizy w celu generowania raportów usługi Power BI:
- Rozwiń kolumnę Elementy potomne.
- Kolumna Pivot Descendants.StateCategory.
- Zastąp wartości null.
- Tworzenie wartości procentowej ukończonej kolumny obliczeniowej
Uwaga
W tym przykładzie wartości State dla scenariusza użytkownika obejmują Proponowane, W toku i Ukończone.
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 słupkowego
W usłudze Power BI wybierz pozycję Skumulowany raport wykresu słupkowego w obszarze Wizualizacje.
Dodaj
Title
do osi Y.Dodaj
PercentComplete
do osi X, kliknij prawym przyciskiem myszy i wybierz pozycję Suma.
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