Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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 'Feature' "
&"and State ne 'Removed' "
&"and startswith(Area/AreaPath,'{areapath}') "
&"and Descendants/any()"
&"&$select=WorkItemId,Title,Area,Iteration,AssignedTo,WorkItemType,State,AreaSK"
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(StoryPoints with sum as TotalStoryPoints)) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Строки замены и разбивка запросов
Замените следующие строки значениями. Не включайте скобки {} в вашу подстановку. Например, если вашей организации присвоено имя Fabrikam, замените {organization}
на Fabrikam
, а не {Fabrikam}
.
-
{organization}
— Название организации -
{project}
— Имя проекта группы или полностью опустите/{project}
для межпроектного запроса -
{areapath}
— Ваш путь области. Пример формата:Project/Level1/Level2
.
Разбивка запросов
В следующей таблице описана каждая часть запроса.
Часть запроса
Описание
$filter=WorkItemType eq 'Feature'
Возможности возврата.
and State ne 'Cut'
Опустить функции, помеченные как вырезанные.
and startswith(Area/AreaPath,'{areapath}')
Возвращайте рабочие элементы в соответствии с определенным путем к области. Замена на Area/AreaPath eq '{areapath}'
приводит к возврату элементов на определенном пути области.
Чтобы отфильтровать по имени команды, используйте инструкцию Teams/any(x:x/TeamName eq '{teamname})'
фильтра.
and Descendants/any()
Отфильтруйте все рабочие элементы, у которых есть хотя бы один потомок или любой потомок. Включает все функции с хотя бы одним дочерним рабочим элементом. Чтобы получить все рабочие элементы вместе с их потомками, даже если потомков нет, выполните запрос без фильтра Descendants/any()
. Чтобы исключить функции, не имеющие дочерних пользовательских историй, замените их на any(d:d/WorkItemType eq 'User Story')
.
Для всех рабочих элементов с потомками и без потомков:
$filter=endswith(Area/AreaPath,'suffix')
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
Для всех рабочих элементов с по крайней мере одним потомком:
$filter=endswith(Area/AreaPath, 'suffix')and Descendants/any()
&$select=WorkItemId,Title,WorkItemType,State,Area, Descendants
&$expand=Descendants($select=WorkItemId)
&$select=WorkItemId, Title, WorkItemType, State
Выберите свойства для возврата.
&$expand=Descendants(
Начало блока expand Descendants
$apply=filter(WorkItemType eq 'User Story')
Фильтрация потомков. Включайте только истории пользователей (опустите задачи и ошибки).
/groupby((StateCategory),
Группируйте агрегацию по StateCategory. Дополнительные сведения о категориях состояний см. в статье Как состояния рабочего процесса и категории состояний используются в бэклогах и досках.
aggregate(StoryPoints with sum as TotalStoryPoints))
Суммарная сумма точек истории.
)
Закрыть Descendants()
пункт.
Обзор прогресса функций для команды
Следующий запрос аналогичен использованному ранее, за исключением того, что он фильтруется по имени команды , а не по пути к области.
Скопируйте и вставьте следующий запрос Power BI непосредственно в окно Получить данные>Пустой запрос. Дополнительные сведения см. в разделе "Обзор примеров отчетов с помощью запросов OData".
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/v3.0-preview/WorkItems?"
&"$filter=WorkItemType eq 'Feature' "
&"and State ne 'Cut' "
&"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 Descendants/any() "
&"&$select=WorkItemId,Title,WorkItemType,State,AreaSK "
&"&$expand=Descendants( "
&"$apply=filter(WorkItemType eq 'User Story') "
&"/groupby((StateCategory), "
&"aggregate(StoryPoints with sum as TotalStoryPoints)) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
Преобразуйте данные в Редакторе Power Query
Запрос возвращает несколько столбцов, которые необходимо развернуть, прежде чем использовать их для создания отчета. Любая сущность, извлеченная с помощью инструкции OData $expand , возвращает запись с потенциально несколькими полями. Разверните запись, чтобы развернуть сущность в её составляющие поля.
Для отчета "Ход выполнения функции" необходимо выполнить следующие преобразования:
- Преобразуйте столбец
Descendants
в два столбца:Descendants.StateCategory
иDescendants.TotalStoryPoints
- Применение преобразования столбца сводной таблицы к
Descendants.StateCategory
столбцу для разделения отдельных категорий состояний - Замените значения NULL во всех сводных столбцах.
- Добавьте настраиваемый столбец, представляющий процент выполнения. В настраиваемом столбце отображаются ошибки, если в сводных столбцах State есть столбцы со значением NULL.
Чтобы узнать, как, см. статью Преобразование данных аналитики для создания отчетов Power BI.
Работа с вложенными данными
Прежде чем выполнять операцию сводки, убедитесь, что набор данных не содержит столбцов с вложенными данными. Выполните следующие действия.
- Определите вложенные столбцы: проверьте набор данных на наличие столбцов, которые могут содержать списки, записи или таблицы в одной ячейке.
- Выравнивание или удаление вложенных данных: вы можете либо удалить вложенные столбцы, либо свернуть их, развернув в отдельные столбцы с помощью функции "Развернуть" в Power Query.
- Выполнение операции сводной таблицы: После обращения к вложенным данным можно продолжить операцию сводной операции без возникновения ошибок.
Примечание.
В этом примере значения состояния для истории пользователя включают предлагаемое, "Выполняется" и "Завершено".
Закройте запрос и примените изменения
Завершив все преобразования данных, нажмите кнопку "Закрыть" и "Применить " из меню "Главная ", чтобы сохранить запрос и вернуться на вкладку "Отчет " в Power BI.
Создайте отчет по столбчатой диаграмме с накоплением
В Power BI выберите Линейчатую диаграмму с накоплением в разделе "Визуализации".
Добавьте
Title
в ось Y.Добавьте
PercentComplete
к оси X, щелкните правой кнопкой мыши и выберите «Сумма».
Пример отчета отображается.