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.

Screenshot del report matrice di rollup delle funzionalità.

Per altre informazioni sull'rollup e sulle opzioni per visualizzare l'aggiornamento cumulativo, vedere Visualizzare lo stato di avanzamento del rollup o i totali in Azure Boards.

Nota

Questo articolo presuppone di avere letto Panoramica dei report di esempio usando query OData e avere una conoscenza di base di Power BI.

Prerequisiti

  • Per visualizzare i dati di Analisi ed eseguire query sul servizio, è necessario essere membri di un progetto con accesso basic o superiore. Per impostazione predefinita, a tutti i membri del progetto vengono concesse le autorizzazioni per eseguire query su Analisi e definire le visualizzazioni di Analisi.
  • 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

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. 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 AssignedTodelle 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.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. 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.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. 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.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. 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.

È possibile incollare la query di Power BI elencata di seguito direttamente nella finestra Recupera query vuota dati>. 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 Query Impostazioni.

Screenshot delle opzioni del menu query di Power BI, rinominare la 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.

  1. Selezionare la colonna facendo clic sull'intestazione di colonna.
  2. Selezionare il menu Trasforma .
  3. Selezionare Sostituisci valori. Verrà visualizzata la finestra di dialogo Sostituisci valori .
  4. Immettere "null" in Valore da trovare.
  5. Immettere "0" in Sostituisci con.
  6. 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.

Screenshot dell'opzione Chiudi e applica editor di Power Query.

Creare il report Tabella

  1. In Power BI scegliere il report Tabella in Visualizzazioni.

    Screenshot delle visualizzazioni di Power BI e delle selezioni campi per il report della tabella rollup.

  2. Aggiungere i campi seguenti a Colonne nell'ordine indicato:

    • WorkItemI, scegliere Non riepilogare per visualizzare l'ID, se necessario
    • WorkItemType
    • Title
    • State
    • Count of User Stories
    • Total Story Points.

Viene visualizzato il report di esempio.

Screenshot del report matrice di rollup delle funzionalità di esempio.