Voorbeeldrapport voor het samenvouwen van functies
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
In dit artikel leest u hoe u een gestapeld staafrapport maakt om de voortgang van functies weer te geven op basis van voltooide onderliggende gebruikersverhalen. In het rapport wordt het percentage voltooid weergegeven door het samenvouwen van verhaalpunten voor een bepaalde set actieve functies. In de volgende afbeelding ziet u een voorbeeld.
U kunt vergelijkbare voortgangsbalkdiagrammen uit uw achterstand bekijken door een samengetelde kolom toe te voegen. Zie Voortgang van samenvouwen of totalen weergeven voor meer informatie.
Notitie
In dit artikel wordt ervan uitgegaan dat u overzicht van voorbeeldrapporten leest met behulp van OData-query's en basiskennis hebt van Power BI.
Vereisten
- Toegang: Wees lid van een project met ten minste basistoegang .
- Machtigingen: projectleden zijn standaard gemachtigd om query's uit te voeren op Analytics en weergaven te maken.
- Zie Machtigingen en vereisten voor toegang tot Analyse voor meer informatie over andere vereisten met betrekking tot het inschakelen van services en functies en algemene activiteiten voor het bijhouden van gegevens.
Voorbeeldquery's
De voortgang van de functie voert query's uit op de WorkItems
entiteit om de huidige status van de voortgang op te halen.
Notitie
Als u de beschikbare eigenschappen voor filter- of rapportdoeleinden wilt bepalen, raadpleegt u de naslaginformatie over metagegevens voor Azure Boards. U kunt uw query's filteren of eigenschappen retourneren met behulp van een van de Property
waarden onder een EntityType
of NavigationPropertyBinding Path
waarden die beschikbaar zijn met een EntitySet
. Elk EntitySet
komt overeen met een EntityType
. Raadpleeg voor meer informatie over het gegevenstype van elke waarde de metagegevens die voor de bijbehorende EntityType
waarde zijn opgegeven.
De voortgang van de functie controleren op basis van een gebiedspad
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
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
Uitsplitsing van tekenreeksen en query's vervangen
Vervang de volgende tekenreeksen door uw waarden. Neem geen vierkante haken {} op bij uw vervanging. Als de naam van uw organisatie bijvoorbeeld Fabrikam is, vervangt u door {organization}
Fabrikam
, niet {Fabrikam}
.
{organization}
- Naam van uw organisatie{project}
- De naam van uw teamproject of laat/{project}
deze volledig weg voor een query voor meerdere projecten{areapath}
- Uw gebiedspad. Voorbeeldindeling:Project/Level1/Level2
.
Uitsplitsing van query's
In de volgende tabel wordt elk deel van de query beschreven.
Queryonderdeel
Beschrijving
$filter=WorkItemType eq 'Feature'
Functies retourneren.
and State ne 'Cut'
Laat functies weg die zijn gemarkeerd als Knippen.
and startswith(Area/AreaPath,'{areapath}')
Werkitems retourneren onder een specifiek gebiedspad. Vervangen door Area/AreaPath eq '{areapath}'
retourneert items in een specifiek gebiedspad.
Als u wilt filteren op teamnaam, gebruikt u de filterinstructie Teams/any(x:x/TeamName eq '{teamname})'
.
and Descendants/any()
Filter alle werkitems met ten minste één of 'any' afstammeling. Bevat alle functies met ten minste één onderliggend werkitem. Als u alle werkitems met hun nakomelingen wilt ophalen, zelfs als ze er geen hebben, voert u een query uit zonder het Descendants/any()
filter. Als u functies wilt weglaten die geen onderliggende gebruikersverhalen hebben, vervangt u door any(d:d/WorkItemType eq 'User Story')
.
Voor alle werkitems met en zonder afstammelingen:
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Voor alle werkitems met ten minste één afstammeling:
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Selecteer eigenschappen die u wilt retourneren.
&$expand=Descendants(
Begin van uitvouwcomponent Descendants
$apply=filter(WorkItemType eq 'User Story')
Filter de afstammelingen. Alleen gebruikersverhalen opnemen (taken en bugs weglaten).
/groupby((StateCategory),
Groepeer het samenvouwen op StateCategory. Zie Hoe werkstroomstatussen en statuscategorieën worden gebruikt in achterstanden en borden voor meer informatie over statuscategorieën.
aggregate(StoryPoints with sum as TotalStoryPoints))
Totale som van verhaalpunten.
)
Sluit Descendants()
de component.
De voortgang van de functie voor een team bekijken
De volgende query is hetzelfde als de query die hierboven wordt gebruikt, behalve dat deze filtert op teamnaam in plaats van op gebiedspad.
Kopieer en plak de volgende Power BI-query rechtstreeks in het venster Lege query ophalen>. Zie Overzicht van voorbeeldrapporten met behulp van OData-query's voor meer informatie.
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
De gegevens in Power Query-editor transformeren
De query retourneert verschillende kolommen die u moet uitvouwen voordat u ze kunt gebruiken om een rapport te maken. Elke entiteit die wordt opgehaald met behulp van een OData $expand instructie retourneert een record met mogelijk meerdere velden. Vouw de record uit om de entiteit plat te maken in de velden.
Voor het rapport Voortgang van functies moet u de volgende transformaties uitvoeren:
- Vouw de
Descendants
kolom uit in twee kolommen:Descendants.StateCategory
enDescendants.TotalStoryPoints
- Transformatie van draaikolom toepassen op
Descendants.StateCategory
kolom om afzonderlijke statuscategorieën te scheiden - Vervang null-waarden in alle gedraaide kolommen.
- Voeg een aangepaste kolom toe om het percentage voltooid weer te geven. In de aangepaste kolom worden fouten weergegeven als er null-kolommen in de kolommen Status zijn.
Zie de volgende secties in Transform Analytics-gegevens om Power BI-rapporten te genereren voor meer informatie:
- Vouw de kolom Afstammelingen uit.
- Kolom Pivot Descendants.StateCategory.
- Vervang null-waarden.
- Een percentage voltooide berekende kolom maken
Notitie
In dit voorbeeld bevatten de statuswaarden voor Gebruikersverhaal Voorgesteld, Wordt uitgevoerd en Voltooid.
Sluit de query en pas uw wijzigingen toe
Zodra u al uw gegevenstransformaties hebt voltooid, kiest u Sluiten en toepassen in het menu Start om de query op te slaan en terug te keren naar het tabblad Rapport in Power BI.
Het gestapelde staafdiagramrapport maken
Kies in Power BI een gestapeld staafdiagramrapport onder Visualisaties.
Toevoegen
Title
aan Y-as.Toevoegen
PercentComplete
aan X-as, met de rechtermuisknop klikken en Som selecteren.
Het voorbeeldrapport wordt weergegeven.