Burndown-voorbeeldquery's en rapporten vrijgeven
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Burndown- en burnuprapporten laten zien hoeveel werk in de loop van de tijd wordt voltooid. In de volgende afbeelding ziet u burndown, zowel op aantal gebruikersverhalen als op som van verhaalpunten.
Burndown-grafieken zijn alleen zinvol als u uw werk plant voor de periode van de grafiek. Als u anders een sprint per sprint plant, ziet u geen standaard burndown. In deze gevallen is een burnupgrafiek logischer om te zien hoe de voortgang in de loop van de tijd wordt gemaakt.
Belangrijk
- Als u gebiedspaden verwijdert of iteratiepaden opnieuw configureert, kunnen gegevens verloren gaan. In burndown- en burnupwidgetdiagrammen, sprint burndown- en snelheidsdiagrammen voor teams met gewijzigde vlakpaden worden bijvoorbeeld geen nauwkeurige gegevens weergegeven. Historische trenddiagrammen verwijzen naar het gebiedspad en iteratiepad zoals deze zijn gedefinieerd op het moment dat elk werkitem wordt gedefinieerd. Nadat u de gegevens hebt verwijderd, kunt u geen historische gegevens voor deze paden ophalen.
- U kunt alleen gebieds- en iteratiepaden verwijderen die niet meer worden gebruikt door werkitems.
Zie Een burndown- of burndownwidget configureren, burndown- en burndown-richtlijnen voor meer informatie over burndown en burnup.
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 query's in deze sectie laten zien hoe u burndowngrafieken van werkitems genereert op basis van historische gegevens. Al deze query's geven de WorkItemSnapshot
entiteitsset op.
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.
Burndown van gebruikersverhalen in een gebiedspad vanaf begin- en einddatum
De volgende query laat zien hoe u historische gegevens van Gebruikersverhalen voor een release kunt retourneren op basis van werkitems die zijn gelabeld met een releasetag.
Notitie
Voor rapporten op basis van het filteren van een tag moet de tag worden toegewezen aan het werkitem aan het begin van de release of burndown/burnup-begindatum. Anders wordt het werkitem niet opgenomen in de geretourneerde gegevens.
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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath), "
&"aggregate ($count as Count, 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}' volledig weg voor een query voor meerdere projecten{areapath}
- Uw gebiedspad. Voorbeeldindeling:Project\Level1\Level2
{tag}
- Een tag die uw release vertegenwoordigt. Alle werkitems die zijn getagd,{tagname}
worden opgenomen in het rapport{startdate}
- De datum waarop het burndownrapport moet worden gestart met de notatie:YYYY-MM-DDZ
. Bijvoorbeeld:2022-04-01Z
vertegenwoordigt 2022-april-01. Plaats niet tussen aanhalingstekens.{enddate}
- De datum waarop het burndownrapport moet worden beëindigd.
Uitsplitsing van query's
In de volgende tabel wordt elk deel van de query beschreven.
Queryonderdeel
Beschrijving
$apply=filter(WorkItemType eq 'User Story'
Gebruikersverhalen opnemen in burndown.
and StateCategory ne 'Completed'
Hiermee worden items gefilterd die zijn voltooid. Zie Hoe werkstroomstatussen en statuscategorieën worden gebruikt in achterstanden en borden voor meer informatie over statuscategorieën .
and startswith(Area/AreaPath,'{areapath}')
Alleen gebruikersverhalen opnemen onder een specifiek gebiedspad dat wordt '{areapath}'
vervangen.
Als u wilt filteren op een teamnaam, gebruikt u de filterinstructie Teams/any(x:x/TeamName eq '{teamname})'
.
and Tags/any(x:x/TagName eq '{tagname}')
.
Hiermee geeft u het label op dat de release aangeeft waarop de burndown moet worden uitgevoerd en om alle werkitems op te nemen die zijn getagd met {tagname} in het rapport.
and DateValue ge {startdate}
Start burndown op of na de opgegeven datum. Voorbeeld: 2019-04-01Z vertegenwoordigt 2019-april-01.
and DateValue le {enddate}
Start burndown op of vóór de opgegeven datum. Dezelfde indeling als {startdate}.
)
Sluit filter()
de component.
/groupby (
Begincomponent groupby()
.
(DateValue, State, Area/AreaPath),
DateValue
Groeperen op (gebruikt voor trending) en alle velden waarop u wilt rapporteren.
aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)
Aggregeren op basis van het aantal gebruikersverhalen en de som van verhaalpunten.
)
Sluit groupby()
de component.
Burndown van gebruikersverhalen voor een team
De volgende query retourneert burndown-gegevens die zijn gefilterd op teamnaam in plaats van 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"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 Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown-gebruikersverhalen met elke vrijdag een momentopname
Als u een wekelijkse momentopname gebruikt, vermindert u de hoeveelheid gegevens die in Power BI worden opgehaald en verhoogt u de queryprestaties.
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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&"and Date/DayName eq 'Friday' "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown-gebruikersverhalen op basis van een gebied en iteratiepad
Sommige organisaties gebruiken Iteratiepaden om Verhalen te markeren voor een release. Ze kunnen bijvoorbeeld een iteratiepad van MyProject\Release1 hebben. In de volgende query ziet u hoe u Gebruikersverhalen per iteratiepad selecteert.
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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and startswith(Iteration/IterationPath,'{iterationpath}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown-gebruikersverhalen met een aangepaste veldwaarde
Sommige organisaties gebruiken een aangepast veld om Gebruikersverhalen te markeren voor een release. Ze kunnen bijvoorbeeld een veld hebben met de naam Mijlpaal. In deze query ziet u hoe u Gebruikersverhalen selecteert op basis van een aangepast veld.
U moet zowel {customfieldname}
{releasevalue}
als in de query vervangen. Als u de naam van uw aangepaste veld wilt bepalen, raadpleegt u de metagegevensreferentie voor Azure Boards, aangepaste eigenschappen. U vervangt {customfieldname}
bijvoorbeeld Custom_Milestone
door de naam van de aangepaste eigenschap.
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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and {customfieldname} eq '{releasevalue}' "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Optioneel) Naam van query wijzigen
U kunt de naam van het standaardquerylabel Query1 wijzigen in iets zinvoller. Voer gewoon een nieuwe naam in het deelvenster Queryinstellingen in.
Kolommen uitvouwen in Power Query-editor
Voordat u het rapport maakt, moet u kolommen uitvouwen die records met verschillende velden retourneren. In dit geval wilt u de volgende records uitbreiden:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
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 gegroepeerde kolomdiagram maken
Kies in Power BI een gegroepeerd kolomdiagram onder Visualisaties.
Toevoegen
DateValue
aan X-as, met de rechtermuisknop klikken en selecterenDateValue
in plaats vanDate Hierarchy
Toevoegen
Count
aan Y-as.Toevoegen
TotalStoryPoints
aan Y-as.
In het voorbeeldrapport wordt een burndown weergegeven voor zowel het aantal verhalen als de som of het aantal verhaalpunten.