Ukázková sestava souhrnu průběhu funkcí

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

V tomto článku se dozvíte, jak vytvořit sestavu skládaného pruhu pro zobrazení průběhu funkcí na základě dokončených podřízených uživatelských scénářů. Sestava zobrazí procento dokončení souhrnem bodů obsahu pro danou sadu aktivních funkcí. Příklad je znázorněn na následujícím obrázku.

Snímek obrazovky se sestavou skládaného pruhového grafu průběhu funkcí

Podobné pruhové grafy průběhu můžete zobrazit z backlogu přidáním souhrnného sloupce. Postup najdete v tématu Zobrazení průběhu souhrnu nebo součtů.

Poznámka:

Tento článek předpokládá, že jste si přečetli přehled ukázkových sestav pomocí dotazů OData a máte základní znalosti o Power BI.

Požadavky

  • Pokud chcete zobrazit data Analýzy a dotazovat se na službu, musíte být členem projektu se základním přístupem nebo novějším. Ve výchozím nastavení mají všichni členové projektu udělená oprávnění k dotazování analýzy a definování zobrazení Analýzy.
  • Další informace o dalších požadavcích týkajících se povolení služeb a funkcí a obecných aktivit sledování dat najdete v tématu Oprávnění a požadavky pro přístup k Analýzám.

Vzorové dotazy

Průběh funkce dotazuje entitu WorkItems , aby získala aktuální stav průběhu.

Poznámka:

Informace o dostupných vlastnostech pro účely filtru nebo sestavy najdete v referenčních informacích k metadatům pro Azure Boards. Dotazy můžete filtrovat nebo vracet vlastnosti pomocí libovolné hodnoty Property pod hodnotami nebo NavigationPropertyBinding Path hodnotami dostupnými v objektu EntitySetEntityType . Každý EntitySet odpovídá hodnotě EntityType. Další informace o datovém typu každé hodnoty najdete v metadatech zadaných pro odpovídající EntityTypehodnotu .

Kontrola průběhu funkce na základě cesty oblasti

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů 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

Náhradní řetězce a rozpis dotazů

Nahraďte následující řetězce hodnotami. Nezahrnujte do náhradních závorek {} . Pokud je například název vaší organizace "Fabrikam", nahraďte {organization} ho Fabrikam, nikoli {Fabrikam}.

  • {organization} – Název vaší organizace
  • {project} - Název projektu vašeho týmu nebo zcela vynechá /{project} pro dotaz mezi projekty
  • {areapath} - Cesta k vaší oblasti. Příklad formátu: Project/Level1/Level2.

Rozpis dotazů

Následující tabulka popisuje jednotlivé části dotazu.

Část dotazování

Popis


$filter=WorkItemType eq 'Feature'

Návratové funkce

and State ne 'Cut'

Vynechání funkcí označených jako Vyjmout

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

Vrátí pracovní položky pod konkrétní cestou oblasti. Nahrazení vrátí Area/AreaPath eq '{areapath}' položky v určité cestě oblasti.
Chcete-li filtrovat podle názvu týmu, použijte příkaz Teams/any(x:x/TeamName eq '{teamname})'filtru .

and Descendants/any()

Vyfiltrujte všechny pracovní položky, které mají alespoň jednoho nebo "libovolného" potomka. Zahrnuje všechny funkce s alespoň jednou podřízenou pracovní položkou. Pokud chcete získat všechny pracovní položky se svými potomky, i když žádné nemají, spusťte dotaz bez Descendants/any() filtru. Pokud chcete vynechat funkce, které nemají podřízené uživatelské scénáře, nahraďte textem any(d:d/WorkItemType eq 'User Story').

Pro všechny pracovní položky s následníky a bez jejich následníků:

$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

Pro všechny pracovní položky s alespoň jedním následníkem:

$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)

&$select=WorkItemId, Title, WorkItemType, State

Vyberte vlastnosti, které chcete vrátit.

&$expand=Descendants(

Začátek klauzule expand Descendants

$apply=filter(WorkItemType eq 'User Story')

Vyfiltrujte potomky. Zahrnout pouze uživatelské scénáře (vynechat úkoly a chyby).

/groupby((StateCategory),

Seskupte souhrn podle StateCategory. Další informace o kategoriích stavů najdete v tématu Jak se v backlogech a panelech používají stavy a kategorie stavů pracovního postupu.

aggregate(StoryPoints with sum as TotalStoryPoints))

Agregovaný součet bodů obsahu

)

Klauzule Close Descendants()

Kontrola průběhu funkcí pro tým

Následující dotaz je stejný jako výše použitý dotaz s tím rozdílem, že filtruje podle názvu týmu místo cesty k oblasti.

Dotaz Power BI uvedený níže můžete vložit přímo do okna Získat prázdný dotaz dat>. Další informace najdete v přehledu ukázkových sestav pomocí dotazů 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

Transformace dat v Editor Power Query

Dotaz vrátí několik sloupců, které je potřeba rozbalit, abyste je mohli použít k vytvoření sestavy. Jakákoli entita načítaná pomocí příkazu $expand OData vrátí záznam s potenciálně několika poli. Rozbalte záznam, aby se entita zploštěla do jejích polí.

Pro sestavu průběhu funkcí budete muset provést následující transformace:

  • Descendants Rozbalte sloupec do dvou sloupců: Descendants.StateCategoryDescendants.TotalStoryPoints
  • Použití transformace kontingenčního sloupce u Descendants.StateCategory sloupce k oddělení jednotlivých kategorií států
  • Nahraďte hodnoty null ve všech kontingenčních sloupcích.
  • Přidejte vlastní sloupec, který představuje procento dokončení. Vlastní sloupec zobrazí chyby, pokud jsou ve sloupcích kontingenčního stavu nějaké sloupce null.

Postup najdete v následujících částech v tématu Transformace analytických dat pro generování sestav Power BI:

Poznámka:

V tomto příkladu hodnoty State pro user Story zahrnují Navrhované, Probíhá a Dokončeno.

Zavřete dotaz a použijte změny.

Jakmile dokončíte všechny transformace dat, v nabídce Domů zvolte Zavřít a použítdotaz a vraťte se na kartu Sestava v Power BI.

Snímek obrazovky s možností Zavřít a Použít Editor Power Query

Vytvoření sestavy skládaného pruhového grafu

  1. V Power BI zvolte sestavu skládaného pruhového grafu v části Vizualizace.

    Snímek obrazovky s výběrem vizualizací a polí Power BI pro sestavu skládaného pruhového grafu průběhu funkcí

  2. Přidat Title na osu Y

  3. Přidejte PercentComplete na osu X, klikněte pravým tlačítkem myši a vyberte Součet.

Zobrazí se ukázková sestava.

Snímek obrazovky se sestavou skládaného pruhového grafu s průběhem ukázkových funkcí