Поделиться через


Открытие отчетов об ошибках или примерах историй пользователей

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Чтобы создать отчет, который содержит открытые ошибки или истории пользователей, выберите отчет Матрицы в Power BI и используйте запрос, аналогичный приведенным в этой статье. В создаваемом вами отчете перечислены открытые ошибки или пользовательские истории, разбитые по полям состояние и назначено, как показано на следующем рисунке.

Снимок экрана отчета с примером матрицы открытых ошибок.

Примечание.

В этой статье предполагается, что вы прочли Обзор примеров отчетов с помощью запросов OData и имеете базовое представление о Power BI.

Категория Требования
Уровни доступа - член проекта.
— По крайней мере базовый доступ уровня .
Права доступа По умолчанию члены проекта имеют разрешение выполнять запросы к аналитике и создавать представления. Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий отслеживания данных см. в разделе "Разрешения и предварительные требования для доступа к аналитике".

Примеры запросов

Несколько запросов представлены, которые фильтруют ошибки или истории пользователей по области, итерации или для команды. Все эти запросы указывают WorkItems набор сущностей, возвращая текущие и не исторические данные.

Примечание.

Чтобы определить доступные свойства для фильтрации или отчета, см. справочник по метаданным для Azure Boards. Вы можете отфильтровать запросы или возвращать свойства, используя любое из значений Property, которые находятся под EntityType или под значениями NavigationPropertyBinding Path, доступными с EntitySet. Каждое EntitySet соответствует EntityType. Дополнительные сведения о типе данных каждого значения см. в метаданных, предоставленных для соответствующего EntityTypeзначения.

Ошибки, отфильтрованные по области

Скопируйте и вставьте следующий запрос Power BI непосредственно в окно Получить данные>Пустой запрос. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"and StateCategory ne 'Completed' "
            &"and startswith(Area/AreaPath,'{areapath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Строки подстановки и разбивка запросов

Замените следующие строки значениями. Не включайте в подстановку скобки вместе с {}. Например, если вашей организации присвоено имя Fabrikam, замените {organization} на Fabrikam, а не {Fabrikam}.

  • {organization} — Название организации
  • {project} — Имя проекта группы или полностью опустите "/{project}" для межпроектного запроса
  • {areapath} — Ваша область пути. Пример формата: Project\Level1\Level2

Разбивка запросов

В следующей таблице описана каждая часть запроса.

Часть запроса

Description

$filter=WorkItemType eq 'Bug'

Возвращать ошибки.

and StateCategory ne 'Completed'

Исключить завершенные элементы. Дополнительные сведения о категориях состояний см. в статье о том, как используются состояния категорий рабочих процессов в журналах заданий и досках Azure Boards.

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

И отфильтруйте рабочие элементы в рамках определенного пути области. Чтобы отфильтровать по имени команды, используйте инструкцию Teams/any(x:x/TeamName eq '{teamname})'фильтра.

&$select=WorkItemId, Title, WorkItemType, State, Priority, Severity, TagNames

Выберите поля для возврата.

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

Выберите поля расширяемого свойства AssignedTo, Iteration, Area.

Истории пользователей, отфильтрованные командами

Вы можете запросить открытые ошибки, относящиеся к одной или нескольким командам, а не по трассе области.

Скопируйте и вставьте следующий запрос Power BI непосредственно в окно Получить данные>Пустой запрос. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'Bug' "
            &"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}')) "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

Пользовательские истории в определенном областном пути и пути итерации

Следующий запрос поддерживает фильтрацию пользовательских сценариев по определённому пути области и пути итерации.

Скопируйте и вставьте следующий запрос Power BI непосредственно в окно Получить данные>Пустой запрос. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".

let
   Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
        &"$filter=WorkItemType eq 'User Story' "
            &"and startswith(Area/AreaPath,'{areapath}') "
            &"and startswith(Iteration/IterationPath,'{iterationpath}') "
        &"&$select=WorkItemId,Title,WorkItemType,State,Priority,Severity,TagNames,AreaSK "
        &"&$expand=AssignedTo($select=UserName),Iteration($select=IterationPath),Area($select=AreaPath) "
    ,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4]) 
in
    Source

(Необязательно) Переименование запроса

Вы можете переименовать метку запроса по умолчанию, query1, в что-то более понятное. Просто введите новое имя в панели настроек запроса.

Снимок экрана: параметры меню запроса Power BI, переименование запроса.

Разверните столбцы в Редакторе Power Query

Предложение &$expand=AssignedTo($select=UserName), Iteration($select=IterationPath), Area($select=AreaPath) возвращает записи, содержащие несколько полей. Прежде чем создать отчет, необходимо преобразовать запись, чтобы сократить ее до определенных полей. В этом случае необходимо развернуть следующие записи.

  • AssignedTo
  • AreaPath
  • IterationPath

См. статью Преобразование данных аналитики для создания отчетов Power BI для получения информации о том, как это сделать.

(Необязательно) Переименование полей

После того как вы развернули столбцы, возможно, вы захотите переименовать одно или несколько полей. Например, можно переименовать столбец AreaPath в Area Path. Сведения о том, как это сделать, см. в разделе "Переименовать поля столбцов".

Закройте запрос и примените изменения

Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.

Снимок экрана опции

Создайте отчет о Матрице

  1. В Power BI выберите отчет матрицы в разделе "Визуализации".

    Снимок экрана: выбор визуализаций и полей Power BI для отчета об открытых ошибках.

  2. Добавьте Assigned To к строкам.

  3. Добавьте State в столбцы.

  4. Добавьте 1WorkItemId1 в значения, щелкните правой кнопкой мыши на элементе 1WorkItemId и убедитесь, что выбрано Count.

Отображается пример отчета.

Снимок экрана отчета-матрицы примера