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

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

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

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

Примечание.

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

Необходимые компоненты

  • Чтобы просмотреть данные аналитики и запросить службу, необходимо быть членом проекта с базовым доступом или большим доступом. По умолчанию все члены проекта предоставляют разрешения для запроса аналитики и определения представлений Аналитики.
  • Дополнительные сведения о других предварительных требованиях для включения служб и функций и общих действий по отслеживанию данных см. в статье "Разрешения и предварительные требования для доступа к аналитике".

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

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

Примечание.

Сведения о доступных свойствах для фильтрации или отчета см . в справочнике по метаданным для Azure Boards. Вы можете отфильтровать запросы или возвращать свойства с помощью любого из Property значенийEntityType, доступных в разделе EntitySetили NavigationPropertyBinding Path значениях. Каждое 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расширяемого свойства , , AreaIteration.

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

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

Запрос 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, см. в статье "Аналитика преобразования".

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

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

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

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

Снимок экрана: параметр Редактор Power Query Закрыть и применить.

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

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

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

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

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

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

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

Снимок экрана: пример таблицы