Report di esempio di rollup dello stato delle funzionalità
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Questo articolo illustra come creare un report a barre in pila per visualizzare lo stato di avanzamento delle funzionalità in base alle storie utente figlio completate. Il report visualizza la percentuale di completamento tramite rollup di Story Points per un determinato set di funzionalità attive. Nell'immagine seguente è illustrato un esempio.
È possibile visualizzare grafici a barre di stato simili dal backlog aggiungendo una colonna di rollup. Per informazioni su come, vedere Visualizzare lo stato di avanzamento del rollup o i totali.
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
Lo stato di avanzamento della funzionalità esegue una query sull'entità WorkItems
per ottenere lo stato di avanzamento corrente.
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
.
Esaminare lo stato delle funzionalità in base a un percorso di 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/WorkItems?"
&"$filter=WorkItemType eq 'Feature' "
&"and State ne 'Removed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Descendants/any()"
&"&$select=WorkItemId,Title,Area,Iteration,AssignedTo,WorkItemType,State,AreaSK"
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(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/{project}
completamente per una query tra progetti{areapath}
- Il percorso dell'area. Formato di esempio:Project/Level1/Level2
.
Suddivisione delle query
La tabella seguente descrive ogni parte della query.
Parte della query
Descrizione
$filter=WorkItemType eq 'Feature'
Restituisce funzionalità.
and State ne 'Cut'
Omettere le funzionalità contrassegnate come Taglia.
and startswith(Area/AreaPath,'{areapath}')
Restituisce elementi di lavoro in un percorso di area specifico. Sostituendo con Area/AreaPath eq '{areapath}'
restituisce elementi in un percorso di area specifico.
Per filtrare in base al nome del team, usare l'istruzione Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Descendants/any()
Filtra tutti gli elementi di lavoro con almeno uno o "qualsiasi" discendente. Include tutte le funzionalità con almeno un elemento di lavoro figlio. Per ottenere tutti gli elementi di lavoro con i relativi discendenti, anche se non sono presenti, eseguire una query senza il Descendants/any()
filtro. Per omettere le funzionalità che non hanno storie utente figlio, sostituire con any(d:d/WorkItemType eq 'User Story')
.
Per tutti gli elementi di lavoro con e senza discendenti:
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Per tutti gli elementi di lavoro con almeno un discendente:
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Selezionare le proprietà da restituire.
&$expand=Descendants(
Inizio della clausola expand Descendants
$apply=filter(WorkItemType eq 'User Story')
Filtrare i discendenti. Includere solo storie utente (omettere attività e bug).
/groupby((StateCategory),
Raggruppare il rollup in base a StateCategory. 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.
aggregate(StoryPoints with sum as TotalStoryPoints))
Somma aggregata dei punti storia.
)
Clausola Close Descendants()
.
Esaminare lo stato di avanzamento delle funzionalità per un team
La query seguente è identica a quella usata in precedenza, ad eccezione dei filtri 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/WorkItems?"
&"$filter=WorkItemType eq 'Feature' "
&"and State ne 'Cut' "
&"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 Descendants/any() "
&"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(StoryPoints with sum as TotalStoryPoints)) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Trasformare i dati in editor di Power Query
La query restituisce diverse colonne che è necessario espandere prima di poterle usare per creare un report. Qualsiasi entità estratta usando un'istruzione $expand OData restituisce un record con potenzialmente diversi campi. Espandere il record per rendere flat l'entità nei relativi campi.
Per il report Stato funzionalità, è necessario eseguire le trasformazioni seguenti:
- Espandere la
Descendants
colonna in due colonne:Descendants.StateCategory
eDescendants.TotalStoryPoints
- Applicare la trasformazione Colonna pivot alla
Descendants.StateCategory
colonna per separare le singole categorie di stato - Sostituire i valori Null in tutte le colonne con pivot.
- Aggiungere una colonna personalizzata per rappresentare la percentuale di completamento. La colonna personalizzata visualizzerà errori se sono presenti colonne Null nelle colonne stato con pivot.
Per informazioni su come, vedere le sezioni seguenti in Trasformare i dati di Analisi per generare report di Power BI:
- Espandere Colonna Discendenti.
- Colonna Pivot Descendants.StateCategory.
- Sostituire i valori Null.
- Creare una colonna calcolata percentuale completata
Nota
In questo esempio i valori Di stato per Storia utente includono Proposta, In corso e Completato.
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 il report grafico a barre in pila
In Power BI scegliere Report grafico a barre in pila in Visualizzazioni.
Aggiungi
Title
all'asse Y.Aggiungi
PercentComplete
all'asse X, fai clic con il pulsante destro del mouse e scegli Somma.
Viene visualizzato il report di esempio.
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