Een query voor werkitems definiëren in Azure Boards

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

Visual Studio 2019 | Visual Studio 2022

Met query's voor werkitems worden lijsten met werkitems gegenereerd op basis van de filtercriteria die u hebt opgegeven. U kunt deze beheerde query's opslaan en delen met anderen.

U kunt query's maken vanuit de webportal of vanuit een ondersteunde client, zoals Visual Studio Team Explorer. Als u bulkupdates of toevoegingen wilt ondersteunen, importeert of exporteert u query's met Excel of .csv-bestanden.

Bekijk onze aanbevolen aanbevolen procedures verderop in dit artikel.

Vereisten

  • U moet belanghebbendetoegang hebben om gedeelde query's weer te geven en uit te voeren. Alle projectleden hebben standaard toegang tot belanghebbenden. Zie De machtigingen voor een gedeelde query of map wijzigen voor meer informatie.
  • U moet basistoegang of hoger hebben om een gedeelde query toe te voegen en op te slaan.
  • U moet de machtiging Bijdragen hebben ingesteld op Toestaan voor de map waaraan u een query wilt toevoegen. De groep Inzenders beschikt standaard niet over deze machtiging.

Notitie

Gebruikers met toegang tot belanghebbenden voor een openbaar project hebben volledige toegang tot queryfuncties, net zoals gebruikers met Basistoegang . Voor meer informatie, zie Snelzoekgids toegang als belanghebbende.

  • Standaard kunnen alle projectleden en gebruikers met toegang tot belanghebbenden alle gedeelde query's bekijken en uitvoeren. U kunt de machtigingen die zijn ingesteld voor een gedeelde querymap of gedeelde query wijzigen. Zie Querymachtigingen instellen voor meer informatie.
  • Als u een query wilt toevoegen en opslaan onder Gedeelde query's, moet u basic-toegang of hoger krijgen. U moet ook de machtiging Bijdragen hebben ingesteld op Toestaan voor de map waaraan u de query wilt toevoegen. De groep Inzenders beschikt standaard niet over deze machtiging.

Een queryfilter kiezen

In de Power Query-editor kunt u het filter selecteren om naar een artikel te gaan met voorbeeldquery's. Samen met de queryfilters kunt u interactief filters toepassen op queryresultaten.

Notitie

Beheerde query's bieden geen ondersteuning voor nabijheidszoekopdrachten, maar semantische zoekopdrachten wel. Daarnaast ondersteunt semantische zoekopdrachten zowel * jokertekens ? als jokertekens en kunt u meer dan één jokerteken gebruiken om meer dan één teken te vinden. Zie Functioneel werkitem zoeken voor meer informatie.


Filterfuncties

Macro's



U kunt een query ook interactief filteren met behulp van de functie Filter.

Query's openen

Controleer in uw webbrowser (1) of u het juiste project hebt geselecteerd, (2) kies Bordenquery's >en kies vervolgens (3) Alles.

Query's voor borden>openen, verticaal navigatievenster

Als het de eerste keer is dat u query's opent, wordt de pagina geopend met Favorieten. Deze pagina bevat de query's die u hebt aangegeven, zijn een favoriet. Anders kunt u Alles kiezen om alle query's weer te geven die u hebt gedefinieerd en gedeelde query's voor het project.

Tip

Query's die u of uw team hebben gekozen als favorieten worden weergegeven op de pagina Favorieten . Favoriete query's samen met andere objecten worden ook weergegeven op de projectpagina . Zie Persoonlijke favorieten of teamfavorieten instellen voor meer informatie.

Een platte lijstquery definiëren

Start een nieuwe query vanaf het tabblad Query's in de webportal of het tabblad Werkitems in Teamverkenner.

Selecteer Nieuwe query.

Schermopname van nieuwe query toevoegen, nieuwe ervaring.

De Power Query-editor wordt weergegeven met de volgende standaardinstellingen: Platte lijst met werkitems, Type werkitem=[Any], en State=[Any].

Schermopname van Power Query-editor met een platte lijst met werkitems geselecteerd.

Wijzig de waarden en voeg componenten toe of verwijder deze, of wijzig het type query in Werkitems en directe koppelingen of een boomstructuur met werkitems.

Query's uitvoeren in of binnen projecten

Nieuwe query's hebben standaard betrekking op het huidige project. U kunt echter query's maken om werkitems te vinden die zijn gedefinieerd in de organisatie of projectverzameling. Alle query's die u opslaat, worden echter opgeslagen onder een specifiek project.

Als u werkitems wilt weergeven die zijn gedefinieerd in twee of meer projecten, schakelt u het vinkje Query in meerdere projecten in. Met de volgende query worden bijvoorbeeld alle functies gevonden die in alle projecten in de afgelopen 30 dagen zijn gemaakt.

Schermopname van Power Query-editor met Query in projecten ingeschakeld.

Als de query voor alle projecten is ingeschakeld, kunt u het veld Teamproject toevoegen om te filteren op een selectie van projecten.

Schermopname van Power Query-editor met teamproject en andere velden die zijn toegevoegd aan het filter.

Notitie

Scheid meerdere projectnamen met het lijstscheidingsteken dat overeenkomt met de landinstellingen die zijn gedefinieerd voor uw clientcomputer, bijvoorbeeld een komma ,.

  • Het veld Teamproject is alleen beschikbaar nadat u Query hebt gecontroleerd in verschillende projecten.
  • Wanneer Query in projecten is ingeschakeld, worden alle velden uit alle werkitemtypen die in alle projecten in de verzameling zijn gedefinieerd, weergegeven in de vervolgkeuzelijst Veld .
  • Wanneer Query in projecten is uitgeschakeld, worden alleen die velden uit deze werkitemtypen, zoals gedefinieerd in het huidige project, weergegeven in de vervolgkeuzelijst Veld .

Een component definiëren

Als u een query wilt maken, definieert u een of meer componenten. Elke component definieert een filtercriteria voor één veld.

Voorbeeldquerycomponent

En/of Veld Operator Weergegeven als
And Toegewezen aan = @Me

Zie snelzoekgids voor queryindexen voor een lijst met beschikbare operators op basis van het veldgegevenstype.

Alle componenten worden toegevoegd als and-instructie. Selecteer Of als u de groepering wilt wijzigen. Groepsclausules om ervoor te zorgen dat de componentinstructies worden uitgevoerd in de vereiste volgorde.

Selecteer Nieuwe component toevoegen om een andere component toe te voegen aan het einde van de query en selecteer vervolgens het veld, de operator en de waarde voor die component.

Schermopname van Power Query-editor waarin wordt getoond hoe u een component toevoegt.

Zoek bijvoorbeeld naar alle werkitems die aan u zijn toegewezen door het veld Toegewezen aan op te geven, de operator is gelijk aan (=) en de @Me macro, die uw gebruikersidentiteit vertegenwoordigt.

Tip

Als u de WIQL-syntaxis voor een query wilt weergeven en hoe haakjes worden gebruikt om componenten te groeperen, installeert u de Marketplace Wiql-editor. Deze extensie ondersteunt het weergeven van de WIQL-syntaxis en het exporteren naar een WIQL-bestand voor gebruik in REST API-aanroepen. Zie Syntaxis voor de WiQL (Work Item Query Language) voor meer informatie.

Controlelijst voor het definiëren van een querycomponent

  1. Kies in de eerste lege rij onder de kolomkop Veld de pijl-omlaag om de lijst met beschikbare velden weer te geven en kies een item in de lijst. Zie Queryvelden en -waarden voor meer informatie.

  2. Selecteer in dezelfde rij onder de kolomkop Operator de pijl-omlaag om de lijst met beschikbare operators weer te geven en kies vervolgens een item in de lijst. Zie Operators voor meer informatie.

  3. Voer in dezelfde rij onder de kolomkop Waarde een waarde in of selecteer de pijl-omlaag en kies vervolgens een item in de lijst. Zie Variabelen voor meer informatie over het gebruik van een macro of variabele om het huidige project, de gebruiker, de datum of andere selectie op te geven.

  4. Als u een component wilt toevoegen, kiest u Nieuwe component toevoegen.

    U kunt een component toevoegen aan het einde van de query of de volgende taken uitvoeren met de bijbehorende pictogrammen:

    • Nieuwe filterregel invoegen
    • Deze filterregel verwijderen
    • Geselecteerde componenten groeperen
    • Groeperingsclausules opheffen

Een werkitemstructuur gebruiken om hiërarchieën weer te geven

Gebruik de query Structuur van werkitems om een geneste lijst met werkitems met meerdere lagen weer te geven. U kunt bijvoorbeeld alle achterstandsitems en de gekoppelde taken bekijken. Als u zich wilt richten op verschillende delen van de structuur, kiest u Alles uitvouwen of Alles samenvouwen.

Notitie

U kunt geen query maken waarin een hiërarchische weergave van testplannen, testsuites en testcases wordt weergegeven. Deze items worden niet aan elkaar gekoppeld met behulp van koppelingstypen tussen bovenliggende en onderliggende items. U kunt echter een query voor directe koppelingen maken waarin testgerelateerde werkitems worden weergegeven. U kunt ook de hiërarchie bekijken via de pagina Testplannen.

Schermopname van de lijst met queryresultaten met een structuurquery.

Definieer de filtercriteria voor zowel bovenliggende als onderliggende werkitems. Als u gekoppelde onderliggende items wilt zoeken, selecteert u Eerst werkitems op het hoogste niveau vergelijken. Als u gekoppelde ouders wilt zoeken, selecteert u Eerst gekoppelde werkitems vergelijken.

Schermopname van Power Query-editor weergave van boomstructuur van werkitems.

Gebruik de query Werkitems en Directe koppelingen om werkitems bij te houden die afhankelijk zijn van ander bijgehouden werk, zoals taken, bugs, problemen of functies. U kunt bijvoorbeeld achterstandsitems bekijken die afhankelijk zijn van andere items die worden geïmplementeerd of een bug die wordt opgelost.

Gebruik de query voor directe koppelingen om afhankelijkheden in teams bij te houden. De query helpt u ook bij het beheren van toezeggingen die uw team doet. Kies de filtercriteria voor de bovenste en gekoppelde werkitems. En selecteer de typen koppelingen om de afhankelijkheden te filteren.

Schermopname van queryresultaten van Direct Links.

Schermopname van Power Query-editor, Direct Links-query.

Filter uw lijst met werkitems op de eerste laag door een van deze opties te kiezen:

  • Alleen items retourneren die overeenkomende koppelingen: Werkitems in de eerste laag retourneren, maar alleen als ze koppelingen hebben naar werkitems die zijn opgegeven door de filtercriteria voor gekoppelde werkitems.
  • Alle items op het hoogste niveau retourneren: alle werkitems in de eerste laag retourneren ondanks de filtercriteria voor gekoppelde werkitems. Werkitems in de tweede laag die aan de eerste laag zijn gekoppeld, retourneren als ze voldoen aan de filtercriteria voor gekoppelde werkitems.
  • Alleen items retourneren die geen overeenkomende koppelingen hebben: werkitems in de eerste laag worden geretourneerd, maar alleen als ze geen koppelingen hebben naar werkitems die zijn opgegeven door de filtercriteria voor gekoppelde werkitems.

Zie Koppelingstypereferentie voor meer informatie over elk koppelingstype.

Gebruik en/of logische expressie

Geef And logische expressies op of Or maak logische expressies van uw querycomponenten. Gebruik And deze functie om werkitems te vinden die voldoen aan de criteria in zowel de huidige component als de vorige component. Gebruik Or dit om werkitems te vinden die voldoen aan het criterium in de huidige component of de vorige component.

Voeg één nieuwe component toe voor elk werkitemveld om uw zoekcriteria te verfijnen. Voeg componenten toe om alleen de gewenste set werkitems te retourneren. Als u de verwachte resultaten van uw query niet ontvangt, verfijnt u deze. U kunt queryclausules toevoegen, verwijderen, groeperen of de groepering ervan opheffen om de queryresultaten te verbeteren.

Groepeer querycomponenten om te werken als één eenheid, gescheiden van de rest van de query. Groeperingsclausules zijn vergelijkbaar met het plaatsen van haakjes rond een expressie in een wiskundige vergelijking of logica-instructie. Wanneer u componenten groepeert, is de And of Or voor de eerste component in de groep van toepassing op de hele groep.

Groepsclausules

Gegroepeerde componenten werken als één eenheid, gescheiden van de rest van de query. Groeperingsclausules zijn vergelijkbaar met het plaatsen van haakjes rond een wiskundige vergelijking of logische expressie. De And of Or operator voor de eerste component in de groep is van toepassing op de hele groep.

Zoals in de volgende voorbeelden wordt weergegeven, worden de gegroepeerde componenten vertaald naar de bijbehorende logische expressie.

Query Gegroepeerde componenten Logische expressie
1 Schermopname van een groepscomponentquery. Filters worden ingesteld voor het veld Werkitemtype en het veld Staat of het veld Toegewezen aan. Schermopname van een logische expressie. Een AND-operator groeperen het type werkitem, status en toegewezen aan velden. Een OR-operator groeperen de velden Status en Toegewezen aan velden.
2 Schermopname van een groepscomponentquery, met filters voor zowel het veld Werkitem als een van het veld State of het veld Toegewezen aan. Schermopname van een logische expressie. Een AND-operator groepeer het type Werkitem met de velden Status of Toegewezen aan velden, die zijn gegroepeerd op een OR-operator.
3 Schermopname van een groepscomponentquery. Filters worden ingesteld voor het veld Werkitemtype of zowel het veld Staat als het veld Toegewezen aan. Schermopname van een logische expressie. Een OR-operator koppelt het type Werkitem aan zowel de staat als de velden Toegewezen aan, die zijn gekoppeld door een AND-operator.

Deze query's retourneren werkitems die bug typen en voldoen aan de volgende logische expressies:

  • Query 1: AND State=Active OR Assigned to @Me
  • Query 2: AND (State=Active OR Assigned to @Me)
  • Query 3: OR (State=Active AND Assigned to @Me)

Als u een of meer componenten wilt groeperen, selecteert u deze en selecteert u vervolgens het pictogram groepsclausules.

Schermopname van webportal, Power Query-editor, geselecteerde queryclausules groeperen.

U kunt ook verschillende gegroepeerde componenten groeperen. Schakel de selectievakjes van elke component in. Kies vervolgens het pictogram groepsclausules.

Schermopname van webportal, Power Query-editor, meerdere queryclausules groeperen.

Als uw queryresultaten geen verwachte resultaten retourneren, voert u de volgende stappen uit:

  • Zorg ervoor dat elke component is gedefinieerd zoals u bedoelde.
  • Controleer And/Or de toewijzingen aan elke component. Als uw resultaten meer werkitems bevatten dan verwacht, is er vaak een Or component aanwezig in plaats van een And component.
  • Bepaal of u de groepering van de queryclausules en de And/Or toewijzingen van elke gegroepeerde component wilt groeperen of wijzigen.
  • Voeg meer queryclausules toe om uw queryfiltercriteria te verfijnen.
  • Bekijk de beschikbare opties voor het opgeven van velden, operators en waarden.
  • Zie de aanbevolen procedures verderop in dit artikel.

De groepering van een component opheffen

Als u de groepering van een component wilt opheffen, selecteert u het pictogram voor de groeperingsclausule voor de gegroepeerde component.


Queryresultaten weergeven in een dashboard

In de volgende twee widgets worden queryresultaten weergegeven. U kunt werkitems rechtstreeks vanuit deze widgets openen.

  • Werk dat aan mij is toegewezen: geeft een lijst weer van alle voorgestelde of actieve werkitems die zijn toegewezen aan de aangemelde gebruiker. Hiermee worden de velden Id, Staat en Titel weergegeven.
  • Widget queryresultaten: geeft de resultaten weer van een platte, structuur- of directkoppelingsquery. U kunt de velden configureren die worden weergegeven via de widget, het formaat van de kolomvelden wijzigen en structuur en directlinkquery uitvouwen en samenvouwen.

Zie Widgets toevoegen aan een dashboard voor meer informatie.

Widget queryresultaten weergeven met bovenliggende titels

U kunt de resultaten van een query weergeven met de bovenliggende titel weergegeven. Voer hiervoor de volgende stappen uit:

  1. Maak de query waarmee de gewenste werkitems worden gefilterd. De query kan een platte query, boomstructuur of directkoppelingsquery zijn.
  2. Voeg het bovenliggende veld toe als kolom.
  3. Sla de query op als een gedeelde query of teamfavoriet.
  4. Voeg de widget Queryresultaten toe aan uw dashboard en configureer de query. Zorg ervoor dat het bovenliggende veld is ingesteld om weer te geven.

In de volgende afbeelding ziet u een queryresultatenwidget die het bovenliggende veld weergeeft.

Schermopname van de queryresultatenwidget met een bovenliggend kolomveld.

Een queryhyperlink maakt gebruik van wiql (Work Item Query Language), die lijkt op Transact-SQL. Zie Syntaxis voor de WiQL (Work Item Query Language) voor meer informatie.

Notitie

De meeste browsers dwingen een limiet van 2000 tot 2083 tekens af voor een URL-tekenreeks.

Codeer het WIQL-gedeelte van de URL-syntaxis. U kunt elk hulpprogramma voor URL-coderingsprogramma's gebruiken om uw URL te coderen.

https://dev.azure.com/OrganizationName/ProjectName/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}

De volgende hyperlink bevat bijvoorbeeld de id en titel van alle actieve bugs die zijn gedefinieerd onder het pad fabrikamFiber/webgebied voor de Fabrikam-organisatie.

https://dev.azure.com/fabrikam/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.State%5D%3D'Active'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'

De gedecodeerde WIQL voldoet aan:

SELECT [System.ID], [System.Title]
   FROM WorkItems 
   WHERE [System.TeamProject]='FabrikamFiber' 
   AND [System.WorkItemType]='Bug'
   AND [System.State]='Active'
   AND [System.AreaPath]='FabrikamFiber\Web'

Notitie

De WIQL-lengte mag niet langer zijn dan 32.000 tekens voor Azure Boards-query's.

https://{ServerName}/{CollectionName}/{ProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}

De volgende hyperlink bevat bijvoorbeeld de id, titel en status van alle bugs onder het pad fabrikamFiber/webgebied.

http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20

Zie bijvoorbeeld de volgende niet-gecodeerde vermelding.

http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=
SELECT [System.ID], [System.Title], [System.State] 
   FROM WorkItems 
   WHERE [System.TeamProject]='FabrikamFiber' 
   AND [System.WorkItemType]='Bug' 
   AND [System.AreaPath]='FabrikamFiber\Web'   

Aanbevolen procedures

De volgende aanbevolen procedures zijn van toepassing op de volgende query's die u kunt maken:

Gerichte, selectieve query's maken

Definieer een zeer selectieve query door alle filters toe te passen die nodig zijn voor uw query. Hoe selectiever de query is, hoe kleiner de set resultaten. Hoe kleiner de resultatenset is, hoe gerichter en selectief uw query is.

Tags gebruiken om werkitems te categoriseren

Gebruik werkitemtags om uw werkitems te categoriseren in plaats van een aangepast veld. Query's die op tags filteren, worden meestal sneller uitgevoerd dan die query's die filteren op tekenreeksovereenkomsten.

In tegenstelling tot overeenkomsten met aangepaste velden of gedeeltelijke overeenkomsten, is voor een query met een Tags Contains bewerking geen volledige scan van alle werkitemtabellen vereist.

Gebruiken Contains words voor tekenreeksovereenkomsten

Als u wilt filteren op een tekenreeksovereenkomst, gebruikt u de Contains Words in plaats van de Contains operator. De Contains Words operator voert een zoekopdracht in volledige tekst uit op het opgegeven veld, wat meestal sneller wordt voltooid.

De Contains operator voert een tabelscan uit. Dit is een tragere bewerking dan de Contains Words operator. Het verbruikt ook meer CPU-cycli. Deze CPU-cycli kunnen ertoe leiden dat u frequentiebeperkingen ondervindt. Zie Frequentie- en gebruikslimieten voor meer informatie.

Kleine groepen opgeven met de In Group operator

De In Group operator filtert werkitems op basis van overeenkomsten binnen een groep waarden. De groep waarden komt overeen met de waarden in een team, beveiligingsgroep of werktraceringscategorie. U kunt bijvoorbeeld een query maken om alle werkitems te vinden die zijn toegewezen aan elk lid van een team. Of zoek alle werkitems die deel uitmaken van de categorie Vereisten (Microsoft.RequirementCategory).

Wanneer u filtert op een groep met een groot aantal leden, is uw resultatenset meestal groter en niet-selectief. Als een groep overeenkomt met een grote Microsoft Entra-groep, genereert de query ook een redelijk grote kosten om die groep op te lossen op basis van Microsoft Entra-id.

Vermijd het gebruik van ontkende operators

Negated operators, zoals <>, Not In, Not Under, Not In Group, genereren meestal niet-selectieve query's en grote resultatensets.

Gebruik alleen negated operators indien nodig. Probeer altijd eerst alternatieven te vinden. Als Veld1 bijvoorbeeld waarden A, B, C, D; bevat, geeft u de Field1 In A, B, C component op in plaats van de negated Field1 <> D component.

Vergelijkingen van tekenreeksen voorkomen

Query's die tekenreeksvergelijkingen bevatten, genereren tabelscans die inherent inefficiënt zijn. In plaats daarvan raden we u aan tags of een specifiek aangepast veld als alternatieven te gebruiken, met name wanneer een query slecht presteert.

Operatoren beperken Or

Beperk het aantal Or operators dat in uw query is gedefinieerd. Query's worden beter uitgevoerd wanneer er minder Or operators worden gebruikt. Te veel Or operators kunnen uw query niet-selectief maken. Als uw query langzaam wordt uitgevoerd, wijzigt u de volgorde van de Or operatorcomponent naar de bovenkant van de querycomponenten.

Uw query opslaan

Vanwege interne optimalisaties worden opgeslagen query's meestal beter uitgevoerd dan niet-opgeslagen query's. Sla uw query altijd op wanneer u deze opnieuw wilt gebruiken. Zelfs voor WIQL-query's die worden uitgevoerd via een REST API, slaat u de WIQL op via de webportal om uw REST API-aanroepen uit te voeren, zodat ze minder gevoelig zijn voor toekomstige prestatieregressies.

Uw query uitvoeren

Soms moet u uw query een paar keer uitvoeren om het juiste optimalisatieplan te bereiken. Zorg ervoor dat u uw query opslaat en deze maximaal tien keer uitvoert gedurende een periode van 30 minuten. Op deze manier kan het systeem het optimalisatieplan onderzoeken en opzoeken dat het meest geschikt is voor uw query.