Query's uitvoeren op gegevens voor het bijhouden van werk met behulp van Analytics

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

U kunt query's uitvoeren op uw Azure DevOps-werktraceringsgegevens met behulp van de basisquery's in dit artikel. Deze query's hebben betrekking op dagelijkse behoeften terwijl verschillende mogelijkheden van Analytics worden gedemonstreerd. U kunt de meeste van deze query's aanpassen aan uw behoeften.

In dit artikel wordt informatie uitgetrokken die wordt gegeven in OData-query's maken voor naslaginformatie over analyse en metagegevens voor Azure Boards Analytics.

Notitie

De Analytics-service wordt automatisch ingeschakeld en ondersteund in productie voor alle Azure DevOps-services. Power BI-integratie en -toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar. We raden u aan deze te gebruiken en ons feedback te geven. Beschikbare gegevens zijn afhankelijk van versie. De meest recente ondersteunde versie is v2.0en de nieuwste preview-versie is v4.0-preview. Zie OData API-versiebeheer voor meer informatie.

Notitie

De Analytics-service wordt automatisch geïnstalleerd en ondersteund in productie voor alle nieuwe projectverzamelingen voor Azure DevOps Server 2020 en nieuwere versies. Power BI-integratie en -toegang tot de OData-feed van de Analytics-service zijn algemeen beschikbaar. We raden u aan deze te gebruiken en ons feedback te geven. Als u een upgrade hebt uitgevoerd van Azure DevOps Server 2019, kunt u de Analytics-service installeren tijdens de upgrade.

Beschikbare gegevens zijn afhankelijk van versie. De meest recente ondersteunde versie is v2.0en de nieuwste preview-versie is v4.0-preview. Zie OData API-versiebeheer voor meer informatie.

Notitie

De Analytics-service is in preview voor Azure DevOps Server 2019. U kunt deze in- of installeren voor een projectverzameling. Power BI-integratie en toegang tot de OData-feed van de Analytics-service zijn in preview. We raden u aan deze te gebruiken en ons feedback te geven.

Beschikbare gegevens zijn afhankelijk van versie. De meest recente ondersteunde versie is v2.0en de nieuwste preview-versie is v4.0-preview. Zie OData API-versiebeheer voor meer informatie.

Vereisten

  • Als u analysegegevens wilt bekijken en een query wilt uitvoeren op de service, moet u lid zijn van een project met basic-toegang of hoger. Standaard krijgen alle projectleden machtigingen om query's uit te voeren op Analytics en analyseweergaven te definiëren.
  • Zie Machtigingen en vereisten voor toegang tot Analytics voor meer informatie over andere vereisten met betrekking tot het inschakelen van services en functies en algemene activiteiten voor het bijhouden van gegevens.

Alle voorbeelden zijn gericht op een project in Azure DevOps. Zie Project- en organisatiequery's voor voorbeelden van bereik op organisatieniveau of Azure DevOps Server.

Tip

U kunt de WIQL-extensie voor OData Azure DevOps Marketplace gebruiken om snel een OData-query te genereren op basis van een werkitemquery op de pagina Query's . Deze extensie ondersteunt de conversie van platte lijst met werkitems en werkitems en directe koppelingen. Extensies worden niet ondersteund door Azure Boards en worden daarom niet ondersteund door het productteam. Ga naar de bijbehorende extensiepagina voor vragen, suggesties of problemen die u hebt bij het gebruik van deze extensies.

Werkitems filteren op basis van een gewijzigde datum

U kunt een query uitvoeren op de WorkItems entiteit die is ingesteld om werkitems weer te geven die voldoen aan uw veldcriteria.

De volgende query retourneert productachterstanditems, bugs en functies met een gewijzigde datum die groter is dan 12 december 2021.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
  $select=WorkItemId, WorkItemType, Title, State 
  &$expand=AssignedTo($select=UserEmail)
  &$filter=(Project/ProjectName eq 'Fabrikam Fiber'
    AND (WorkItemType eq 'Product Backlog Item' or WorkItemType eq 'Bug' or WorkItemType eq 'Feature')
    AND ChangedOn/Date ge 2021-12-16T23:44:15.619Z)
  &$orderby=WorkItemType desc 

Werkitems filteren op basis van gebied

U kunt de volgende query wijzigen om alle werkitems onder een specifiek gebiedspad weer te geven.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Area/AreaPath eq '{area path}'
  &$select=WorkItemId, Title, State

Voorbeeldquery:

Met de volgende syntaxis wordt bijvoorbeeld het aantal werkitems opgevraagd voor elk project dat is gedefinieerd voor de fabrikam-organisatie .

https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$apply=groupby((Project/ProjectName), aggregate($count as Count))

Voorbeeldantwoord:

En het antwoord retourneert gegevens voor de volgende vijf projecten.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(Project(ProjectName),Count)",
   "value":[
      {
         "@odata.id":null,
         "Count":2,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Basic Fabrikam"
         }
      },
      {
         "@odata.id":null,
         "Count":19,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Demo 11"
         }
      },
      {
         "@odata.id":null,
         "Count":188,
         "Project":{
            "@odata.id":null,
            "ProjectName":"Fabrikam Fiber"
         }
      },
      {
         "@odata.id":null,
         "Count":89,
         "Project":{
            "@odata.id":null,
            "ProjectName":"MyFirstProject"
         }
      },
      {
         "@odata.id":null,
         "Count":2,
         "Project":{
            "@odata.id":null,
            "ProjectName":"MyPublicProject"
         }
      }
   ]
}

Werkitems filteren op basis van iteratie

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Iteration/IterationPath eq '{iteration path}'
  &$select=WorkItemId, Title, State

Voorbeeldquery:

De volgende syntaxisquery's werken bijvoorbeeld voor het Fabrikam Fiber-project onder het iteratiepad=Fabrikam Fiber\Release 1\Sprint 6.

https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/WorkItems?$select=WorkItemId, WorkItemType, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemType ne '' AND Iteration/IterationPath eq 'Fabrikam Fiber\Release 1\Sprint 6')

Voorbeeldantwoord:

En het antwoord retourneert gegevens voor de volgende vier werkitems.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,WorkItemType,Title,State,Iteration(IterationPath))",
   "value":[
      {
         "WorkItemId":361,
         "Title":"Hello World Web Site",
         "WorkItemType":"Product Backlog Item",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1126,
         "Title":"web site task",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1136,
         "Title":"Add a new task with two new tags",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      },
      {
         "WorkItemId":1140,
         "Title":"New task - test for Blocked",
         "WorkItemType":"Task",
         "State":"To Do",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 6"
         }
      }
   ]
}

Items ophalen voor een iteratie

U kunt alle werkitems ophalen voor een bepaalde iteratie die valt tussen de eerste dag van de iteratie en de laatste dag van de iteratie. Hier wordt uw query beperkt door gegevens in de werktraceringsgegevens.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Iteration/IterationPath eq '{iteration path}' 
    and ChangedDate ge Iteration/StartDate 
    and ChangedDate le Iteration/EndDate
  &$select=WorkItemId, Title, State

Werkitems filteren die specifieke tags bevatten

De operator wordt hier gebruikt omdat er een verzameling tags is die aan een werkitem kunnen worden gekoppeld. Vanuit het oogpunt van gebruik is de indeling: {Navigation Property}/any(d:d/{Field Name} {operator} {expression}). Een item dat niet wordt omgeven door accolades ({}) is een letterlijke aanduiding. Er zijn enkele variaties. U hoeft bijvoorbeeld 'd' niet te gebruiken zoals wordt gebruikt in de bovenstaande expressie. Door deze indeling te volgen, blijft het eenvoudig.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Tags/any(d:d/TagName eq '{tag name}')
  &$select=WorkItemId, Title, State

Werkitems filteren voor een specifiek team

Gebruik de volgende query om werkitems voor een specifiek team weer te geven.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=Teams/any(d:d/TeamName eq '{team name}')
  &$select=WorkItemId, Title, State

Werkitems filteren op basis van een veld met een specifieke waarde

De volgende query is vergelijkbaar met een werkitemquery die gebruikmaakt van de operator Was Ever .

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItems?
  $filter=WorkItemType eq '{Type}'
     and Revisions/any(r:r/ResolvedBy/UserName eq '{User}') 

Voorbeeldquery:

De volgende query retourneert de werkitems die ooit zijn toegewezen aan Jamal Hartnett waarvan de e-mail 'fabrikamfiber4@hotmail.com' is voor het Fabrikam Fiber-project .

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?
  $select=WorkItemType, Title, State, 
  &$expand=AssignedTo($select=UserEmail), Area($select=AreaPath)
  &$filter=(WorkItemType ne '' AND State ne '' AND Revisions/any(r:r/AssignedTo/UserEmail eq 'fabrikamfiber4@hotmail.com'))
  &$orderby=WorkItemType asc

Voorbeeldantwoord:

Het antwoord retourneert twee werkitems.

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/Design%20Agile/_odata/v4.0-preview/$metadata#WorkItems(Priority,WorkItemType,Title,State,TagNames,AssignedTo(UserEmail),Area(AreaPath))",
   "value":[
      {
         "Title":"New home page design",
         "WorkItemType":"Feature",
         "State":"Closed",
         "AssignedTo":{
            "UserEmail":"fabrikamfiber4@hotmail.com"
         },
         "Area":{
            "AreaPath":"Design Agile"
         }
      },
      {
         "Title":"Check performance",
         "WorkItemType":"User Story",
         "State":"New",
         "AssignedTo":{
            "UserEmail":"fabrikamfiber4@hotmail.com"
         },
         "Area":{
            "AreaPath":"Design Agile"
         }
      }
   ]
}

De teams ophalen die zijn toegewezen onder een gebiedspad

De volgende query retourneert de namen van teams die zijn toegewezen aan gebiedspaden onder het gebied Accountbeheer voor het Fabrikam Fiber-project .

> https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/Areas?
>      $filter=startswith(AreaPath,'Fabrikam Fiber\Account Management')
>      &$select=AreaPath&$expand=Teams($select=TeamName)
>```
The response returns three area paths and the names of several teams assigned to each. 

> [!div class="tabbedCodeSnippets"]
```OData
> @odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#Areas(AreaPath,Teams(TeamName))"
> value	
> 0	
>   AreaPath             "Fabrikam Fiber\\Account Management\\Customer Profile"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Fabrikam Team"
>       2	
>           TeamName     "Customer Profile"
> 1	
>   AreaPath             "Fabrikam Fiber\\Account Management\\Shopping Cart"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Shopping Cart"
>       2	
>           TeamName     "Fabrikam Team"
> 2	
>   AreaPath             "Fabrikam Fiber\\Account Management"
>   Teams	
>       0	
>           TeamName     "Organization Management"
>       1	
>           TeamName     "Fabrikam Team"

De geschiedenis van een specifiek werkitem retourneren

U kunt een query uitvoeren op de entiteit die is ingesteld op het WorkItemRevisions weergeven van de geschiedenis van werkitems. De volgende query retourneert de waarde van het pad Titel, Status en Iteratie voor elke revisie voor een opgegeven werkitem.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/WorkItemRevisions?
  $filter=WorkItemId eq {Id}
  &$select=WorkItemId, Title, State, Iteration Path

Notitie

Telkens wanneer een wijziging wordt aangebracht in een werkitem, met inbegrip van een wijziging in de waarde van de stack-rangschikking, wordt er een revisie gemaakt. Zie Filters toepassen op historische gegevens voor meer informatie over historische gegevens.

Voorbeeldquery:

Met de volgende syntaxis worden bijvoorbeeld revisies voor ID=1145 in het Fabrikam Fiber-project opgevraagd.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItemRevisions?$select=WorkItemId, Title, State&$expand=Iteration($select=IterationPath)&$filter=(Project/ProjectName eq 'Fabrikam Fiber' AND WorkItemId eq 1145 AND State ne '' AND Revision gt 1)

Voorbeeldantwoord:

En het antwoord retourneert gegevens voor de vier revisies:

{
   "@odata.context":"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItemRevisions(WorkItemId,Title,State,Iteration(IterationPath))",
   "value":[
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Future"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Future"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"New",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
         }
      },
      {
         "WorkItemId":1145,
         "Title":"Sprint 2 work added in June",
         "State":"Done",
         "Iteration":{
            "IterationPath":"Fabrikam Fiber\\Release 1\\Sprint 2"
         }
      }
   ]
}