OData-funktioner och -satser som stöds
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Den här artikeln beskriver hur Analytics stöder flera OData-funktioner. Funktioner som inte stöds visas också. OData (Open Data Protocol) är en ISO/IEC-godkänd OASIS-standard som definierar metodtips för att skapa och använda REST-API:er. Mer information finns i OData-dokumentationen.
Kommentar
Analytics-tjänsten aktiveras automatiskt och stöds i produktion för alla Azure DevOps Services. Power BI-integrering och åtkomst till OData-flödet i Analytics Service är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback.
Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0
, och den senaste förhandsversionen är v4.0-preview
. Mer information finns i OData API-versionshantering.
Kommentar
Analytics-tjänsten installeras automatiskt och stöds i produktion för alla nya projektsamlingar för Azure DevOps Server 2020 och senare versioner. Power BI-integrering och åtkomst till OData-flödet i Analytics Service är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback. Om du har uppgraderat från Azure DevOps Server 2019 kan du installera Analytics-tjänsten under uppgraderingen.
Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0
, och den senaste förhandsversionen är v4.0-preview
. Mer information finns i OData API-versionshantering.
Kommentar
Analytics-tjänsten är en förhandsversion för Azure DevOps Server 2019. Du kan aktivera eller installera den för en projektsamling. Power BI-integrering och åtkomst till OData-flödet för Analystjänsten finns i förhandsversion. Vi rekommenderar att du använder den och ger oss feedback.
Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0
, och den senaste förhandsversionen är v4.0-preview
. Mer information finns i OData API-versionshantering.
Satser som stöds
$apply
$compute
$count
$expand
$filter
$orderby
$select
$skip
$top
När flera satser används i en fråga tillämpas de i den ordning som anges ovan. Ordningen på satser i frågesträngen ignoreras. I följande fråga grupperas till exempel arbetsobjekt först och aggregeras. Därefter filtreras grupperna. Därefter sorteras de filtrerade grupperna. Slutligen returneras de första fem posterna. Frågan returnerar de fem vanligaste arbetsobjekttyperna som används minst 100 gånger.
WorkItems?$filter=Count ge 100&$apply=groupby((WorkItemType), aggregate($count as Count))&$orderby=Count&top=5
Stöd för aggregeringstillägg
Det krävs en sekvens med uppsättningstransformeringar, avgränsade med snedstreck för att uttrycka att de tillämpas i följd. Resultatet av varje transformering är indata till nästa transformering. I följande fråga filtreras till exempel arbetsobjekt och grupperas sedan efter typ och tillstånd för arbetsobjekt. Därefter filtreras och grupperas grupperna igen.
Kommentar
OData-aggregeringstillägg är relativt nya och stöds ännu inte fullt ut av vissa klientverktyg.
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))
Följande transformeringar stöds:
Transformering | Kommentar |
---|---|
aggregate |
Tillåter aggregering med någon av följande metoder $count , average , max , , min sum |
compute |
Tillåter att beräknade egenskaper läggs till |
expand |
Tillåter expansion efter angivna egenskaper |
filter |
Tillåter filtrering av indatauppsättning. Stöder samma uttryck som $filter |
groupby |
Tillåter gruppering efter egenskaper |
Mer information finns i Sammanställa arbetsspårningsdata.
Funktioner som stöds
Kanonisk funktion | beskrivning |
---|---|
cast |
Returnerar uttrycket för den aktuella instansen till den angivna typen. |
contains |
Returnerar true om det andra parametersträngvärdet är en delsträng av det första parametersträngvärdet, annars returneras false. |
endswith |
Returnerar true om det första parametersträngsvärdet slutar med det andra parametersträngvärdet, annars returneras false. |
startswith |
Returnerar true om det första parametersträngsvärdet börjar med det andra parametersträngvärdet, annars returneras false. |
length |
Returnerar antalet tecken i parametervärdet. |
indexof |
Returnerar den nollbaserade teckenpositionen för den första förekomsten av det andra parametervärdet i det första parametervärdet eller -1 om det andra parametervärdet inte inträffar i det första parametervärdet. |
substring |
Returnerar en delsträng av det första parametersträngsvärdet, med början vid tecknet Nth och slut på det sista tecknet (där N är det andra parameter heltalsvärdet). |
tolower |
Returnerar indataparameterns strängvärde med alla versaler konverterade till gemener. |
toupper |
Returnerar indataparameterns strängvärde med alla gemener konverterade till versaler. |
trim |
Returnerar indataparameterns strängvärde med alla inledande och avslutande blankstegstecken. |
year |
Returnerar årskomponenten för parametervärdet Date eller DateTimeOffset. |
month |
Returnerar månadskomponenten för parametervärdet Date eller DateTimeOffset. |
day |
Returnerar dagskomponenten för parametervärdet Date eller DateTimeOffset. |
date |
Returnerar datumdelen av parametervärdet DateTimeOffset. |
time |
Returnerar tidsdelen av parametervärdet DateTimeOffset. |
totaloffsetminutes |
Returnerar det signerade antalet minuter i tidszonens förskjutningsdel av parametervärdet DateTimeOffset. |
now |
Returnerar den aktuella tidpunkten (datum och tid med tidszon) som ett DateTimeOffset-värde. |
maxdatetime |
Returnerar den senaste möjliga tidpunkten som ett DateTimeOffset-värde. |
mindatetime |
Returnerar den tidigaste möjliga tidpunkten som ett DateTimeOffset-värde. |
OData-funktioner används i en $filter
-sats, men inte i en $select
-sats som de skulle användas i en SQL-instruktion.
Du kan till exempel ange:
/WorkItems?$filter=toupper(Title) eq 'HELP'
Du kan dock inte ange följande sträng:
/WorkItems?$select=WorkItemId,State,toupper(Title)
Funktioner som inte stöds
bottomcount
bottomsum
bottompercent
$crossjoin
concat
countdistinct
from
isdefined
$rollup
$search
topcount
topsum
toppercent