Przykładowe zapytania i raporty dotyczące wydań

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Raporty burndown i burnup pokazują, ile pracy jest ukończone w czasie. Na poniższej ilustracji przedstawiono wypalenie zarówno według liczby scenariuszy użytkownika, jak i sumy punktów scenariuszy.

Zrzut ekranu przedstawiający raport wykresu kolumnowego grupowanego w wersji usługi Power BI.

Wykresy burndown mają sens tylko wtedy, gdy planujesz pracę na okres wykresu. W przeciwnym razie, jeśli planujesz przebieg po przebiegu, nie zobaczysz standardowego postępu. W tych przypadkach wykres spalony ma większe znaczenie, aby zobaczyć, jak postęp jest w czasie.

Ważne

Usunięcie ścieżek obszaru lub ponowne skonfigurowanie ścieżek iteracji może spowodować utratę danych i nie można ich przywrócić. Na przykład wykresy ze spalonymi lub wypalonymi widżetami, spaleniem przebiegu i wykresami prędkości dla zespołów, których ścieżki warstwowe są zmieniane, nie będą odzwierciedlać poprawnych danych. Historyczne wykresy trendów odwołują się do ścieżki obszaru i ścieżki iteracji zgodnie z definicją w przeszłości dla każdego elementu roboczego. Po usunięciu ścieżki obszaru lub ścieżki iteracji nie można pobrać danych historycznych.

Aby dowiedzieć się więcej o burndown i burnup, zobacz Configure a burndown or burnup widget and Burndown and burnup guidance (Konfigurowanie widżetu burndown lub burnup) oraz Burndown and burnup guidance (Wskazówki dotyczące burndown i burnup).

Uwaga

W tym artykule założono, że znasz artykuł Omówienie przykładowych raportów przy użyciu zapytań OData i masz podstawową wiedzę na temat usługi Power BI.

Wymagania wstępne

  • Aby wyświetlić dane analizy i wykonać zapytanie dotyczące usługi, musisz być członkiem projektu z dostępem podstawowym lub większym. Domyślnie wszyscy członkowie projektu otrzymują uprawnienia do wykonywania zapytań w usłudze Analytics i definiowania widoków analizy.
  • Aby dowiedzieć się więcej o innych wymaganiach 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

Zapytania w tej sekcji pokazują, jak generować wykresy postępu elementów roboczych na podstawie danych historycznych. Wszystkie te zapytania określają WorkItemSnapshot zestaw jednostek.

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 EntitySetlub NavigationPropertyBinding Path . Każda z nich EntitySet odpowiada elementowi EntityType. Aby dowiedzieć się więcej o typie danych każdej wartości, przejrzyj metadane podane dla odpowiedniego EntityTypeelementu .

Burndown of User Stories in an area path from start and end date (Wypalenie scenariuszy użytkownika w ścieżce obszaru od daty rozpoczęcia i zakończenia)

Poniższe zapytanie pokazuje, jak zwracać dane historyczne scenariuszy użytkownika dla wydania na podstawie elementów roboczych oznaczonych tagiem wydania.

Uwaga

W przypadku raportów opartych na filtrowaniu tagu tag musi być przypisany do elementu roboczego na początku wydania lub daty rozpoczęcia wypalenie/spalenie. W przeciwnym razie element roboczy nie jest uwzględniony w zwracanych danych.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"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 Fabrikamcią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
  • {tag} — tag reprezentujący wydanie. Wszystkie elementy robocze oznaczone tagiem {tagname} są uwzględnione w raporcie
  • {startdate} - Data rozpoczęcia raportu o burndown z formatem: YYYY-MM-DDZ. Na przykład: 2022-04-01Z reprezentuje 2022-Kwiecień-01. Nie ujęć w cudzysłów.
  • {enddate} — Data zakończenia raportu o burndown.

Podział zapytań

W poniższej tabeli opisano każdą część zapytania.

Część kwerendy

Opis

$apply=filter(WorkItemType eq 'User Story'

Uwzględnij scenariusze użytkownika w zamknięciu.

and StateCategory ne 'Completed'

and startswith(Area/AreaPath,'{areapath}')

Uwzględnij tylko scenariusze użytkownika w ramach określonej ścieżki obszaru zastępującej '{areapath}'element .
Aby filtrować według nazwy zespołu, użyj instrukcji Teams/any(x:x/TeamName eq '{teamname})'filter .

and Tags/any(x:x/TagName eq '{tagname}').

Określa etykietę tagu reprezentującą wydanie, w ramach którego ma być włączane, oraz uwzględnia wszystkie elementy robocze oznaczone tagiem {tagname} w raporcie.

and DateValue ge {startdate}

Rozpocznij uruchamianie w dniu lub po określonej dacie. Przykład: 2019-04-01Z reprezentuje 2019-Kwiecień-01.

and DateValue le {enddate}

Rozpocznij spalenie w określonym dniu lub przed określoną datą. Taki sam format jak {startdate}.

)

Zamknij filter() klauzulę.

/groupby (

Klauzula Start groupby() .

(DateValue, State, Area/AreaPath),

Grupuj według DateValue (używane do trendów) i wszystkie pola, na których chcesz raportować.

aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)

Agregowanie według liczby historii użytkowników i sumy punktów scenariuszy.

)

Zamknij groupby() klauzulę.

Burndown of User Stories for a team (Tworzenie scenariuszy użytkowników dla zespołu)

Poniższe zapytanie zwraca dane ze spalania przefiltrowane według nazwy zespołu, a nie ścieżki obszaru.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 StateCategory ne 'Completed' "
            &"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 Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Scenariusze użytkownika burndown z migawką co piątek

Użycie cotygodniowej migawki zmniejsza ilość danych ściągniętych do usługi Power BI i zwiększa wydajność zapytań.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Tags/any(x:x/TagName eq '{tagname}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &"and Date/DayName eq 'Friday' "
        &") "
        &"/groupby ( "
            &"(DateValue,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Scenariusze użytkownika burndown na podstawie obszaru i ścieżki iteracji

Niektóre organizacje używają ścieżek iteracji do oznaczania scenariuszy dla wydania. Na przykład mogą mieć ścieżkę iteracji MyProject\Release1. Poniższe zapytanie pokazuje, jak wybrać pozycję Scenariusze użytkownika według ścieżki iteracji.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and startswith(Iteration/IterationPath,'{iterationpath}') "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Scenariusze użytkownika burndown z wartością pola niestandardowego

Niektóre organizacje używają pola niestandardowego do oznaczania scenariuszy użytkownika dla wydania. Na przykład mogą mieć pole o nazwie Kamień milowy. To zapytanie pokazuje, jak wybrać pozycję Scenariusze użytkownika według pola niestandardowego.

Musisz zastąpić zarówno zapytanie, jak {customfieldname} i {releasevalue} w zapytaniu. Aby określić nazwę pola niestandardowego, zobacz Dokumentacja metadanych dla usługi Azure Boards, właściwości niestandardowych. Zastąp {customfieldname} ciąg nazwą właściwości niestandardowej, na przykład Custom_Milestone.

Możesz wkleić zapytanie usługi Power BI wymienione poniżej bezpośrednio w oknie Pobieranie zapytania pustego> danych. 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 StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and {customfieldname} eq '{releasevalue}' "
            &"and DateValue ge {startdate} "
            &"and DateValue le {enddate} "
            &") "
        &"/groupby ( "
            &"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
            &"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
        &") "
    ,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 Zapytanie Ustawienia.

Zrzut ekranu przedstawiający opcje menu zapytania usługi Power BI, zmień nazwę 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:

  • Links
  • Links.TargetWorkItem
  • 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.

Zrzut ekranu przedstawiający opcję zamknij i zastosuj Edytor Power Query.

Tworzenie klastrowanego wykresu kolumnowego

  1. W usłudze Power BI wybierz pozycję Wykres kolumnowy grupowany w obszarze Wizualizacje.

    Zrzut ekranu przedstawiający opcje Wizualizacje i Pola usługi Power BI dla raportu wykresu kolumnowego grupowanego wydań.

  2. Dodaj DateValue do osi X, kliknij prawym przyciskiem myszy i wybierz polecenie DateValue, a nie Date Hierarchy

  3. Dodaj Count do osi Y.

  4. Dodaj TotalStoryPoints do osi Y.

Przykładowy raport wyświetla zestawienie liczby scenariuszy i sum lub Story Points.

Zrzut ekranu przedstawiający przykładowy raport wykresu kolumnowego grupowanego wydania usługi Power BI.