Liberar consultas e relatórios de amostra de burndown
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Os relatórios de burndown e burnup mostram quanto trabalho está sendo concluído ao longo do tempo. A imagem a seguir mostra o burndown tanto pela contagem de Histórias de Usuário quanto pela soma de Pontos de História.
Os gráficos de burndown só fazem sentido se você planejar seu trabalho para o período de tempo do gráfico. Caso contrário, se você planejar sprint a sprint, não verá um burndown padrão. Nesses casos, um gráfico de burnup faz mais sentido para ver como o progresso é feito ao longo do tempo.
Importante
- Excluir caminhos de área ou reconfigurar caminhos de iteração causa perda de dados irreversível. Por exemplo, gráficos de widgets de burndown e burnup, burndown de sprint e gráficos de velocidade para equipes com caminhos de área alterados não exibirão dados precisos. Os gráficos de tendência históricos fazem referência ao Caminho de Área e ao Caminho de Iteração conforme foram definidos no momento para cada item de trabalho. Uma vez excluído, você não pode recuperar dados históricos para esses caminhos.
- Você só pode excluir caminhos de área e iteração que não são mais usados por nenhum item de trabalho.
Para obter mais informações sobre burndown e burnup, consulte Configurar um widget de burndown ou burnup e Diretrizes de burndown e burnup.
Nota
Este artigo pressupõe que você leia Visão geral de relatórios de exemplo usando consultas OData e tenha uma compreensão básica do Power BI.
Pré-requisitos
- Acesso: Ser membro de um projeto com pelo menos acesso Básico .
- Permissões: por predefinição, os membros do projeto têm permissão para consultar o Analytics e criar vistas.
- Para obter mais informações sobre outros pré-requisitos relacionados com a ativação de serviços e funcionalidades e atividades gerais de monitorização de dados, consulte Permissões e pré-requisitos para aceder ao Analytics.
Consultas de amostra
As consultas nesta seção mostram como gerar gráficos de burndown de itens de trabalho com base em dados históricos. Todas essas consultas especificam o WorkItemSnapshot
conjunto de entidades.
Nota
Para determinar as propriedades disponíveis para fins de filtro ou relatório, consulte Referência de metadados para painéis do Azure. 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
um corresponde a um EntityType
arquivo . Para obter mais informações sobre o tipo de dados de cada valor, revise os metadados fornecidos para o .EntityType
Burndown de Histórias de Usuário em um caminho de área desde a data de início e término
A consulta a seguir mostra como retornar dados históricos de User Stories para uma versão com base em itens de trabalho marcados com uma tag de versão.
Nota
Para relatórios baseados na filtragem de uma tag, a tag deve ser atribuída ao item de trabalho no início da versão ou na data de início do burndown/burnup. Caso contrário, o item de trabalho não será incluído nos dados retornados.
Copie e cole a seguinte consulta do Power BI diretamente na janela Obter Consulta em Branco de Dados>. Para obter mais informações, consulte 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath), "
&"aggregate ($count as Count, 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 seguintes cadeias de caracteres por seus valores. Não inclua parênteses com a {} sua substituição. Por exemplo, se o nome da sua organização for "Fabrikam", substitua {organization}
por Fabrikam
, não {Fabrikam}
.
{organization}
- Nome da sua organização{project}
- O nome do seu projeto de equipe, ou omitir "/{project}" completamente, para uma consulta entre projetos{areapath}
- O Caminho da Sua Área. Exemplo de formato:Project\Level1\Level2
{tag}
- Uma tag que representa o seu lançamento. Todos os itens de trabalho marcados com{tagname}
são incluídos no relatório{startdate}
- A data para iniciar o relatório de burndown com o formato:YYYY-MM-DDZ
. Por exemplo:2022-04-01Z
representa 2022-abril-01. Não coloque entre aspas.{enddate}
- A data para terminar o relatório de burndown.
Detalhamento da consulta
A tabela a seguir descreve cada parte da consulta.
Parte da consulta
Descrição
$apply=filter(WorkItemType eq 'User Story'
Inclua Histórias de Usuário no burndown.
and StateCategory ne 'Completed'
Filtra os itens concluídos. Para obter mais informações sobre Categorias de Estado, consulte Como os estados do fluxo de trabalho e as categorias de estado são usados em Listas de Pendências e Painéis.
and startswith(Area/AreaPath,'{areapath}')
Inclua apenas Histórias de Usuário em um Caminho de Área específico substituindo '{areapath}'
o .
Para filtrar por um nome de equipe, use a instrução Teams/any(x:x/TeamName eq '{teamname})'
filter .
and Tags/any(x:x/TagName eq '{tagname}')
.
Especifica o rótulo de tag que representa a liberação para burndown e para incluir todos os itens de trabalho marcados com {tagname} no relatório.
and DateValue ge {startdate}
Inicie o burndown na data especificada ou após ela. Exemplo: 2019-04-01Z representa 2019-April-01.
and DateValue le {enddate}
Inicie o burndown na data especificada ou antes dela. Mesmo formato que {startdate}.
)
Cláusula de fechamento filter()
.
/groupby (
Cláusula inicial groupby()
.
(DateValue, State, Area/AreaPath),
Agrupe por DateValue
(usado para tendências) e quaisquer campos sobre os quais você deseja relatar.
aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints)
Agregar por contagem de histórias de usuários e soma de pontos de história.
)
Cláusula de fechamento groupby()
.
Burndown de histórias de usuários para uma equipe
A consulta a seguir retorna dados de burndown filtrados pelo nome da equipe em vez de Caminho da Área.
Copie e cole a seguinte consulta do Power BI diretamente na janela Obter Consulta em Branco de Dados>. Para obter mais informações, consulte 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"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 Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown User Stories com um instantâneo todas as sextas-feiras
O uso de um instantâneo semanal reduz a quantidade de dados extraídos para o Power BI e aumenta o desempenho da consulta.
Copie e cole a seguinte consulta do Power BI diretamente na janela Obter Consulta em Branco de Dados>. Para obter mais informações, consulte 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Tags/any(x:x/TagName eq '{tagname}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&"and Date/DayName eq 'Friday' "
&") "
&"/groupby ( "
&"(DateValue,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown User Stories com base em uma área e caminho de iteração
Algumas organizações usam Caminhos de Iteração para marcar Histórias para uma versão. Por exemplo, eles podem ter um caminho de iteração de MyProject\Release1. A consulta a seguir mostra como selecionar Histórias de Usuário por Caminho de Iteração.
Copie e cole a seguinte consulta do Power BI diretamente na janela Obter Consulta em Branco de Dados>. Para obter mais informações, consulte 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and startswith(Iteration/IterationPath,'{iterationpath}') "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Burndown User Stories com um valor de campo personalizado
Algumas organizações usam um campo personalizado para marcar Histórias de usuário para uma versão. Por exemplo, eles podem ter um campo chamado Marco. Esta consulta mostra como selecionar Histórias de Usuário por um campo personalizado.
Você precisará substituir ambos {customfieldname}
e {releasevalue}
na consulta. Para determinar o nome do seu campo personalizado, consulte Referência de metadados para painéis do Azure, Propriedades personalizadas. Você substituirá {customfieldname}
pelo nome da propriedade personalizada, por exemplo Custom_Milestone
.
Copie e cole a seguinte consulta do Power BI diretamente na janela Obter Consulta em Branco de Dados>. Para obter mais informações, consulte 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/WorkItemSnapshot?"
&"$apply=filter(WorkItemType eq 'User Story' "
&"and StateCategory ne 'Completed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and {customfieldname} eq '{releasevalue}' "
&"and DateValue ge {startdate} "
&"and DateValue le {enddate} "
&") "
&"/groupby ( "
&"(DateValue,StateCategory,State,Area/AreaPath,AreaSK), "
&"aggregate ($count as Count, StoryPoints with sum as TotalStoryPoints) "
&") "
,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 Query Editor
Antes de criar o relatório, você precisará expandir as colunas que retornam registros contendo vários campos. Nesse caso, você desejará expandir os seguintes registros:
Links
Links.TargetWorkItem
Area
Iteration
AssignedTo
Para saber como expandir itens de trabalho, consulte Transformar dados do Analytics para gerar relatórios do Power BI.
Feche a consulta e aplique as alterações
Depois de concluir todas as suas transformações de dados, escolha Fechar & Aplicar no menu Início para salvar a consulta e retornar à guia Relatório no Power BI.
Criar o gráfico de colunas agrupadas
No Power BI, escolha Gráfico de colunas agrupadas em Visualizações.
Adicionar
DateValue
ao Eixo X, clique com o botão direito do rato e selecioneDateValue
, em vez deDate Hierarchy
Adicionar
Count
ao eixo Y.Adicionar
TotalStoryPoints
ao eixo Y.
O relatório de exemplo exibe burndown na contagem de Histórias e soma ou Pontos de História.
Artigos relacionados
- Explore relatórios de exemplo usando consultas OData
- Construir consultas OData para o Analytics
- Conectar-se ao Power BI usando consultas OData
- Consulte os metadados do Azure Boards Analytics
- Aceda a relatórios de exemplo e índice de referência rápida
- Adicionar uma segmentação de dados de equipe a um relatório existente