Veröffentlichen von Burndown-Beispielabfragen und -berichten
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019
Burndown- und Burnupberichte zeigen, wie viel Arbeit im Laufe der Zeit abgeschlossen wird. Die folgende Abbildung zeigt den Burndown, sowohl anhand der Anzahl der Benutzergeschichten als auch der Summe von Story Points.
Burndowndiagramme sind nur sinnvoll, wenn Sie Ihre Arbeit für den Zeitraum des Diagramms planen. Andernfalls wird bei einer Sprint-nach-Sprint-Basis kein Standard-Burndown angezeigt. In diesen Fällen ist ein Burnupdiagramm sinnvoller, um zu sehen, wie der Fortschritt im Laufe der Zeit erfolgt.
Wichtig
- Das Löschen von Bereichspfaden oder das Neukonfigurieren von Iterationspfaden verursacht einen unwiderruflichen Datenverlust. Beispielsweise werden Burndown- und Burnup-Widgetdiagramme, Sprint-Burndown- und Geschwindigkeitsdiagramme für Teams mit geänderten Flächenpfaden keine genauen Daten angezeigt. Historische Trenddiagramme verweisen auf den Bereichspfad und den Iterationspfad, wie sie zum Zeitpunkt für jede Arbeitsaufgabe definiert wurden. Nach dem Löschen können Sie keine historischen Daten für diese Pfade abrufen.
- Sie können nur Bereiche und Iterationspfade löschen, die nicht mehr von Arbeitsaufgaben verwendet werden.
Weitere Informationen zu Burndown und Burnup finden Sie unter Konfigurieren eines Burndown- oder Burnup-Widgets und Burndown- und Burnup-Leitfadens.
Hinweis
In diesem Artikel wird davon ausgegangen, dass Sie eine Übersicht über Beispielberichte mit OData-Abfragen lesen und ein grundlegendes Verständnis von Power BI haben.
Voraussetzungen
- Access: Mitglied eines Projekts mit mindestens standardem Zugriff sein.
- Berechtigungen: Standardmäßig verfügen Projektmitglieder über die Berechtigung zum Abfragen von Analysen und Erstellen von Ansichten.
- Weitere Informationen zu anderen Voraussetzungen für die Dienst- und Featureaktivierung sowie allgemeine Datenverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.
Beispielabfragen
Die Abfragen in diesem Abschnitt zeigen, wie Burndowndiagramme von Arbeitsaufgaben basierend auf historischen Daten generiert werden. Alle diese Abfragen geben den WorkItemSnapshot
Entitätssatz an.
Hinweis
Informationen zum Ermitteln verfügbarer Eigenschaften für Filter- oder Berichtszwecke finden Sie unter Metadatenreferenz für Azure Boards. Sie können Ihre Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen der Werte unter oder NavigationPropertyBinding Path
EntityType
verwenden, die Property
mit einem EntitySet
verfügbar sind. Jede EntitySet
entspricht einem EntityType
. Weitere Informationen zum Datentyp der einzelnen Werte erhalten Sie in den Metadaten, die für den entsprechenden Wert EntityType
bereitgestellt werden.
Burndown von User Stories in einem Bereichspfad vom Start- und Enddatum
Die folgende Abfrage zeigt, wie Sie verlaufsbezogene Daten von User Stories für eine Version basierend auf Arbeitsaufgaben zurückgeben, die mit einem Releasetag markiert sind.
Hinweis
Für Berichte, die auf dem Filtern eines Tags basieren, muss das Tag dem Arbeitselement am Anfang des Veröffentlichungs- oder Burndown-/Burnup-Startdatums zugewiesen werden. Andernfalls ist die Arbeitsaufgabe nicht in den zurückgegebenen Daten enthalten.
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
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
Ersetzungszeichenfolgen und Abfrageaufschlüsselung
Ersetzen Sie die folgenden Zeichenfolgen durch Ihre Werte. Schließen Sie keine Klammern {} in Ihre Ersetzung ein. Wenn Ihr Organisationsname beispielsweise "Fabrikam" lautet, ersetzen Sie {organization}
durch Fabrikam
, nicht {Fabrikam}
.
{organization}
- Name Ihrer Organisation{project}
- Der Name Ihres Teamprojekts oder das vollständige Auslassen von "/{project}" für eine projektübergreifende Abfrage{areapath}
- Ihr Bereichspfad. Beispielformat:Project\Level1\Level2
{tag}
- Ein Tag, das Ihre Version darstellt. Alle arbeitsaufgaben, die{tagname}
markiert sind, sind im Bericht enthalten.{startdate}
- Das Datum, an dem der Burndownbericht mit dem Format beginnt:YYYY-MM-DDZ
. Beispiel:2022-04-01Z
stellt 2022-April-01 dar. Schließen Sie keine Anführungszeichen ein.{enddate}
- Das Datum zum Beenden des Burndownberichts.
Abfrageaufschlüsselung
In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.
Abfrageteil
Beschreibung
$apply=filter(WorkItemType eq 'User Story'
Benutzergeschichten in Burndown einschließen.
and StateCategory ne 'Completed'
Filtert abgeschlossene Elemente heraus. Weitere Informationen zu Statuskategorien finden Sie unter Verwenden von Workflowzuständen und Zustandskategorien in Backlogs und Boards.
and startswith(Area/AreaPath,'{areapath}')
Fügen Sie nur Benutzergeschichten unter einem bestimmten Bereichspfad hinzu, der ersetzt wird '{areapath}'
.
Verwenden Sie die Filteranweisung Teams/any(x:x/TeamName eq '{teamname})'
, um nach einem Teamnamen zu filtern.
and Tags/any(x:x/TagName eq '{tagname}')
.
Gibt die Tagbezeichnung an, die die Veröffentlichung des Burndowns darstellt, und alle Arbeitsaufgaben, die mit {tagname} im Bericht markiert sind.
and DateValue ge {startdate}
Beginnen Sie mit dem Burndown am oder nach dem angegebenen Datum. Beispiel: 2019-04-01Z steht für 2019-April-01.
and DateValue le {enddate}
Beginnen Sie mit dem Burndown am oder vor dem angegebenen Datum. Dasselbe Format wie {startdate}.
)
Close-Klausel filter()
.
/groupby (
Startklausel groupby()
.
(DateValue, State, Area/AreaPath),
Gruppieren Nach DateValue
(wird für trending verwendet) und allen Feldern, an denen Sie berichten möchten.
aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)
Aggregieren nach Anzahl der Benutzergeschichten und Summe von Story Points.
)
Close-Klausel groupby()
.
Burndown von User Stories für ein Team
Die folgende Abfrage gibt Burndowndaten zurück, die nach Teamname und nicht nach Bereichspfad gefiltert werden.
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
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-Benutzergeschichten mit einer Momentaufnahme jeden Freitag
Die Verwendung einer wöchentlichen Momentaufnahme reduziert die Datenmenge, die in Power BI abgerufen wird, und erhöht die Abfrageleistung.
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
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-Benutzergeschichten basierend auf einem Bereichs- und Iterationspfad
Einige Organisationen verwenden Iterationspfade , um Stories für eine Version zu markieren. Sie können beispielsweise über einen Iterationspfad von MyProject\Release1 verfügen. Die folgende Abfrage zeigt, wie Benutzergeschichten nach Iterationspfad ausgewählt werden.
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
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 mit einem benutzerdefinierten Feldwert
Einige Organisationen verwenden ein benutzerdefiniertes Feld, um User Stories für eine Version zu markieren. Sie können z. B. ein Feld namens "Meilenstein" haben. Diese Abfrage zeigt, wie Sie Benutzergeschichten nach einem benutzerdefinierten Feld auswählen.
Sie müssen sowohl als auch {customfieldname}
{releasevalue}
in der Abfrage ersetzen. Informationen zum Ermitteln des Namens Ihres benutzerdefinierten Felds finden Sie unter "Metadatenreferenz" für Azure Boards, benutzerdefinierte Eigenschaften. Sie ersetzen {customfieldname}
den Benutzerdefinierten Eigenschaftennamen, z. B Custom_Milestone
. .
Kopieren Sie die folgende Power BI-Abfrage, und fügen Sie sie direkt in das Fenster "Leere Datenabfrage> abrufen" ein. Weitere Informationen finden Sie unter Übersicht über Beispielberichte mit OData-Abfragen.
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
(Optional) Abfrage umbenennen
Sie können die Standardabfragebezeichnung Query1 in aussagekräftiger umbenennen. Geben Sie einfach im Bereich Abfrageeinstellungen einen neuen Namen ein.
Erweitern von Spalten in Power Query-Editor
Vor dem Erstellen des Berichts müssen Sie Spalten erweitern, die Datensätze zurückgeben, die mehrere Felder enthalten. In diesem Fall sollten Sie die folgenden Datensätze erweitern:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
Informationen zum Erweitern von Arbeitselementen finden Sie unter Transformieren von Analysedaten zum Generieren von Power BI-Berichten.
Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.
Nachdem Sie alle Datentransformationen abgeschlossen haben, wählen Sie "Schließen" und "Übernehmen " im Menü "Start " aus, um die Abfrage zu speichern und zur Registerkarte "Bericht " in Power BI zurückzukehren.
Erstellen des Gruppierten Säulendiagramms
Wählen Sie in Power BI unter "Visualisierungen" die Option "Gruppiertes Säulendiagramm" aus.
Zur X-Achse hinzufügen
DateValue
, klicken Sie mit der rechten Maustaste, und wählen Sie ausDateValue
, anstattDate Hierarchy
Zur Y-Achse hinzufügen
Count
.Zur Y-Achse hinzufügen
TotalStoryPoints
.
Im Beispielbericht wird der Burndown sowohl für die Anzahl von Stories als auch für summen oder Story Points angezeigt.
Verwandte Artikel
- Erkunden von Beispielberichten mithilfe von OData-Abfragen
- Erstellen von OData-Abfragen für Analytics
- Herstellen einer Verbindung mit Power BI mithilfe von OData-Abfragen
- Informationen zu Metadaten für Azure Boards Analytics
- Access-Beispielberichte und Kurzübersichtsindex
- Hinzufügen eines Teamdatenschnitts zu einem vorhandenen Bericht