Rollup dei valori degli elementi di lavoro figlio nel report di esempio padre
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Il rollup fornisce il supporto per visualizzare un conteggio degli elementi di lavoro o la somma di punti brano, lavoro rimanente o altro campo personalizzato di elementi figlio. Questo articolo fornisce diversi esempi di come generare un report di rollup tabulare per epiche, funzionalità o storie utente che contengono elementi di lavoro figlio. L'immagine seguente mostra un esempio di story points di cui è stato eseguito il rollup per le funzionalità padre.
Per altre informazioni sull'rollup e sulle opzioni da visualizzare, vedere Visualizzare lo stato di avanzamento del rollup o i totali in Azure Boards.
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 seguenti restituiscono dati dal WorkItems
set di entità per supportare la generazione di report della matrice di rollup.
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
.
Rollup Story Points to Features of child User Stories based on Area Path
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 startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, 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
.
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 bug chiusi.
and startswith(Area/AreaPath,'{areapath}')
Restituisce elementi di lavoro in un percorso di area specifico, sostituendo Area/AreaPath eq '{areapath}'
gli 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()
Includere tutte le funzionalità, anche quelle senza storie utente. Sostituire con "any(d/WorkItemType eq 'User Story')" per omettere funzionalità che non hanno storie utente figlio.
&$select=WorkItemId, Title, WorkItemType, State
Selezionare i campi da restituire.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Selezionare campi AssignedTo
delle proprietà espandibili , Iteration
, Area
.
Descendants(
Espandere la Descendants
clausola .
$apply=filter(WorkItemType eq 'User Story')
Filtrare i discendenti in modo da includere solo le storie utente (omette attività e bug).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Per tutti i discendenti corrispondenti alla clausola di filtro, contarli e sommare la StoryPoints
proprietà.
)
Chiudere Descendants()
.
Rollup Story Points to Features of child User Stories based on Teams
Le query seguenti illustrano come generare report di rollup filtrando 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=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Rollup Story Points to Epics
È possibile eseguire il rollup dei punti a Epics usando le query seguenti.
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 'Epic'"
&" and State ne 'Cut'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any(d:d/WorkItemType eq 'User Story')"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'User Story')"
&"/aggregate(StoryPoints with sum as TotalStoryPoints)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Attività di rollup lavoro rimanente e lavoro completato nelle storie utente
La query seguente illustra come eseguire il rollup del lavoro rimanente e il lavoro completato assegnati alle attività figlio alle storie utente nella gerarchia. Queste query presuppongono che Le attività vengano assegnate come elementi figlio di una storia utente nel percorso area specificato.
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 'User Story'"
&" and State ne 'Removed'"
&" and startswith(Area/AreaPath,'{areapath}')"
&" and Descendants/any()"
&"& $select=WorkItemId,Title,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Task')"
&"/aggregate(RemainingWork with sum as TotalRemainingWork, CompletedWork with sum as TotalCompletedWork)"
&")",
null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Rollup Bug count to Features
Le query seguenti illustrano come eseguire il rollup del numero di bug assegnati alle funzionalità. Queste query presuppongono che i bug siano definiti come elementi figlio di una funzionalità nel percorso area specificato.
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,WorkItemType,State,AreaSK"
&"& $expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath),"
&"Descendants("
&"$apply=filter(WorkItemType eq 'Bug')"
&"/aggregate($count as CountOfBugs)"
&")",
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 Power BI
La &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
clausola restituisce record che contengono diversi campi. Prima di creare il report, è necessario espandere il record per appiattirlo in campi specifici. In questa istanza è necessario espandere i record seguenti:
AssignedTo
AreaPath
IterationPath
Per informazioni su come, vedere Trasformare i dati di Analisi per generare report di Power BI.
(Facoltativo) Rinominare i campi
Dopo aver espanso le colonne, è possibile rinominare uno o più campi. Ad esempio, è possibile rinominare la colonna AreaPath
in Area Path
. Per informazioni su come, vedere Rinominare i campi delle colonne.
Sostituire i valori Null nei campi di rollup
Se un elemento di lavoro non include elementi figlio, il valore di rollup può essere Null. Ad esempio, Descendants.CountOfUserStories è "null" se una funzionalità non ha storie utente figlio.
Per semplificare la creazione di report, sostituire tutti i valori Null con zero seguendo questa procedura.
- Selezionare la colonna facendo clic sull'intestazione di colonna.
- Selezionare il menu Trasforma .
- Selezionare Sostituisci valori. Verrà visualizzata la finestra di dialogo Sostituisci valori .
- Immettere "null" in Valore da trovare.
- Immettere "0" in Sostituisci con.
- Scegliere OK.
Ripetere per tutte le colonne di rollup.
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 Tabella
In Power BI scegliere il report Tabella in Visualizzazioni.
Aggiungere i campi seguenti a Colonne nell'ordine indicato:
WorkItemI
, scegliere Non riepilogare per visualizzare l'ID, se necessarioWorkItemType
Title
State
Count of User Stories
Total Story Points
.
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