Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Sprint-Burndowndiagramme sind nützlich, um zu überwachen, wie gut ein Team seinen Sprintplan ausführt. Mehrere integrierte Diagramme und Dashboardwidgets unterstützen die Überwachung des Sprint-Burndowns. Siehe Konfigurieren und Überwachen des Sprint-Burndowns.
Sie können jedoch ein Sprint-Burndowndiagramm mithilfe von Analytics und Power BI mit den in diesem Artikel bereitgestellten Abfragen anpassen. Das folgende Beispiel zeigt einen Burndown von User Storys und deren Status.
Wichtig
Das Löschen von Werten für den Bereichspfad oder das Neukonfigurieren von Iterationspfadwerten führt zu unwiderruflichen Datenverlusten in den folgenden Diagrammen:
- Burndown- und Burnup-Widget-Diagramme
- Sprint-Burndown-Diagramme
- Geschwindigkeitsdiagramme für Teams mit geänderten Bereichspfaden
- Verlaufstrenddiagramme, die auf die Werte " Bereichspfad" und " Iterationspfad " verweisen, die zur Zeit für jede Arbeitsaufgabe definiert sind
Sie können Bereichs- und Iterationspfade nur löschen, wenn sie nicht mehr von Arbeitsaufgaben verwendet werden. Wenn Sie diese Pfade löschen, können Sie ihre historischen Daten nicht mehr abrufen.
Weitere Informationen zu Burndown und Burnup finden Sie unter Burndown und Burnup Anleitung.
Hinweis
In diesem Artikel wird davon ausgegangen, dass Sie Overview von Beispielberichten mithilfe von OData-Abfragen lesen und ein grundlegendes Verständnis von Power BI haben.
| Kategorie | Anforderungen |
|---|---|
| Zugriffsebenen |
-
Projektmitglied. – Mindestens einfacher Zugriff. |
| Erlaubnisse | 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
Burndown-Diagramme erfordern eine Abfrage des WorkItemSnapshot-Entitätssatzes, um Verlaufsdaten abzurufen.
Hinweis
Informationen zum Suchen verfügbarer Eigenschaften zum Filtern oder Melden finden Sie in der Metadata-Referenz für Azure Boards. Sie können Abfragen filtern oder Eigenschaften zurückgeben, indem Sie einen beliebigen Property Wert verwenden, der unter einem EntityTypeoder einem beliebigen NavigationPropertyBinding Path für ein EntitySetObjekt aufgeführten Wert definiert ist. Jede EntitySet entspricht einem EntityType, der den Datentyp für jede Eigenschaft dokumentiert.
Burndown von Benutzer-Storys für einen Bereichspfad und die aktuelle Iteration
Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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 startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"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. Klammern nicht einschließen {} in Ihrer Ersetzung Wenn Ihr Organisationsname z. B. "Fabrikam" lautet, ersetzen Sie {organization} durch Fabrikam, nicht durch {Fabrikam}.
-
{areapath}- Ihr Bereichspfad. Beispielformat:Project\Level1\Level2.
Abfrageaufschlüsselung
In der folgenden Tabelle werden die einzelnen Teile der Abfrage beschrieben.
Abfrageteil
Beschreibung
$apply=filter(
Startklausel filter() .
WorkItemType eq 'User Story'
Burndown für Benutzer-Storys.
and startswith(Area/AreaPath,'{areapath}')
Arbeitselemente unter einem bestimmten Bereichspfad. Durch ersetzen Area/AreaPath eq '{areapath}' gibt Elemente an einem bestimmten Bereichspfad zurück.
Verwenden Sie die filter-Anweisung, um nach Teamname zu filtern. Teams/any(x:x/TeamName eq '{teamname})'
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 DateValue ge Iteration/StartDate
Beginnen Sie den Trend beim Iterationsstart.
and DateValue le Iteration/EndDate
Endtrend am Iterationsende.
and Iteration/StartDate le now()
Wählen Sie aktuelle Iteration aus.
and Iteration/EndDate ge now()
Wählen Sie aktuelle Iteration aus.
)
Die filter()-Klausel schließen.
/groupby(
Startklausel groupby() .
(DateValue, State, WorkItemType, Priority, Area/AreaPath, Iteration/IterationPath),
Gruppieren Sie nach DateValue (für Trending) und allen Feldern, die Sie liefern möchten.
aggregate($count as Count, StoryPoints with sum as TotalStoryPoints)
Aggregieren nach Anzahl der Benutzergeschichten und Summe von Story Points.
)
Die groupby()-Klausel schließen.
Burndown Benutzer-Storys für ein Team und die aktuelle Iteration
Diese Abfrage ist identisch mit der zuvor verwendeten Abfrage, filtert jedoch nach Teamname anstelle des Bereichspfads.
Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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 (Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}') or Teams/any(x:x/TeamName eq '{teamname}')) "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Priority,Area/AreaPath,Iteration/IterationPath), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown-Benutzergeschichten für alle Sprints seit Beginn eines Jahres
Vielleicht möchten Sie einen Burndown für alle Sprints in einem einzigen Bericht anzeigen. Diese Abfragen ziehen Sprint-Burndowns und deren Story Points für alle Sprints seit Beginn eines Jahres.
Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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 startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate ge 2022-01-01Z "
&") "
&"/groupby( "
&"(DateValue,Iteration/EndDate,Area/AreaPath,Iteration/IterationPath,State,WorkItemType,Priority,AreaSK), "
&"aggregate($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndownvorgänge und verbleibende Arbeit
Kopieren Sie die folgende Power BI Abfrage direkt in das Fenster Get Data>Blank Query. 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( "
&"startswith(Area/AreaPath,'{areapath}') "
&"and StateCategory ne 'Completed' "
&"and DateValue ge Iteration/StartDate "
&"and DateValue le Iteration/EndDate "
&"and Iteration/StartDate le now() "
&"and Iteration/EndDate ge now() "
&"and WorkItemType eq 'Task' "
&") "
&"/groupby( "
&"(DateValue,State,WorkItemType,Activity,Priority,Area/AreaPath,Iteration/IterationPath,AreaSK), "
&"aggregate($count as Count, RemainingWork with sum as TotalRemainingWork) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
(Optional) Abfrage umbenennen
Sie können das Standardabfrage-Label Query1 in einen aussagekräftigeren Namen umbenennen. Geben Sie im Bereich "Abfrageeinstellungen " einen neuen Namen ein.
Erweitern von Spalten in Power Query-Editor
Erweitern Sie vor dem Erstellen des Berichts Spalten, die Datensätze mit mehreren Feldern zurückgeben. Erweitern Sie in diesem Fall die folgenden Datensätze:
AreaIterationAssignedTo
Weitere Informationen zum Erweitern von Arbeitsaufgaben finden Sie unter Transform Analytics-Daten, um Power BI Berichte zu generieren.
Schließen Sie die Abfrage, und wenden Sie Ihre Änderungen an.
Wenn Sie alle Datentransformationen abgeschlossen haben, wählen Sie Schließen & Anwenden aus dem Menü Start. Diese Aktion speichert die Abfrage und gibt Sie in Power BI zur Registerkarte Report zurück.
Erstellen Sie den gestapelten Säulendiagrammbericht
Wählen Sie in Power BI unter Visualizations das gestapelte Säulendiagramm aus.
Fügen Sie
DateValuezur X-Achse hinzu. Klicken Sie mit der rechten Maustaste, und wählen SieDateValuestattDate Hierarchy.Fügen Sie
Countzur Y-Achse hinzu.Statezum Legende hinzufügen.
Der folgende Beispielbericht liefert einen Burndown sowohl für Story Points als auch für die Anzahl der Stories.
Verwandte Inhalte
- Erkunden von Beispielberichten mithilfe von OData-Abfragen
- Erstellen von OData-Abfragen für Analytics
- Mit Power BI über OData-Abfragen verbinden
- Verweisen auf Metadaten für Azure Boards Analytics
- Zugriff auf Beispielberichte und Schnellübersichtsindex
- Hinzufügen eines Team-Slicers zu einem vorhandenen Bericht