分享方式:


支援的 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 整合 和分析 服務的 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 參數值的日期元件。
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