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 dowiedzieć się więcej o typach linków i łączeniu 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 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

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 dowiedzieć się więcej o typie danych każdej wartości, przejrzyj metadane podane dla odpowiedniego EntityTypeelementu .

Zwracanie funkcji i podrzędnych scenariuszy użytkownika

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/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() .

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/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.

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/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

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/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

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/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 Zapytanie Ustawienia.

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.