Listar itens de trabalho vinculados, consultas de exemplo e relatórios

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Este artigo mostra como criar um relatório que lista itens de trabalho vinculados a outros itens de trabalho. Por exemplo, o relatório a seguir mostra uma lista de Recursos vinculados a Histórias de Usuário com o tipo de link pai-filho.

Captura de tela do relatório da tabela Links pai-filho do relatório da tabela Recursos e Histórias de Usuário.

Para saber mais sobre tipos de link e itens de trabalho vinculados, consulte Vincular histórias de usuários, problemas, bugs e outros itens de trabalho.

Outras consultas de exemplo incluem listar bugs com um link Duplicar para outro bug e listar bugs que não contêm um link Duplicar para outro bug.

Nota

Este artigo pressupõe que você leu Visão geral de relatórios de exemplo usando consultas OData e tem uma compreensão básica do Power BI.

Pré-requisitos

  • Para visualizar dados do Google 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 o Google Analytics e definir exibições do Google Analytics.
  • Para saber mais sobre outros pré-requisitos relacionados à ativação de serviços e recursos e atividades gerais de controle de dados, consulte Permissões e pré-requisitos para acessar o Google Analytics.

Consultas de amostra

Várias consultas são fornecidas que mostram como filtrar itens de trabalho vinculados. Todas essas consultas especificam o WorkItems conjunto de entidades à medida que retornam dados atuais.

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 EntityTypearquivo . Para saber mais sobre o tipo de dados de cada valor, revise os metadados fornecidos para o .EntityType

Recursos de retorno e suas histórias de usuário filhos

Você pode colar a consulta do Power BI listada abaixo 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/WorkItems?"
        &"$filter=WorkItemType eq 'Feature' "
            &"and State ne 'Closed' and State ne 'Removed' "
            &"and startswith(Area/AreaPath,'{areapath}') " 
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Child' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,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.

Detalhamento da consulta

A tabela a seguir descreve cada parte da consulta.

Parte da consulta

Descrição

$filter=WorkItemType eq 'Feature'

Retornar histórias de usuário.

and State ne 'Closed' and State ne 'Removed'

Omitir Recursos cujo Estado está definido como Fechado ou Removido.

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

Inclua apenas Recursos 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 .

&$select=WorkItemId,Title,WorkItemType,State,AreaSK

Selecione os campos a serem retornados.

&$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath),

Especifique os campos a serem usados para expandir AssignedTo, Iteratione Area entidades.

Links(

Expanda a Links entidade.

$filter=LinkTypeName eq 'Child'

Filtre os itens de trabalho vinculados apenas àqueles com o tipo de link Filho . Outros exemplos são Parent, Child, Duplicate, Duplicate Of, Affects, Affected By.

and TargetWorkItem/WorkItemType eq 'User Story';

Inclua apenas Histórias de Usuário vinculadas.

$select=LinkTypeName;

Selecione a LinkTypeName propriedade a ser retornada.

$expand=TargetWorkItem($select=WorkItemType, WorkItemId, Title, State)

Selecione as propriedades do item de trabalho vinculado a ser retornado.

)

Feche a Links() cláusula.

Você pode colar a consulta do Power BI listada abaixo 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/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Retornar Histórias de Usuário vinculadas filtradas pelo Teams

A consulta a seguir é a mesma usada anteriormente neste artigo, exceto que filtra por Nome da 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, 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/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and State ne 'Closed' "
            &"and (Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) or Teams/any(x:x/TeamName eq '{teamname}) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
                &"Links( "
                    &"$filter=LinkTypeName eq 'Related' "
                        &"and TargetWorkItem/WorkItemType eq 'User Story'; "
                    &"$select=LinkTypeName; "
                    &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
                &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Você pode colar a consulta do Power BI listada abaixo 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/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"and State ne 'Closed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath), "
            &"Links( "
                &"$filter=LinkTypeName eq 'Duplicate' "
                &"and TargetWorkItem/WorkItemType eq 'Bug'; "
                    &"$select=LinkTypeName; "
                &"$expand=TargetWorkItem($select=WorkItemType,WorkItemId,Title,State) "
            &") "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Você pode colar a consulta do Power BI listada abaixo 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/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
                &"and State ne 'Closed' "
                &"and startswith(Area/AreaPath,'{areapath}') "
                &"and not (Links/any(x:x/LinkTypeName eq 'Duplicate' and x/TargetWorkItem/WorkItemType eq 'Bug')) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,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.

Captura de ecrã das opções do menu de consulta do Power BI, consulta de mudança de nome.

Transformar dados 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.

(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. Você pode renomeá-los no modo de exibição de tabela de dados ou posteriormente ao criar o relatório. Para saber como, consulte Renomear campos de coluna.

Neste exemplo, os seguintes campos foram renomeados:

Nome do campo original Mudar o nome
Links.TargetWorkItem.ID ID de destino
LinksLinkTypeName Tipo de Ligação
Links.TargetWorkItem.State Estado de Destino
Links.TargetWorkItem.Title Título de Destino

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.

Captura de ecrã da opção Fechar e Aplicar do Power Query Editor.

Criar um relatório de tabela para listar itens de trabalho vinculados

  1. No Power BI, escolha Relatório de tabela em Visualizações.

    Captura de ecrã do relatório da tabela de Visualizações e Campos do Power BI para o relatório da tabela de lista Ligações Pai-Filho.

  2. Adicione os seguintes campos na ordem indicada para Colunas:

    • Identificação, clique com o botão direito do mouse e selecione Não resumir
    • Distrito
    • Título
    • ID de destino, clique com o botão direito do mouse e selecione Não resumir
    • Tipo de link
    • Estado-alvo
    • Título de Destino

O relatório de exemplo é exibido.

Captura de tela do relatório da tabela Exemplos de links pai-filho de Recursos e Histórias de Usuário.