Souhrnné hodnoty podřízených pracovních položek do nadřazené ukázkové sestavy
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Souhrn poskytuje podporu pro zobrazení počtu pracovních položek nebo součtu bodů obsahu, zbývající práce nebo jiného vlastního pole podřízených položek. Tento článek obsahuje několik příkladů, jak vygenerovat tabulkovou souhrnnou sestavu pro náměty, funkce nebo uživatelské scénáře, které obsahují podřízené pracovní položky. Následující obrázek ukazuje příklad bodů obsahu zahrnutých pro nadřazené funkce.
Další informace o souhrnu a možnostech zobrazení souhrnu najdete v tématu Zobrazení průběhu souhrnu nebo součtů v Azure Boards.
Poznámka:
Tento článek předpokládá, že si přečtete přehled ukázkových sestav pomocí dotazů OData a máte základní znalosti o Power BI.
Požadavky
- Přístup: Buďte členem projektu s alespoň základním přístupem.
- Oprávnění: Ve výchozím nastavení mají členové projektu oprávnění k dotazování na Analýzy a vytváření zobrazení.
- 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
Následující dotazy vracejí data ze WorkItems
sady entit, aby podporovaly generování sestav kumulativní matice.
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 EntitySet
EntityType
. 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í EntityType
hodnotu .
Souhrnné body obsahu na funkce podřízených uživatelských scénářů na základě cesty oblasti
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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 startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, 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 vašeho týmového projektu nebo úplně vynecháte /{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áte zavřené chyby.
and startswith(Area/AreaPath,'{areapath}')
Vrátí pracovní položky pod určitou cestou oblasti a nahradí 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()
Zahrňte všechny funkce, i ty, které nemají uživatelské scénáře. Nahraďte "any(d:d/WorkItemType eq 'User Story')" a vynecháte funkce, které nemají podřízené uživatelské scénáře.
&$select=WorkItemId, Title, WorkItemType, State
Vyberte pole, která chcete vrátit.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Vyberte rozbalitelná pole AssignedTo
vlastností , Iteration
, Area
.
Descendants(
Rozbalte klauzuli Descendants
.
$apply=filter(WorkItemType eq 'User Story')
Vyfiltrujte potomky tak, aby zahrnovaly pouze uživatelské scénáře (vynechá úlohy a chyby).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Pro všechny potomky odpovídající klauzuli filtru, spočítejte je a součet StoryPoints
vlastnosti.
)
Zavřít Descendants()
.
Souhrnné body obsahu na funkce podřízených uživatelských scénářů založených na Teams
Následující dotazy ukazují, jak generovat souhrnné sestavy filtrování podle názvu týmu místo cesty oblasti.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Souhrnné body textu na náměty
Pomocí následujících dotazů můžete souhrny scénářů odkazovat na náměty.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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 'Epic'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any(d:d/WorkItemType eq 'User Story')"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate(StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Zbývající práce v souhrnných úkolech a dokončená práce na uživatelské scénáře
Následující dotaz ukazuje, jak souhrn zbývající práce a dokončené práce přiřazené podřízeným úkolům uživatelským scénářům v hierarchii. Tyto dotazy předpokládají, že úkoly jsou přiřazeny jako podřízené položky uživatelského scénáře v zadané cestě oblasti.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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 'User Story'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Task')"
&"/aggregate(RemainingWork with sum as TotalRemainingWork, CompletedWork with sum as TotalCompletedWork)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Počet kumulativních chyb do funkcí
Následující dotazy ukazují, jak sčítat počet chyb přiřazených funkcím. Tyto dotazy předpokládají, že chyby jsou definovány jako podřízené položky funkce v zadané cestě oblasti.
Zkopírujte a vložte následující dotaz Power BI přímo do okna Získat>prázdné dotazy . Další informace najdete v tématu Přehled 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,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Bug')"
&"/aggregate($count as CountOfBugs)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Volitelné) Přejmenování dotazu
Výchozí popisek dotazu , Query1, můžete přejmenovat na něco smysluplnějšího. Jednoduše zadejte nový název z podokna Nastavení dotazu.
Rozbalení sloupců v Power BI
Klauzule &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
vrátí záznamy, které obsahují několik polí. Před vytvořením sestavy musíte záznam rozbalit, aby se zploštěl do konkrétních polí. V tomto případě budete chtít rozbalit následující záznamy:
AssignedTo
AreaPath
IterationPath
Postup najdete v tématu Transformace analytických dat pro generování sestav Power BI.
(Volitelné) Přejmenování polí
Po rozbalení sloupců můžete chtít přejmenovat jedno nebo více polí. Sloupec můžete například přejmenovat AreaPath
na Area Path
. Postup najdete v tématu Přejmenování polí sloupců.
Nahrazení hodnot null v souhrnných polích
Pokud pracovní položka nemá žádné podřízené položky, může mít souhrnná hodnota hodnotu null. Například Descendants.CountOfUserStories má hodnotu null, pokud funkce nemá žádné podřízené uživatelské scénáře.
Pro snadnější vytváření sestav nahraďte všechny hodnoty null nulou pomocí následujícího postupu.
- Vyberte sloupec kliknutím na záhlaví sloupce.
- Vyberte nabídku Transformace.
- Vyberte Nahradit hodnoty. Zobrazí se dialogové okno Nahradit hodnoty .
- Do hodnoty zadejte hodnotu null , kterou chcete najít.
- Do příkazu Nahradit zadáním "0".
- Vyberte OK.
Opakujte pro všechny souhrnné sloupce.
Zavřete dotaz a použijte změny.
Jakmile dokončíte všechny transformace dat, v nabídce Domů zvolte Zavřít a použít dotaz a vraťte se na kartu Sestava v Power BI.
Vytvoření sestavy tabulky
V Power BI zvolte sestavu tabulky v části Vizualizace.
Do sloupců v uvedeném pořadí přidejte následující pole:
WorkItemI
, zvolte Nevystihovejte souhrn a v případě potřeby zobrazte ID.WorkItemType
Title
State
Count of User Stories
Total Story Points
.
Zobrazí se ukázková sestava.