Acumular valores de item de trabalho filho para relatório de exemplo pai
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
O Rollup fornece suporte para mostrar uma contagem de itens de trabalho ou soma de Pontos de História, Trabalho Restante ou outro campo personalizado de itens filho. Este artigo fornece vários exemplos de como gerar um relatório cumulativo de tabela para Épicos, Recursos ou Histórias de Usuário que contêm itens de trabalho filho. A imagem a seguir mostra um exemplo de Pontos de História acumulados para seus Recursos pai.
Para saber mais sobre o pacote cumulativo e as opções para mostrar o pacote cumulativo, consulte Exibir o progresso ou os totais do pacote cumulativo nos quadros do Azure.
Observação
Este artigo pressupõe que você tenha lido Visão geral de relatórios de exemplo usando consultas OData e tenha uma compreensão básica do Power BI.
Pré-requisitos
- Para exibir dados do Analytics e consultar o serviço, você precisa ser membro de um projeto com acesso básico ou superior. Por padrão, todos os membros do projeto recebem permissões para consultar Análise e definir exibições do Analytics.
- Para saber mais sobre outros pré-requisitos relacionados à habilitação de serviço e recursos e atividades gerais de acompanhamento de dados, consulte Permissões e pré-requisitos para acessar o Analytics.
Consultas de exemplo
As consultas a WorkItems
seguir retornam dados do conjunto de entidades para dar suporte à geração de relatórios de matriz de rollup.
Observação
Para determinar as propriedades disponíveis para fins de filtro ou relatório, consulte Referência de metadados para Azure Boards. Você pode filtrar suas consultas ou retornar propriedades usando qualquer um dos Property
valores em um EntityType
ou NavigationPropertyBinding Path
valores disponíveis com um EntitySet
. Cada EntitySet
corresponde a um EntityType
. Para saber mais sobre o tipo de dados de cada valor, examine os metadados fornecidos para o correspondente EntityType
.
Rollup Story aponta para recursos de histórias de usuário filho com base no caminho da área
Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter Consulta em Branco de> Dados . Para obter mais informações, examine Visão geral de relatórios de exemplo usando consultas 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
Cadeias de caracteres de substituição e detalhamento de consulta
Substitua as cadeias de caracteres a seguir pelos valores. Não inclua colchetes {} com sua substituição. Por exemplo, se o nome da sua organização for "Fabrikam", substitua por {organization}
Fabrikam
, não {Fabrikam}
.
{organization}
- Nome da sua organização{project}
- O nome do projeto da sua equipe, ou omitir "/{project}" completamente, para uma consulta entre projetos{areapath}
- Seu caminho de área. Formato de exemplo:Project\Level1\Level2
.
Detalhamento da consulta
A tabela a seguir descreve cada parte da consulta.
Parte da consulta
Descrição
$filter=WorkItemType eq 'Feature'
Recursos de retorno.
and State ne 'Cut'
Omitir bugs fechados.
and startswith(Area/AreaPath,'{areapath}')
Retornar itens de trabalho em um Caminho de Área específico, substituindo Area/AreaPath eq '{areapath}'
itens de retorno em um Caminho de Área específico.
Para filtrar por Nome da Equipe, use a instrução Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Descendants/any()
Inclua todos os recursos, mesmo aqueles sem histórias de usuário. Substitua por "any(d:d/WorkItemType eq 'User Story')" para omitir Recursos que não têm Histórias de Usuário filhas.
&$select=WorkItemId, Title, WorkItemType, State
Selecione os campos a serem retornados.
&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),
Selecione campos AssignedTo
de propriedade expansíveis , Iteration
, Area
.
Descendants(
Expanda a Descendants
cláusula.
$apply=filter(WorkItemType eq 'User Story')
Filtre os descendentes para incluir apenas Histórias de Usuário (omite tarefas e bugs).
/aggregate($count as CountOfUserStories, StoryPoints with sum as TotalStoryPoints)
Para todos os descendentes correspondentes à cláusula de filtro, conte-os e some a StoryPoints
propriedade.
)
Feche o Descendants()
.
História de rollup aponta para recursos de histórias de usuário filho com base em equipes
As consultas a seguir mostram como gerar relatórios cumulativos filtrando por nome de equipe em vez de Caminho de Área.
Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter Consulta em Branco de> Dados . Para obter mais informações, examine Visão geral de relatórios de exemplo usando consultas 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 aponta para épicos
Você pode acumular pontos de história para Epics usando as seguintes consultas.
Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter Consulta em Branco de> Dados . Para obter mais informações, examine Visão geral de relatórios de exemplo usando consultas 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
Acumular tarefas Trabalho restante e trabalho concluído para histórias de usuários
A consulta a seguir mostra como acumular Trabalho Restante e Trabalho Concluído atribuídos a Tarefas filho para Histórias de Usuário na hierarquia. Essas consultas pressupõem que as Tarefas são atribuídas como filhas de uma História de Usuário no Caminho da Área especificado.
Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter Consulta em Branco de> Dados . Para obter mais informações, examine Visão geral de relatórios de exemplo usando consultas 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
Contagem de bugs do Rollup para recursos
As consultas a seguir mostram como acumular a contagem de Bugs atribuídos a Recursos. Essas consultas pressupõem que os Bugs são definidos como filhos de um Recurso no Caminho da Área especificado.
Você pode colar a consulta do Power BI listada abaixo diretamente na janela Obter Consulta em Branco de> Dados . Para obter mais informações, examine Visão geral de relatórios de exemplo usando consultas 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
(Opcional) Renomear consulta
Você pode renomear o rótulo de consulta padrão, Query1, para algo mais significativo. Basta inserir um novo nome no painel Configurações de Consulta .
Expandir colunas no Power BI
A &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath)
cláusula retorna registros que contêm vários campos. Antes de criar o relatório, você precisa expandir o registro para nivelá-lo em campos específicos. Nesse caso, você desejará expandir os seguintes registros:
AssignedTo
AreaPath
IterationPath
Para saber como, consulte Transformar dados do Analytics para gerar relatórios do Power BI.
(Opcional) Renomear campos
Depois de expandir as colunas, convém renomear um ou mais campos. Por exemplo, você pode renomear a coluna AreaPath
para Area Path
. Para saber como, consulte Renomear campos de coluna.
Substituir valores nulos em campos de rollup
Se um item de trabalho não tiver filhos, o valor cumulativo poderá ser nulo. Por exemplo, Descendants.CountOfUserStories será "null" se um Recurso não tiver nenhuma Histórias de Usuário filhas.
Para facilitar os relatórios, substitua todos os nulos por zero seguindo estas etapas.
- Selecione a coluna clicando no cabeçalho da coluna.
- Selecione o menu Transformar .
- Selecione Substituir valores. A caixa de diálogo Substituir valores é exibida.
- Digite "null" em Valor a ser localizado.
- Digite "0" em Substituir por.
- Escolha OK.
Repita para todas as colunas de rollup.
Feche a consulta e aplique suas alterações
Depois de concluir todas as transformações de dados, escolha Fechar & Aplicar no menu Página Inicial para salvar a consulta e retornar à guia Relatório no Power BI.
Criar o relatório Tabela
No Power BI, escolha o relatório Tabela em Visualizações.
Adicione os seguintes campos a Colunas na ordem indicada:
WorkItemI
, escolha Não resumir para mostrar a ID, se necessárioWorkItemType
Title
State
Count of User Stories
Total Story Points
.
O relatório de exemplo é exibido.
Artigos relacionados
- Visão geral de relatórios de exemplo usando consultas OData
- Construir consultas OData para Análise
- Conectar-se usando consultas do Power BI e OData
- Referência de metadados para o Azure Boards Analytics
- Relatórios de exemplo e índice de referência rápida
- Adicionar uma segmentação de equipe a um relatório existente
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de