Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
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 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 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.
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.
- Selezionare la colonna facendo clic sull'intestazione della 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.
Screenshot dell'editor di Power Query, opzione Chiudi e Applica.
Crea il report della 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 necessario WorkItemType
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 l'analisi dei dati
- Connettersi a Power BI usando query OData
- Fare riferimento ai metadati per le Analisi di Azure Boards
- Accedere ai report di esempio e all'indice di riferimento rapido
- Aggiungere un slicer Team a un report esistente