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

Azure DevOps Services | 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 dos links pai-filho do relatório da tabela Recursos e Histórias de Usuário.

Para obter mais informações sobre tipos de link e itens de trabalho de link, consulte Vincular histórias de usuário, problemas, bugs e outros itens de trabalho.

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

Observação

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

Pré-requisitos

Consultas de exemplo

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 os dados atuais.

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 obter mais informações sobre o tipo de dados de cada valor, examine os metadados fornecidos para o EntityType.

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

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/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 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 seu projeto de equipe ou omita totalmente "/{project}" 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'

Retorne histórias de usuário.

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

Omita feições cujo estado está definido como Fechado ou Removido.

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

Inclua somente recursos em um caminho de área específico, substituindo '{areapath}'.
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 entidades Area .

Links(

Expanda a Links entidade.

$filter=LinkTypeName eq 'Child'

Filtre itens de trabalho vinculados apenas para aqueles com o tipo de link filho . Outros exemplos são Pai, Filho, Duplicar, Duplicar de, Afeta, Afetado por.

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.

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/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 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/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

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/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

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/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 tela das opções de menu de consulta do Power BI, renomear consulta.

Transformar dados no Editor do Power Query

Antes de criar o relatório, você precisará expandir colunas que retornam registros que contêm vários campos. Nesse caso, você desejará expandir os seguintes registros:

  • Links
  • Links.TargetWorkItem
  • Area
  • Iteration
  • AssignedTo

Para saber como expandir itens de trabalho, confira Transformar dados do Analytics para gerar relatórios do Power BI.

(Opcional) Renomear campos

Depois de expandir as colunas, você pode querer renomear um ou mais campos. Por exemplo, você pode renomear a coluna AreaPath para Area Path. Você pode renomeá-los na exibição da 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 Renomear
Links.TargetWorkItem.ID ID de destino
LinksLinkTypeName Tipo de link
Links.TargetWorkItem.State Estado de Destino
Links.TargetWorkItem.Title Título alvo

Feche a consulta e aplique suas alterações

Depois de concluir todas as transformações de dados, escolha Fechar e Aplicar no menu Página Inicial para salvar a consulta e retornar à guia Relatório no Power BI.

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

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 tela das seleções de Visualizações e Campos do Power BI para o relatório da tabela de lista de Links Pai-Filho.

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

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

O relatório de exemplo é exibido.

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