Поддерживаемые функции и предложения OData

Azure DevOps Services | Azure DevOps Server 2022 г. - Azure DevOps Server 2019 г.

В этой статье описывается, как Аналитика поддерживает несколько функций OData. В списке также перечислены неподдерживаемые функции. OData (open Data Protocol) — это утвержденный стандарт ISO/IEC OASIS, который определяет рекомендации по созданию и использованию REST API. Дополнительные сведения см. в документации по OData.

Примечание

Служба аналитики автоматически включается и поддерживается в рабочей среде для всех Azure DevOps Services. Интеграция Power BI и доступ к веб-каналу OData службы аналитики являются общедоступными. Мы рекомендуем вам использовать его и оставить отзыв. Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Примечание

Служба аналитики автоматически устанавливается и поддерживается в рабочей среде для всех новых коллекций проектов для Azure DevOps Server 2020 и более поздних версий. Интеграция Power BI и доступ к веб-каналу OData службы аналитики являются общедоступными. Мы рекомендуем вам использовать его и оставить отзыв. Если вы обновили с Azure DevOps Server 2019 года, вы можете установить службу Аналитики во время обновления.

Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Примечание

Служба аналитики доступна в предварительной версии для Azure DevOps Server 2019 г. Его можно включить или установить для коллекции проектов. Интеграция Power BI и доступ к веб-каналу OData службы аналитики доступны в предварительной версии. Мы рекомендуем вам использовать его и оставить отзыв.

Доступные данные зависят от версии. Последняя поддерживаемая версия — v2.0, а последняя предварительная версия — v4.0-preview. Дополнительные сведения см. в разделе Управление версиями API OData.

Поддерживаемые предложения

  • $apply
  • $compute
  • $count
  • $expand
  • $filter
  • $orderby
  • $select
  • $skip
  • $top

Если в запросе используется несколько предложений, они применяются в указанном выше порядке. Порядок предложений в строке запроса игнорируется. Например, в следующем запросе рабочие элементы сначала группируются и агрегируются. Затем выполняется фильтрация групп. После этого отфильтрованные группы сортируются. Наконец, возвращаются первые пять записей. Запрос возвращает пять основных типов рабочих элементов, используемых не менее 100 раз.

WorkItems?$filter=Count ge 100&$apply=groupby((WorkItemType), aggregate($count as Count))&$orderby=Count&top=5

Поддержка расширений агрегирования

Требуется последовательность преобразований наборов, разделенных косой чертой, чтобы выразить их последовательное применение. Результатом каждого преобразования являются входные данные для следующего преобразования. Например, в следующем запросе рабочие элементы фильтруются, а затем группируются по типу и состоянию рабочего элемента. Затем группы фильтруются и группируются снова.

Примечание

Расширения агрегирования OData являются относительно новыми и пока не полностью поддерживаются некоторыми клиентскими инструментами.

Workitems?$apply=filter(State ne 'Closed')/groupby((WorkItemType, State), aggregate($count as Count))/filter(Count gt 100)/groupby((State),aggregate(Count with max as MaxCount))  

Поддерживаются следующие преобразования:

Преобразование Примечания
aggregate Разрешает агрегирование с помощью одного из следующих методов $count, average, , max, min. sum
compute Позволяет добавлять вычисляемые свойства
expand Разрешает расширение по заданным свойствам
filter Позволяет фильтровать входной набор. Поддерживает те же выражения, что и $filter
groupby Позволяет группировать по свойствам

Дополнительные сведения см. в разделе Агрегированные данные отслеживания работы.

Поддерживаемые функции

Каноническая функция Описание
cast Возвращает выражение текущего экземпляра, приведения к указанному типу.
contains Возвращает значение true, если второе строковое значение параметра является подстрокой первого строкового значения параметра, в противном случае возвращается значение false.
endswith Возвращает значение true, если первое строковое значение параметра заканчивается вторым строковым значением параметра, в противном случае возвращает значение false.
startswith Возвращает значение true, если первое строковое значение параметра начинается со второго значения строки параметра, в противном случае возвращает значение false.
length Возвращает число символов в значении параметра.
indexof Возвращает отсчитываемую от нуля позицию символа первого вхождения второго значения параметра в первом значении параметра или значение -1, если второе значение параметра не встречается в первом значении параметра.
substring Возвращает подстроку первого строкового значения параметра, начиная с N-го символа и заканчивая последним символом (где N — это второе целочисленное значение параметра).
tolower Возвращает строковое значение входного параметра со всеми символами верхнего регистра, преобразованными в нижний регистр.
toupper Возвращает строковое значение входного параметра со всеми символами нижнего регистра, преобразованными в верхний регистр.
trim Возвращает строковое значение входного параметра со всеми начальными и конечными пробелами.
year Возвращает компонент года значения параметра Date или DateTimeOffset.
month Возвращает компонент месяца значения параметра Date или DateTimeOffset.
day Возвращает компонент дня значения параметра Date или DateTimeOffset.
date Возвращает часть даты значения параметра DateTimeOffset.
time Возвращает часть времени значения параметра DateTimeOffset.
totaloffsetminutes Возвращает подписанное число минут в части смещения часового пояса значения параметра DateTimeOffset.
now Возвращает текущую точку во времени (дату и время с часовыми поясами) в качестве значения DateTimeOffset.
maxdatetime Возвращает последнюю возможную точку во времени в виде значения DateTimeOffset.
mindatetime Возвращает самый ранний возможный момент времени в виде значения DateTimeOffset.

Функции OData используются в $filter предложении, но не в $select предложении так, как они используются в инструкции SQL.

Например, можно указать:

/WorkItems?$filter=toupper(Title) eq 'HELP' 

Однако вы не можете ввести следующую строку:

/WorkItems?$select=WorkItemId,State,toupper(Title)

Неподдерживаемые функции

  • bottomcount
  • bottomsum
  • bottompercent
  • $crossjoin
  • concat
  • countdistinct
  • from
  • isdefined
  • $rollup
  • $search
  • topcount
  • topsum
  • toppercent