Podporované funkce a klauzule OData

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Tento článek popisuje, jak Analytics podporuje několik funkcí OData. Jsou uvedené také nepodporované funkce. OData (Open Data Protocol) je standard OASIS schválený iso/IEC, který definuje osvědčené postupy pro vytváření a používání rozhraní REST API. Další informace najdete v dokumentaci k OData.

Poznámka

Služba Analytics je automaticky povolená a podporovaná v produkčním prostředí pro všechny Azure DevOps Services. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou obecně dostupné. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu. Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka

Služba Analytics se automaticky nainstaluje a podporuje v produkčním prostředí pro všechny nové kolekce projektů pro Azure DevOps Server 2020 a novější verze. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou obecně dostupné. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu. Pokud jste upgradovali z Azure DevOps Server 2019, můžete během upgradu nainstalovat službu Analytics.

Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Poznámka

Služba Analytics je ve verzi Preview pro Azure DevOps Server 2019. Můžete ho povolit nebo nainstalovat pro kolekci projektů. Integrace Power BI a přístup k datovému kanálu OData ve službě Analytics jsou ve verzi Preview. Doporučujeme, abyste ho použili a poskytli nám zpětnou vazbu.

Dostupná data závisí na verzi. Nejnovější podporovaná verze je v2.0a nejnovější verze Preview je v4.0-preview. Další informace najdete v tématu Správa verzí rozhraní API OData.

Podporované klauzule

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

Pokud se v dotazu použije více klauzulí, použijí se v pořadí uvedeném výše. Pořadí klauzulí v řetězci dotazu se ignoruje. Například v následujícím dotazu jsou pracovní položky nejprve seskupené a agregované. Potom se skupiny vyfiltrují. Potom se filtrované skupiny seřadí. Nakonec se vrátí prvních pět záznamů. Dotaz vrátí pět nejčastějších typů pracovních položek použitých nejméně 100krát.

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

Podpora rozšíření agregace

Používá posloupnost transformací sad oddělených lomítky, aby bylo možné vyjádřit, že se po sobě použijí. Výsledkem každé transformace je vstup do další transformace. Například v následujícím dotazu se pracovní položky filtrují a pak seskupí podle typu a stavu pracovní položky. Potom se skupiny vyfiltrují a znovu seskupí.

Poznámka

Rozšíření agregace OData jsou relativně nová a některé klientské nástroje zatím plně nepodporují.

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))  

Podporují se následující transformace:

Transformace Poznámky
aggregate Umožňuje agregaci pomocí jedné z následujících metod $count, average, max, , minsum
compute Umožňuje přidat počítané vlastnosti.
expand Umožňuje rozšíření o zadané vlastnosti.
filter Umožňuje filtrovat vstupní sadu. Podporuje stejné výrazy jako $filter
groupby Umožňuje seskupování podle vlastností.

Další informace najdete v tématu Agregace dat sledování práce.

Podporované funkce

Kanonická funkce Description
cast Vrátí výraz přetypování aktuální instance na zadaný typ.
contains Vrátí hodnotu true, pokud je hodnota řetězce druhého parametru podřetězcem první hodnoty řetězce parametru, v opačném případě vrátí hodnotu false.
endswith Vrátí hodnotu true, pokud první hodnota řetězce parametru končí hodnotou řetězce druhého parametru, v opačném případě vrátí hodnotu false.
startswith Vrátí hodnotu true, pokud první hodnota řetězce parametru začíná hodnotou řetězce druhého parametru, jinak vrátí hodnotu false.
length Vrátí počet znaků v hodnotě parametru.
indexof Vrátí nulovou pozici znaku prvního výskytu druhé hodnoty parametru v první hodnotě parametru nebo -1, pokud se druhá hodnota parametru nenachází v první hodnotě parametru.
substring Vrátí podřetězc první hodnoty řetězce parametru, počínaje znakem N a končí posledním znakem (kde N je hodnota druhého celočíselného čísla parametru).
tolower Vrátí hodnotu řetězce vstupního parametru se všemi velkými písmeny převedenými na malá písmena.
toupper Vrátí hodnotu řetězce vstupního parametru se všemi malými písmeny převedenými na velká písmena.
trim Vrátí hodnotu řetězce vstupního parametru se všemi počátečními a koncovými prázdnými znaky.
year Vrátí komponentu year hodnoty parametru Date nebo DateTimeOffset.
month Vrátí součást měsíce hodnoty parametru Date nebo DateTimeOffset.
day Vrátí komponentu day hodnoty parametru Date nebo DateTimeOffset.
date Vrátí část data hodnoty parametru DateTimeOffset.
time Vrátí časovou část hodnoty parametru DateTimeOffset.
totaloffsetminutes Vrátí podepsaný počet minut v části posunu časového pásma hodnoty parametru DateTimeOffset.
now Vrátí aktuální bod v čase (datum a čas s časovým pásmem) jako hodnotu DateTimeOffset.
maxdatetime Vrátí poslední možný bod v čase jako hodnotu DateTimeOffset.
mindatetime Vrátí nejstarší možný bod v čase jako hodnotu DateTimeOffset.

Funkce OData se používají v $filter klauzuli, ale ne v $select klauzuli tak, jak by se používaly v příkazu SQL.

Můžete například zadat:

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

Nemůžete ale zadat následující řetězec:

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

Nepodporované funkce

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