Publicera exempelfrågor och rapporter för nedbrännskada
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Rapporter om nedbrändhet och uppbrändhet visar hur mycket arbete som slutförs över tid. Följande bild visar nedblåsning både efter antal användarberättelser och summan av Story Points.
Burndown-diagram är bara meningsfulla om du planerar ditt arbete för diagrammets tidsperiod. Annars, om du planerar på sprint-by-sprint basis, kommer du inte att se en standard burndown. I dessa fall är ett uppbränt diagram mer meningsfullt för att se hur framsteg görs över tid.
Viktigt!
- Om du tar bort områdessökvägar eller konfigurerar om iterationssökvägar kan du förlora oåterkalleliga data. Till exempel visar widgetdiagram för bränning och bränning, sprintbrännskada och hastighetsdiagram för team med ändrade områdessökvägar inte korrekta data. Historiska trenddiagram refererar till områdessökvägen och iterationssökvägen som de definierades vid tidpunkten för varje arbetsobjekt. När du har tagit bort kan du inte hämta historiska data för dessa sökvägar.
- Du kan bara ta bort områdes- och iterationssökvägar som inte längre används av några arbetsobjekt.
Mer information om nedbrändhet och uppbrändhet finns i Konfigurera en widget för nedbrännskada eller uppbrännning samt vägledning för burndown och burnup.
Kommentar
Den här artikeln förutsätter att du läser Översikt över exempelrapporter med OData-frågor och har en grundläggande förståelse för Power BI.
Förutsättningar
- Åtkomst: Vara medlem i ett projekt med minst grundläggande åtkomst.
- Behörigheter: Som standard har projektmedlemmar behörighet att fråga Analytics och skapa vyer.
- Mer information om andra förutsättningar för tjänst- och funktionsaktivering och allmänna dataspårningsaktiviteter finns i Behörigheter och krav för åtkomst till analys.
Exempelfrågor
Frågorna i det här avsnittet visar hur du genererar nedbrända diagram över arbetsobjekt baserat på historiska data. Alla dessa frågor anger entitetsuppsättningen WorkItemSnapshot
.
Kommentar
Information om hur du fastställer tillgängliga egenskaper för filter- eller rapportändamål finns i Metadatareferens för Azure Boards. Du kan filtrera dina frågor eller returnera egenskaper med något av värdena Property
under ett EntityType
eller NavigationPropertyBinding Path
flera värden som är tillgängliga med en EntitySet
. Var och EntitySet
en motsvarar en EntityType
. Mer information om datatypen för varje värde finns i metadata för motsvarande EntityType
.
Nedblåsning av användarberättelser i en områdessökväg från start- och slutdatum
Följande fråga visar hur du returnerar historiska data för Användarberättelser för en version baserat på arbetsobjekt taggade med en versionstagg.
Kommentar
För rapporter som baseras på filtrering av en tagg måste taggen tilldelas till arbetsobjektet i början av lanserings- eller burndown-/burnup-startdatumet. Annars ingår inte arbetsobjektet i de returnerade data.
Kopiera och klistra in följande Power BI-fråga direkt i fönstret Hämta data>tom fråga. Mer information finns i Översikt över exempelrapporter med OData-frågor.
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
Ersättningssträngar och frågeuppdelning
Ersätt följande strängar med dina värden. Ta inte med hakparenteser {} med din ersättning. Om ditt organisationsnamn till exempel är "Fabrikam" ersätter du {organization}
med Fabrikam
, inte {Fabrikam}
.
{organization}
– Organisationens namn{project}
– Namnet på ditt teamprojekt, eller utelämna "/{project}" helt, för en fråga mellan projekt{areapath}
- Din områdessökväg. Exempelformat:Project\Level1\Level2
{tag}
– En tagg som representerar din version. Alla arbetsobjekt som har taggats med{tagname}
ingår i rapporten{startdate}
– Datumet då rapporten för nedbrändhet ska startas med formatet :YYYY-MM-DDZ
. Till exempel:2022-04-01Z
representerar 2022-April-01. Omslut inte citattecken.{enddate}
- Datum för att avsluta burndown-rapporten.
Frågeuppdelning
I följande tabell beskrivs varje del av frågan.
Frågedel
Beskrivning
$apply=filter(WorkItemType eq 'User Story'
Inkludera användarberättelser i burndown.
and StateCategory ne 'Completed'
Filtrerar bort objekt som har slutförts. Mer information om tillståndskategorier finns i How workflow states and state categories are used in Backlogs and Boards (Hur arbetsflödestillstånd och tillståndskategorier används i kvarvarande uppgifter och tavlor).
and startswith(Area/AreaPath,'{areapath}')
Inkludera endast användarberättelser under en specifik områdessökväg som '{areapath}'
ersätter .
Om du vill filtrera efter ett teamnamn använder du filtersatsen Teams/any(x:x/TeamName eq '{teamname})'
.
and Tags/any(x:x/TagName eq '{tagname}')
.
Anger taggetiketten som representerar den version som ska brännas på och för att inkludera alla arbetsobjekt som har taggats med {tagname} i rapporten.
and DateValue ge {startdate}
Starta burndown på eller efter det angivna datumet. Exempel: 2019-04-01Z representerar 2019-April-01.
and DateValue le {enddate}
Starta burndown på eller före det angivna datumet. Samma format som {startdate}.
)
Stäng-satsen filter()
.
/groupby (
Start-sats groupby()
.
(DateValue, State, Area/AreaPath),
DateValue
Gruppera efter (används för trendning) och alla fält som du vill rapportera om.
aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)
Aggregera efter antal användarberättelser och summan av Story Points.
)
Stäng-satsen groupby()
.
Nedbrändhet av användarberättelser för ett team
Följande fråga returnerar burndown-data filtrerade efter teamnamn i stället för Områdessökväg.
Kopiera och klistra in följande Power BI-fråga direkt i fönstret Hämta data>tom fråga. Mer information finns i Översikt över exempelrapporter med OData-frågor.
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 User Stories med en ögonblicksbild varje fredag
Om du använder en ögonblicksbild varje vecka minskar mängden data som hämtas till Power BI och ökar frågeprestandan.
Kopiera och klistra in följande Power BI-fråga direkt i fönstret Hämta data>tom fråga. Mer information finns i Översikt över exempelrapporter med OData-frågor.
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 User Stories baserat på ett område och en iterationssökväg
Vissa organisationer använder Iteration Paths för att markera Stories för en version. De kan till exempel ha en iterationssökväg för MyProject\Release1. Följande fråga visar hur du väljer Användarberättelser efter iterationssökväg.
Kopiera och klistra in följande Power BI-fråga direkt i fönstret Hämta data>tom fråga. Mer information finns i Översikt över exempelrapporter med OData-frågor.
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 User Stories med ett anpassat fältvärde
Vissa organisationer använder ett anpassat fält för att markera Användarberättelser för en version. De kan till exempel ha ett fält med namnet Milestone. Den här frågan visar hur du väljer Användarberättelser efter ett anpassat fält.
Du måste ersätta både {customfieldname}
och {releasevalue}
i frågan. Information om hur du fastställer namnet på ditt anpassade fält finns i Metadatareferens för Azure Boards, Anpassade egenskaper. Du ersätter {customfieldname}
med namnet på den anpassade egenskapen, till exempel Custom_Milestone
.
Kopiera och klistra in följande Power BI-fråga direkt i fönstret Hämta data>tom fråga. Mer information finns i Översikt över exempelrapporter med OData-frågor.
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
(Valfritt) Byt namn på fråga
Du kan byta namn på standardfrågans etikett, Query1, till något mer meningsfullt. Ange bara ett nytt namn i fönstret Frågeinställningar .
Expandera kolumner i Power Query-redigeraren
Innan du skapar rapporten måste du expandera kolumner som returnerar poster som innehåller flera fält. I det här fallet vill du expandera följande poster:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
Information om hur du expanderar arbetsobjekt finns i Transformera analysdata för att generera Power BI-rapporter.
Stäng frågan och tillämpa ändringarna
När du har slutfört alla dina datatransformeringar väljer du Stäng och använd på startmenyn för att spara frågan och återgå till fliken Rapport i Power BI.
Skapa det klustrade kolumndiagrammet
I Power BI väljer du Grupperat stapeldiagram under Visualiseringar.
Lägg till
DateValue
i X-axel, högerklicka och väljDateValue
, i stället förDate Hierarchy
Lägg till
Count
i Y-axeln.Lägg till
TotalStoryPoints
i Y-axeln.
Exempelrapporten visar nedbrändhet för både antalet berättelser och summor eller berättelsepunkter.