Udostępnij za pośrednictwem


Wyświetlanie listy połączonych elementów roboczych — przykładowe zapytania i raporty

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

W tym artykule pokazano, jak utworzyć raport zawierający listę elementów roboczych połączonych z innymi elementami roboczymi. Na przykład w poniższym raporcie przedstawiono listę funkcji połączonych z scenariuszami użytkownika z typem linku nadrzędny-podrzędny.

Zrzut ekranu przedstawiający linki nadrzędno-podrzędne raportu tabeli Funkcje i scenariusze użytkownika.

Aby uzyskać więcej informacji na temat typów linków i łączenia elementów roboczych, zobacz Łączenie historii użytkowników, problemów, usterek i innych elementów roboczych.

Inne przykładowe zapytania obejmują wyświetlanie listy usterek z linkiem Duplikuj do innej usterki oraz wyświetlanie listy usterek, które nie zawierają linku Duplikuj do innej usterki.

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

Przykładowe zapytania

Podano kilka zapytań, które pokazują, jak filtrować połączone elementy robocze. Wszystkie te zapytania określają WorkItems zestaw jednostek, gdy zwracają bieżące dane.

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 uzyskać więcej informacji na temat typu danych każdej wartości, zapoznaj się z metadanymi podanymi dla odpowiedniego EntityTypeelementu .

Zwracanie funkcji i podrzędnych scenariuszy użytkownika

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 'Closed' and State ne 'Removed' "
            &"and startswith(Area/AreaPath,'{areapath}') " 
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Child' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,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.

Podział zapytań

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

Część kwerendy

Opis

$filter=WorkItemType eq 'Feature'

Zwracanie historii użytkownika.

and State ne 'Closed' and State ne 'Removed'

Pomiń funkcje, których stan ma wartość Zamknięte lub Usunięte.

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

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

&$select=WorkItemId,Title,WorkItemType,State,AreaSK

Wybierz pola, które mają być zwracane.

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),

Określ pola, które mają być używane do rozwijania AssignedTojednostek , Iterationi Area .

Links(

Links Rozwiń jednostkę.

$filter=LinkTypeName eq 'Child'

Filtruj połączone elementy robocze tylko do tych z typem linku Podrzędne . Inne przykłady to Parent, Child, Duplicate, Duplicate Of, Affects, Affected By.

and TargetWorkItem/WorkItemType eq 'User Story';

Uwzględnij tylko połączone scenariusze użytkownika.

$select=LinkTypeName;

LinkTypeName Wybierz właściwość, która ma być zwracana.

$expand=TargetWorkItem($select=WorkItemType, WorkItemId, Title, State)

Wybierz właściwości połączonego elementu roboczego do zwrócenia.

)

Zamknij klauzulę Links() .

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 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Zwracanie połączonych historii użytkowników filtrowanych przez usługę Teams

Poniższe zapytanie jest takie samo jak zapytanie użyte wcześniej w tym artykule, 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 'User Story' "
            &"and State ne 'Closed' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
            &"Links( "
                &"$filter=LinkTypeName eq 'Duplicate' "
                &"and TargetWorkItem/WorkItemType eq 'Bug'; "
                    &"$select=LinkTypeName; "
                &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
            &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

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 'Bug' "
                &"and State ne 'Closed' "
                &"and startswith(Area/AreaPath,'{areapath}') "
                &"and not (Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug')) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,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.

Zrzut ekranu przedstawiający opcje menu zapytania usługi Power BI, zmień nazwę zapytania.

Przekształcanie danych 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).

(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. Możesz zmienić ich nazwy w widoku tabeli danych lub później podczas tworzenia raportu. Aby dowiedzieć się, jak to zrobić, zobacz Zmienianie nazwy pól kolumn.

W tym przykładzie zmieniono nazwy następujących pól:

Oryginalna nazwa pola Zmień nazwę
Links.TargetWorkItem.ID Identyfikator docelowy
LinksLinkTypeName Typ łącza
Links.TargetWorkItem.State Stan docelowy
Links.TargetWorkItem.Title Tytuł docelowy

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 raportu tabeli w celu wyświetlenia listy połączonych elementów roboczych

  1. W usłudze Power BI wybierz pozycję Raport tabeli w obszarze Wizualizacje.

    Zrzut ekranu przedstawiający opcje Wizualizacje i pola usługi Power BI dla raportu tabeli listy Nadrzędne łącza podrzędne.

  2. Dodaj następujące pola w kolejności wskazanej do kolumn:

    • Identyfikator, kliknij prawym przyciskiem myszy i wybierz polecenie Nie sumuj
    • Stanowy
    • Tytuł
    • Identyfikator docelowy, kliknij prawym przyciskiem myszy i wybierz polecenie Nie sumuj
    • Typ łącza
    • Stan docelowy
    • Tytuł docelowy

Zostanie wyświetlony przykładowy raport.

Zrzut ekranu przedstawiający przykładowe linki nadrzędno-podrzędne raportu tabeli Funkcje i scenariusze użytkownika.