Een werkitemquery definiëren
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Werkitemquery's in Azure Boards genereren lijsten met werkitems 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.
Notitie
In de volgende afbeeldingen wordt de gebruikersinterface weergegeven met de functie New Boards Hub standaard ingeschakeld. Zie Functies beheren of inschakelenvoor meer informatie.
Bekijk onze aanbevolen aanbevolen procedures verderop in dit artikel.
Vereisten
-
Toegangsniveaus:
- Als u gedeelde query's wilt weergeven en uitvoeren, moet u een projectlid zijn.
- Als u een gedeelde query wilt toevoegen en opslaan, hebt u ten minste basistoegang .
- Machtigingen: stel uw machtiging Bijdragen in 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.
-
Toegangsniveaus:
- Als u gedeelde query's wilt weergeven en uitvoeren, moet u een projectlid zijn.
- Als u een gedeelde query wilt toevoegen en opslaan, hebt u ten minste basistoegang .
- Machtigingen: zorg ervoor dat de machtiging Bijdragen is ingesteld op Toestaan voor de map waaraan u de query wilt toevoegen. De groep Inzenders beschikt standaard niet over deze machtiging.
Een queryfilter kiezen
Selecteer in de Power Query-editor het filter 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. Semantische zoekopdrachten ondersteunen ook zowel *
als ?
jokertekens en u kunt 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 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 > op borden en kies vervolgens (3) Alles.
De pagina Query's wordt geopend op het tabblad Favorieten met de query's die u als favorieten hebt ingesteld. U kunt het tabblad 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.
Kies > op borden in uw project en kies Vervolgens Alles.
De pagina Query's wordt geopend op het tabblad Favorieten met de query's die u als favorieten hebt ingesteld. U kunt het tabblad 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>nieuwe query.
De Power Query-editor wordt weergegeven met de volgende standaardinstellingen: Platte lijst met werkitems, Type werkitem=[Any], en State=[Any].
- 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.
- Selecteer Nieuwe>nieuwe query.
De Power Query-editor wordt weergegeven met de volgende standaardinstellingen: Platte lijst met werkitems, Type werkitem=[Any], en State=[Any].
- 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.
Als de query voor alle projecten is ingeschakeld, kunt u het veld Teamproject toevoegen om te filteren op een selectie van projecten.
Notitie
- Scheid meerdere projectnamen met het lijstscheidingsteken dat overeenkomt met de landinstellingen die zijn gedefinieerd voor uw clientcomputer, bijvoorbeeld een komma
,
. - Wanneer u het veld Status in een query in meerdere projecten gebruikt, zijn de weergegeven waarden beperkt tot de waarden die zijn gedefinieerd in het standaardproject. Dit betekent dat als u query's uitvoert op projecten, u mogelijk niet alle mogelijke statuswaarden van elk project ziet, maar alleen die van het project dat als standaard is ingesteld. Als u bijvoorbeeld drie projecten hebt( Project A, Project B en Project C) en alleen Project A de status 'In beoordeling' heeft, terwijl projecten B en C verschillende statussen hebben, worden alleen de statussen weergegeven die in Project A zijn gedefinieerd.
- 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.
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
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.
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.
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.
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.
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.
Directe koppelingen gebruiken om afhankelijkheden weer te geven
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.
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 | ||
2 | ||
3 |
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.
U kunt ook verschillende gegroepeerde componenten groeperen. Schakel de selectievakjes van elke component in. Kies vervolgens het pictogram groepsclausules.
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 eenOr
component aanwezig in plaats van eenAnd
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.
Standaardkolombreedte instellen in queryresultaten
Voer de volgende stappen uit om de standaardkolombreedte in queryresultaten in te stellen:
- Open de query die u wilt wijzigen.
- Pas de kolombreedten handmatig aan op de gewenste grootte door de randen van de kolomkoppen te slepen.
- Selecteer Opslaan of Opslaan als als u deze wilt opslaan als een nieuwe query.
- Sluit de query en open deze opnieuw om ervoor te zorgen dat de kolombreedten behouden blijven.
Azure DevOps biedt momenteel geen ondersteuning voor het instellen van een standaardkolombreedte die in alle sessies wordt bewaard. De kolombreedten worden per query opgeslagen, dus u moet deze afzonderlijk aanpassen en opslaan voor elke query.
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:
- Maak de query waarmee de gewenste werkitems worden gefilterd. De query kan een platte query, boomstructuur of directkoppelingsquery zijn.
- Voeg het bovenliggende veld toe als kolom.
- Sla de query op als een gedeelde query of teamfavoriet.
- 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.
Een query definiëren als hyperlink
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.
Syntaxis van queryhyperlink
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.
Syntaxis van queryhyperlink
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 Field1 <> D
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.