Condividi tramite


Aggregare i valori degli elementi di lavoro figli nel report di esempio dei padri

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Il rollup consente di visualizzare un conteggio degli elementi di lavoro o la somma dei Punti Storia, del Lavoro Rimanente o di un altro campo personalizzato degli elementi figli. 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 rapporto sulla matrice di riepilogo delle funzionalità.

Per ulteriori informazioni sul rollup e sulle opzioni di visualizzazione, vedere Visualizzare lo stato di avanzamento del rollup o i totali in Azure Boards.

Nota

Questo articolo presuppone che tu abbia letto Panoramica dei report di esempio usando le query OData e possieda una conoscenza di base di Power BI.

Categoria Requisiti
Livelli di accesso - membro del progetto.
- Almeno accesso di base .
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.

Interrogazioni di esempio

Le seguenti interrogazioni restituiscono dati dall'insieme di entità WorkItems per supportare la creazione di report di sintesi a matrice.

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 sotto un EntityType o i valori disponibili con un NavigationPropertyBinding Path. 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.

Aggrega i punti delle storie ai funzionalità delle storie utente figlio basate sul percorso dell'area

Copiare e incollare la seguente query di Power BI direttamente nella 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 interrogazioni

Sostituire le stringhe seguenti con i valori. Non includere parentesi {} con la sostituzione. Ad esempio, se il nome dell'organizzazione è "Fabrikam", sostituire {organization} con Fabrikam, non {Fabrikam}.

  • {organization} - Nome dell'organizzazione
  • {project} - Il nome del progetto del team, oppure omettere completamente "/{project}" per una query interprogetto
  • {areapath} - Il percorso della tua 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'

Funzionalità di ritorno.

and State ne 'Cut'

Omettere bug chiusi.

and startswith(Area/AreaPath,'{areapath}')

Restituisce gli elementi di lavoro in un percorso di area specifico, e sostituendo Area/AreaPath eq '{areapath}' restituisce gli elementi in un altro 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:d/WorkItemType eq 'User Story')" per omettere le Feature 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 che corrispondono alla clausola di filtro, contali e somma la proprietà StoryPoints.

)

Chiudere Descendants().

Riepilogare i Punti Storia nelle Funzionalità delle User Stories figlie in base ai Team

Le query seguenti illustrano come generare report di rollup filtrando in base al nome del team anziché al percorso area.

Copiare e incollare la seguente query di Power BI direttamente nella 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

Aggregare i punti delle storie agli Epic

È possibile riunire i punti storia in Epics usando le seguenti query.

Copiare e incollare la seguente query di Power BI direttamente nella 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

Aggregare il lavoro rimanente e il lavoro completato alle User Stories

La query seguente illustra come riassumere il lavoro rimanente e il lavoro completato assegnati alle attività figlio all'interno delle storie utente nella gerarchia. Queste query presuppongono che le attività vengano assegnate come elementi figlio di una User Story nell'Area Path specificato.

Copiare e incollare la seguente query di Power BI direttamente nella 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

Aggrega il conteggio dei bug alle funzionalità

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 Caratteristica nel percorso Area specificato.

Copiare e incollare la seguente query di Power BI direttamente nella 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.

Screenshot delle opzioni del menu delle query di Power BI, con l'opzione di 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 suddividerlo 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 possiede storie utente figlie.

Per semplificare la creazione di report, sostituire tutti i valori Null con zero seguendo questa procedura.

  1. Selezionare la colonna facendo clic sull'intestazione della 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'editor di Power Query, opzione Chiudi e Applica.

Crea il report della tabella

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

    Screenshot delle visualizzazioni di Power BI e delle selezioni dei 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 rapporto a matrice del rollup delle funzionalità di esempio.