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

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

В этой статье описывается, как Аналитика поддерживает несколько функций OData. Также перечислены неподдерживаемые функции. OData (Open Data Protocol) — это утвержденный стандарт ISO/IEC, который определяет рекомендации по созданию и использованию 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, , maxaverage, minsum
compute Позволяет добавлять вычисляемые свойства
expand Разрешает расширение по указанным свойствам
filter Позволяет фильтровать входной набор. Поддерживает те же выражения, что и $filter
groupby Разрешает группирование по свойствам

Дополнительные сведения см. в разделе "Статистические данные отслеживания работы".

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

Каноническая функция Description
cast Возвращает выражение текущего экземпляра, приведения к указанному типу.
contains Возвращает значение true, если второе строковое значение параметра является подстрокой первого строкового значения параметра, в противном случае возвращается значение false.
endswith Возвращает значение true, если первое строковое значение параметра заканчивается вторым строковым значением параметра, в противном случае возвращает значение false.
startswith Возвращает значение true, если первое строковое значение параметра начинается со второго строкового значения параметра, в противном случае возвращает значение false.
length Возвращает количество символов в значении параметра.
indexof Возвращает отсчитываемое от нуля положение первого вхождения второго значения параметра в значении первого параметра или -1, если значение второго параметра не происходит в первом значении параметра.
substring Возвращает подстроку первого строкового значения параметра, начиная с символа Nth и заканчивая последним символом (где 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