支援的 OData 函式和子句

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

本文涵蓋 Analytics 如何支援數個 OData 函式。 也列出不支援的函式。 OData (開放式資料通訊協定) 是 ISO/IEC 核准的 OASIS 標準,可定義建置及取用 REST API 的最佳做法。 若要深入瞭解,請參閱 OData 檔

注意

所有Azure DevOps Services的生產環境中都會自動啟用及支援 Analytics 服務。 Power BI 整合及存取 Analytics Service 的OData 摘要已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 可用的資料與版本相關。 最新支援的版本是 v2.0 ,而最新的預覽版本是 v4.0-preview 。 如需詳細資訊,請參閱 OData API 版本設定

注意

Azure DevOps Server 2020 版和更新版本的所有新專案集合,都會在生產環境中自動安裝及支援 Analytics 服務。 Power BI 整合及存取 Analytics Service 的OData 摘要已正式推出。 我們鼓勵您使用它,並提供意見反應給我們。 如果您從 Azure DevOps Server 2019 升級,您可以在升級期間安裝 Analytics 服務。

可用的資料與版本相關。 最新支援的版本是 v2.0 ,而最新的預覽版本是 v4.0-preview 。 如需詳細資訊,請參閱 OData API 版本設定

注意

Azure DevOps Server 2019 的 Analytics 服務處於預覽狀態。 您可以為專案集合 啟用或安裝它Power BI 整合 及存取 Analytics Service 的 OData 摘要 處於預覽狀態。 我們鼓勵您使用它,並提供意見反應給我們。

可用的資料與版本相關。 最新支援的版本是 v2.0 ,而最新的預覽版本是 v4.0-preview 。 如需詳細資訊,請參閱 OData API 版本設定

支援的子句

  • $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 、、 averagemaxminsum
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 參數值的 day 元件。
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