Rilasciare query e report di esempio di burndown
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
I report burndown e burnup mostrano quanto lavoro viene completato nel tempo. L'immagine seguente mostra il burndown in base al conteggio delle storie utente e alla somma dei punti storia.
I grafici burn-down hanno senso solo se si pianifica il lavoro per il periodo di tempo del grafico. In caso contrario, se si prevede uno sprint per sprint, non verrà visualizzato un burndown standard. In questi casi, un grafico di burnup ha più senso per vedere come vengono eseguiti i progressi nel tempo.
Importante
- L'eliminazione di percorsi di area o la riconfigurazione dei percorsi di iterazione causa una perdita irreversibile dei dati. Ad esempio, i grafici dei widget burndown e burnup, il burndown sprint e i grafici di velocità per i team con percorsi di area modificati non visualizzerà dati accurati. I grafici di tendenza cronologici fanno riferimento al percorso area e al percorso di iterazione, così come sono stati definiti al momento per ogni elemento di lavoro. Dopo l'eliminazione, non è possibile recuperare i dati cronologici per questi percorsi.
- È possibile eliminare solo percorsi di area e iterazione non più utilizzati da elementi di lavoro.
Per altre informazioni sul burndown e sul burnup, vedere Configurare un widget burndown o burnup e le indicazioni per burndown e burnup.
Nota
Questo articolo presuppone che sia possibile leggere Panoramica dei report di esempio usando query OData e avere una conoscenza di base di Power BI.
Prerequisiti
- Accesso: essere un membro di un progetto con almeno l'accesso Basic .
- Autorizzazioni: per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste.
- Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics.
Query di esempio
Le query in questa sezione illustrano come generare grafici burn-down degli elementi di lavoro in base ai dati cronologici. Tutte queste query specificano il WorkItemSnapshot
set di entità.
Nota
Per determinare le proprietà disponibili a scopo di filtro o report, vedere Informazioni di riferimento sui metadati per Azure Boards. È possibile filtrare le query o restituire proprietà usando uno qualsiasi dei Property
valori in un EntityType
oggetto o NavigationPropertyBinding Path
i valori disponibili con un oggetto EntitySet
. Ognuno EntitySet
corrisponde a un oggetto EntityType
. Per altre informazioni sul tipo di dati di ogni valore, esaminare i metadati forniti per l'oggetto corrispondente EntityType
.
Burndown delle storie utente in un percorso di area dalla data di inizio e di fine
La query seguente illustra come restituire i dati cronologici delle storie utente per una versione in base agli elementi di lavoro contrassegnati con un tag di versione.
Nota
Per i report basati sul filtro di un tag, il tag deve essere assegnato all'elemento di lavoro all'inizio della data di inizio del rilascio o del burndown/burnup. In caso contrario, l'elemento di lavoro non è incluso nei dati restituiti.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query OData.
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
Stringhe di sostituzione e scomposizione delle query
Sostituire le stringhe seguenti con i valori. Non includere parentesi quadre {} con la sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization}
con Fabrikam
, non {Fabrikam}
.
{organization}
- Nome dell'organizzazione{project}
- Nome del progetto team o omettere completamente "/{project}" per una query tra progetti{areapath}
- Il percorso dell'area. Formato di esempio:Project\Level1\Level2
{tag}
- Tag che rappresenta la versione. Tutti gli elementi di lavoro contrassegnati con{tagname}
sono inclusi nel report{startdate}
- Data di inizio del report burndown con il formato :YYYY-MM-DDZ
. Ad esempio:2022-04-01Z
rappresenta il 2022-aprile-01. Non racchiudere tra virgolette.{enddate}
- Data di fine del report di burndown.
Suddivisione delle query
La tabella seguente descrive ogni parte della query.
Parte della query
Descrizione
$apply=filter(WorkItemType eq 'User Story'
Includi storie utente nel burndown.
and StateCategory ne 'Completed'
Filtra gli elementi completati. Per altre informazioni sulle categorie di stato, vedere Modalità di utilizzo degli stati e delle categorie di stato del flusso di lavoro nei backlog e nelle bacheche.
and startswith(Area/AreaPath,'{areapath}')
Includere solo le storie utente in un percorso di area specifico sostituendo '{areapath}'
.
Per filtrare in base al nome di un team, usare l'istruzione Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Tags/any(x:x/TagName eq '{tagname}')
.
Specifica l'etichetta di tag che rappresenta la versione in cui eseguire il burndown e per includere tutti gli elementi di lavoro contrassegnati con {tagname} nel report.
and DateValue ge {startdate}
Avviare il burndown su o dopo la data specificata. Esempio: 2019-04-01Z rappresenta il 2019-aprile-01.
and DateValue le {enddate}
Avviare il burndown prima o prima della data specificata. Stesso formato di {startdate}.
)
Clausola Close filter()
.
/groupby (
Clausola Start groupby()
.
(DateValue, State, Area/AreaPath),
Raggruppa per DateValue
(usato per la tendenza) e tutti i campi su cui si desidera creare report.
aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)
Aggrega per conteggio delle storie utente e della somma dei punti storia.
)
Clausola Close groupby()
.
Burndown delle storie utente per un team
La query seguente restituisce i dati di burndown filtrati in base al nome del team anziché al percorso area.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query OData.
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 con uno snapshot ogni venerdì
L'uso di uno snapshot settimanale riduce la quantità di dati estratti in Power BI e aumenta le prestazioni delle query.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query OData.
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 basato su un'area e un percorso di iterazione
Alcune organizzazioni usano percorsi di iterazione per contrassegnare le storie per una versione. Ad esempio, possono avere un percorso di iterazione di MyProject\Release1. La query seguente mostra come selezionare Storie utente in base al percorso di iterazione.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query OData.
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 con un valore di campo personalizzato
Alcune organizzazioni usano un campo personalizzato per contrassegnare le storie utente per una versione. Ad esempio, possono avere un campo denominato Cardine. Questa query mostra come selezionare Storie utente in base a un campo personalizzato.
Sarà necessario sostituire sia che {customfieldname}
{releasevalue}
nella query. Per determinare il nome del campo personalizzato, vedere Informazioni di riferimento sui metadati per Azure Boards, Proprietà personalizzate. Si sostituirà {customfieldname}
con il nome della proprietà personalizzata, ad esempio Custom_Milestone
.
Copiare e incollare la query di Power BI seguente direttamente nella finestra Recupera dati>query vuota. Per altre informazioni, vedere Panoramica dei report di esempio che usano query OData.
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
(Facoltativo) Rinominare la query
È possibile rinominare l'etichetta di query predefinita Query1 in qualcosa di più significativo. È sufficiente immettere un nuovo nome dal riquadro Impostazioni query.
Espandere le colonne in editor di Power Query
Prima di creare il report, è necessario espandere le colonne che restituiscono record contenenti diversi campi. In questa istanza è necessario espandere i record seguenti:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
Per informazioni su come espandere gli elementi di lavoro, vedere Trasformare i dati di Analisi per generare report di Power BI.
Chiudere la query e applicare le modifiche
Dopo aver completato tutte le trasformazioni dei dati, scegliere Chiudi e applica dal menu Home per salvare la query e tornare alla scheda Report in Power BI.
Creare l'istogramma a colonne raggruppate
In Power BI scegliere Istogramma cluster in Visualizzazioni.
Aggiungi
DateValue
all'asse X, fai clic con il pulsante destro del mouse e scegliDateValue
, anzichéDate Hierarchy
Aggiungi
Count
all'asse Y.Aggiungi
TotalStoryPoints
all'asse Y.
Il report di esempio visualizza il burndown sia sul conteggio delle storie che sulla somma o sui punti storia.
Articoli correlati
- Esplorare i report di esempio usando query OData
- Costruire query OData per Analytics
- Connettersi a Power BI usando query OData
- Fare riferimento ai metadati per Analisi di Azure Boards
- Accedere ai report di esempio e all'indice di riferimento rapido
- Aggiungere un filtro dei dati team a un report esistente