Definiera en fråga för arbetsobjekt
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Frågor om arbetsobjekt i Azure Boards genererar listor över arbetsobjekt baserat på de filtervillkor som du har angett. Du kan spara och dela dessa hanterade frågor med andra.
Du kan skapa frågor från webbportalen eller från en klient som stöds, till exempel Visual Studio Team Explorer. Om du vill stödja massuppdateringar eller tillägg importerar eller exporterar du frågor med excel- eller .csv filer.
Kommentar
Webbläsarbilderna som används i den här artikeln kommer från funktionen New Boards Hubs, som är aktiverad som standard. Om den här funktionen inte är aktiverad kanske du använder den tidigare tavlorna. Om du vill visa bilderna för den tidigare upplevelsen väljer du versionen av den här artikeln i Azure DevOps Server 2022.
Se våra rekommenderade metodtips senare i den här artikeln.
Förutsättningar
- Åtkomstnivåer:
- Behörigheter: Har din Behörighet för Contribute inställd på Tillåt för den mapp som du vill lägga till en fråga i. Som standard har gruppen Deltagare inte den här behörigheten.
Kommentar
Användare med intressentåtkomst för ett offentligt projekt har fullständig åtkomst till frågefunktioner precis som användare med grundläggande åtkomst. Mer information finns i Snabbreferens för intressentåtkomst.
- Åtkomstnivåer:
- Behörigheter: Har din Behörighet för Contribute inställd på Tillåt för den mapp som du vill lägga till frågan i. Som standard har gruppen Deltagare inte den här behörigheten.
Välj ett frågefilter
Från Power Query-redigeraren väljer du filtret för att gå vidare till en artikel med exempelfrågor. Tillsammans med frågefiltren kan du använda filter interaktivt för att fråga efter resultat.
Kommentar
Hanterade frågor stöder inte närhetssökningar, men semantiska sökningar gör det. Semantiska sökningar stöder även både *
och ?
som jokertecken och du kan använda mer än ett jokertecken för att matcha fler än ett tecken. Mer information finns i Sökning efter funktionella arbetsobjekt.
Filtrera funktioner
Makron
Du kan filtrera en fråga interaktivt med hjälp av funktionen Filter.
Öppna frågor
I webbläsaren kontrollerar (1) att du har valt rätt projekt, (2) väljer Frågor >och sedan (3) Alla.
Sidan Frågor öppnas på fliken Favoriter som visar de frågor som du har angett som favoriter. Du kan välja fliken Alla för att visa alla frågor som du har definierat och delat frågor för projektet.
Dricks
Frågor som du eller ditt team har valt som favoriter visas på sidan Favoriter . Favoritfrågor tillsammans med andra objekt visas också på projektsidan. Mer information finns i Ange personliga favoriter eller teamfavoriter.
I projektet väljer du Boards Queries (Tavlor>) Frågor och sedan Alla.
Sidan Frågor öppnas på fliken Favoriter som visar de frågor som du har angett som favoriter. Du kan välja fliken Alla för att visa alla frågor som du har definierat och delat frågor för projektet.
Dricks
Frågor som du eller ditt team har valt som favoriter visas på sidan Favoriter . Favoritfrågor tillsammans med andra objekt visas också på projektsidan. Mer information finns i Ange personliga favoriter eller teamfavoriter.
Definiera en flat listfråga
Starta en ny fråga från fliken Frågor i webbportalen eller fliken Arbetsobjekt i Team Explorer.
- Välj Ny>ny fråga.
Power Query-redigeraren visas med följande standardinställningar: Platt lista över arbetsobjekt, Typ av arbetsobjekt=[Alla]och Tillstånd=[Alla].
- Ändra satserna Värden och lägg till eller ta bort, eller ändra typen av fråga till Arbetsobjekt och direktlänkar eller till ett träd med arbetsobjekt.
- Välj Ny>ny fråga.
Power Query-redigeraren visas med följande standardinställningar: Platt lista över arbetsobjekt, Typ av arbetsobjekt=[Alla]och Tillstånd=[Alla].
- Ändra satserna Värden och lägg till eller ta bort, eller ändra typen av fråga till Arbetsobjekt och direktlänkar eller till ett träd med arbetsobjekt.
Fråga mellan eller inom projekt
Nytt frågeomfång för det aktuella projektet som standard. Men du kan skapa frågor för att hitta arbetsobjekt som definierats i organisationen eller projektsamlingen. Alla frågor som du sparar sparas dock under ett visst projekt.
Om du vill visa en lista över arbetsobjekt som definierats i två eller flera projekt markerar du Fråga mellan projekt. Följande fråga hittar till exempel alla funktioner som skapats i alla projekt under de senaste 30 dagarna.
Med frågan mellan projekt markerad kan du lägga till fältet TeamProjekt för att filtrera till ett valfritt antal projekt.
Kommentar
- Avgränsa flera projektnamn med listavgränsaren som motsvarar de regionala inställningar som definierats för klientdatorn, till exempel ett kommatecken
,
. - När du använder fältet Tillstånd i en fråga i flera projekt begränsas de visade värdena till de som definierats i standardprojektet. Det innebär att om du frågar mellan projekt kanske du inte ser alla möjliga tillståndsvärden från varje projekt, utan endast de från projektet som anges som standard. Om du till exempel har tre projekt – Projekt A, Projekt B och Projekt C – och endast Projekt A har ett tillstånd som heter "I granskning", medan projekt B och C har olika tillstånd, visar frågor mellan dessa projekt endast de tillstånd som definierats i Projekt A.
- Fältet Teamprojekt är endast tillgängligt när du har kontrollerat Fråga mellan projekt.
- När Fråga mellan projekt är markerad visas alla fält från alla typer av arbetsobjekt som definierats i alla projekt i samlingen i listrutan Fält .
- När Fråga mellan projekt är avmarkerad visas endast de fälten från dessa typer av arbetsobjekt, enligt definitionen i det aktuella projektet, i listrutan Fält .
Definiera en sats
Om du vill skapa en fråga definierar du en eller flera satser. Varje sats definierar ett filtervillkor för ett enda fält.
Exempel på frågesats
Och/Eller | Fält | Operator | Värde |
---|---|---|---|
och | Tilldelad till | = | @Me |
En lista över tillgängliga operatorer baserat på fältdatatypen finns i Snabbreferens för frågeindex.
Alla satser läggs till som en And-instruktion . Välj Eller om du vill ändra gruppering. Gruppera satser för att säkerställa att satssatserna körs i den sekvens som krävs.
Välj Lägg till ny sats för att lägga till en annan sats i slutet av frågan och välj sedan satsen Fält, Operator och Värde för den satsen.
Du kan till exempel söka efter alla arbetsobjekt som tilldelats dig genom att ange fältet Tilldelad till, operatorn lika med (=) och @Me makrot, som representerar din användaridentitet.
Dricks
Om du vill visa WIQL-syntaxen för en fråga och hur parenteser används för att gruppera satser installerar du Marketplace Wiql-redigeraren. Det här tillägget stöder visning av WIQL-syntaxen och export till en WIQL-fil för användning i REST API-anrop. Mer information finns i Syntax för WIQL (Work Item Query Language).
Checklista för att definiera en frågesats
I den första tomma raden, under kolumnrubriken Fält , väljer du nedåtpilen för att visa listan över tillgängliga fält och väljer ett objekt i listan. Mer information finns i Frågefält och Värden.
På samma rad, under kolumnrubriken Operator , väljer du nedåtpilen för att visa listan över tillgängliga operatorer och väljer sedan ett objekt i listan. Mer information finns i Operatorer.
På samma rad, under kolumnrubriken Värde , anger du antingen ett värde eller väljer nedåtpilen och väljer sedan ett objekt i listan. Mer information om hur du använder ett makro eller en variabel för att ange aktuellt projekt, användare, datum eller annat val finns i Variabler.
Om du vill lägga till en sats väljer du Lägg till ny sats.
Du kan lägga till en sats i slutet av frågan eller utföra följande uppgifter med motsvarande ikoner:
- Infoga ny filterrad
- Ta bort den här filterraden
- Gruppera valda satser
- Dela upp grupp-satser
Använda ett arbetsobjektträd för att visa hierarkier
Använd frågan Träd för arbetsobjekt för att visa en kapslad lista med arbetsobjekt med flera nivåer. Du kan till exempel visa alla kvarvarande uppgifter och deras länkade uppgifter. Om du vill fokusera på olika delar av trädet väljer du Expandera alla eller Dölj alla.
Kommentar
Du kan inte skapa en fråga som visar en hierarkisk vy över testplaner, testsviter och testfall. De här objekten länkas inte ihop med hjälp av länktyperna överordnad-underordnad. Du kan dock skapa en direktlänkfråga som visar testrelaterade arbetsobjekt. Du kan också visa hierarkin via sidan Testplaner.
Definiera filtervillkoren för både överordnade och underordnade arbetsobjekt. Om du vill hitta länkade underordnade objekt väljer du Matcha arbetsobjekt på den översta nivån först. Om du vill hitta länkade överordnade väljer du Matcha länkade arbetsobjekt först.
Använda direktlänkar för att visa beroenden
Använd frågan Arbetsobjekt och Direktlänkar för att spåra arbetsobjekt som är beroende av annat spårat arbete, till exempel uppgifter, buggar, problem eller funktioner. Du kan till exempel visa kvarvarande uppgifter som är beroende av att andra objekt implementeras eller ett fel som åtgärdas.
Använd direktlänkfrågan för att spåra beroenden mellan team. Frågan hjälper dig också att hantera åtaganden som ditt team gör. Välj filtervillkoren för de översta och länkade arbetsobjekten. Och välj de typer av länkar som ska filtrera beroendena.
Filtrera listan över arbetsobjekt på första nivån genom att välja något av följande alternativ:
- Returnera endast objekt som har matchande länkar: Arbetsobjekt på första nivån returneras, men endast om de har länkar till arbetsobjekt som anges av filtervillkoren för länkade arbetsobjekt.
- Returnera alla toppnivåobjekt: Alla arbetsobjekt på första nivån returneras trots filtervillkoren för länkade arbetsobjekt. Andra nivåns arbetsobjekt som är länkade till den första nivån returnerar om de matchar filtervillkoren för länkade arbetsobjekt.
- Returnera endast objekt som inte har matchande länkar: Arbetsobjekt på första nivån returneras, men endast om de inte har länkar till arbetsobjekt som anges av filtervillkoren för länkade arbetsobjekt.
Mer information om varje länktyp finns i Referens för länktyp.
Använda och/eller logiskt uttryck
Ange And
eller Or
skapa logiska uttryck för dina frågesatser. Använd And
för att hitta arbetsobjekt som uppfyller kriterierna i både den aktuella satsen och den tidigare satsen. Använd Or
för att hitta arbetsobjekt som uppfyller kriteriet i antingen den aktuella satsen eller den tidigare satsen.
Lägg till en ny sats för varje arbetsobjektfält för att förfina sökvillkoren. Lägg till satser för att endast returnera den uppsättning arbetsobjekt som du vill ha. Om du inte får de resultat du förväntar dig av din fråga förfinar du den. Du kan lägga till, ta bort, gruppera eller dela upp frågesatser för att förbättra frågeresultatet.
Gruppera frågesatser för att fungera som en enskild enhet separat från resten av frågan. Grupperingssatser liknar att placera parenteser runt ett uttryck i en matematisk ekvation eller logiksats. När du grupperar satser And
gäller eller Or
för den första satsen i gruppen för hela gruppen.
Gruppsatser
Grupperade satser fungerar som en enskild enhet separat från resten av frågan. Grupperingssatser liknar att placera parenteser kring en matematisk ekvation eller ett logikuttryck. Operatorn And
eller Or
för den första satsen i gruppen gäller för hela gruppen.
Som följande exempel visar översätts de grupperade satserna till motsvarande logiska uttryck.
Fråga | Grupperade satser | Logiskt uttryck |
---|---|---|
1 | ||
2 | ||
3 |
De här frågorna returnerar arbetsobjekt som är av typen Bugg och uppfyller följande logiska uttryck:
- Fråga 1:
AND State=Active OR Assigned to @Me
- Fråga 2:
AND (State=Active OR Assigned to @Me)
- Fråga 3:
OR (State=Active AND Assigned to @Me)
Om du vill gruppera en eller flera satser väljer du dem och väljer sedan gruppsatsens ikon.
Du kan också gruppera flera grupperade satser. Markera kryssrutorna för varje sats. Välj sedan gruppsatsens ikon.
Om frågeresultatet inte returnerar förväntade resultat gör du följande:
- Kontrollera att varje sats har definierats som du tänkt dig.
- Verifiera
And
/Or
tilldelningar till varje sats. Om resultatet innehåller fler arbetsobjekt än förväntat finns ofta enOr
sats i stället för enAnd
sats. - Kontrollera om du behöver gruppera eller ändra gruppering av frågesatserna och
And
/Or
tilldelningarna för varje grupperad sats. - Lägg till fler frågesatser för att förfina frågefiltervillkoren.
- Granska de tillgängliga alternativen för att ange fält, operatorer och värden.
- Se metodtips senare i den här artikeln.
Dela upp en sats
Om du vill dela upp en sats väljer du ikonen för att dela upp satser för den grupperade satsen.
Ange standardkolumnbredd i frågeresultat
Gör följande för att ange standardkolumnbredden i frågeresultatet:
- Öppna den fråga som du vill ändra.
- Justera kolumnbredderna manuellt till önskad storlek genom att dra kanterna på kolumnrubrikerna.
- Välj Spara eller Spara som om du vill spara det som en ny fråga.
- Stäng och öppna frågan igen för att säkerställa att kolumnbredderna behålls.
Azure DevOps stöder för närvarande inte att ange en standardkolumnbredd som bevaras i alla sessioner. Kolumnbredderna sparas per fråga, så du måste justera och spara dem för varje fråga individuellt.
Visa frågeresultat i en instrumentpanel
Följande två widgetar visar frågeresultat. Du kan öppna arbetsobjekt direkt från dessa widgetar.
- Arbete som tilldelats mig: Visar en lista över alla föreslagna eller aktiva arbetsobjekt som tilldelats den inloggade användaren. Visar fälten ID, Tillstånd och Rubrik.
- Frågeresultatwidget: Visar resultatet av en flat fråga, ett träd eller en direktlänkfråga. Du kan konfigurera fälten som visas via widgeten, ändra storlek på kolumnfälten och expandera och komprimera träd- och direktlänkfrågan.
Mer information finns i Lägga till widgetar på en instrumentpanel.
Visa frågeresultatwidget med överordnade rubriker
Du kan visa resultatet av en fråga med den överordnade rubriken som visas. Utför följande steg för att göra det:
- Skapa frågan som filtrerar de intressanta arbetsobjekten. Frågan kan vara en fråga med platt lista, träd eller direktlänkar.
- Lägg till fältet Överordnat som en kolumn.
- Spara frågan som en delad fråga eller gruppfavorit.
- Lägg till widgeten Frågeresultat på instrumentpanelen och konfigurera frågan. Kontrollera att fältet Överordnat är inställt på att visas.
Följande bild visar en widget för frågeresultat som visar fältet Överordnat.
Definiera en fråga som en hyperlänk
En frågehyperlänk använder WIQL (Work Item Query Language), som liknar Transact-SQL. Mer information finns i Syntax för WIQL (Work Item Query Language).
Kommentar
De flesta webbläsare tillämpar en gräns på mellan 2000 och 2083 tecken för en URL-sträng.
Fråga hyperlänksyntax
Koda WIQL-delen av URL-syntaxen. Du kan använda valfritt URL-kodarverktyg för att koda din URL.
https://dev.azure.com/OrganizationName/ProjectName/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Följande hyperlänk visar till exempel ID:t och rubriken för alla aktiva buggar som definierats under sökvägen FabrikamFiber/Webbområde för Fabrikam-organisationen.
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'
Den avkodade WIQL:en överensstämmer med:
SELECT [System.ID], [System.Title]
FROM WorkItems
WHERE [System.TeamProject]='FabrikamFiber'
AND [System.WorkItemType]='Bug'
AND [System.State]='Active'
AND [System.AreaPath]='FabrikamFiber\Web'
Kommentar
WIQL-längden får inte överstiga 32 000 tecken för Azure Boards-frågor.
Fråga hyperlänksyntax
https://{ServerName}/{CollectionName}/{ProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Följande hyperlänk visar till exempel ID, rubrik och tillstånd för alla buggar under sökvägen FabrikamFiber/Webbområde.
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
Se till exempel följande icke-kodade post.
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'
Bästa praxis
Följande metodtips gäller för följande frågor som du kan skapa:
Skapa fokuserade, selektiva frågor
Definiera en mycket selektiv fråga genom att tillämpa alla filter som krävs för din fråga. Ju mer selektiv frågan är, desto mindre blir resultatuppsättningen. Ju mindre resultatuppsättningen är, desto mer riktad och selektiv är frågan.
Använda taggar för att kategorisera arbetsobjekt
Använd arbetsobjekttaggar för att kategorisera dina arbetsobjekt i stället för ett anpassat fält. Frågor som filtrerar på taggar fungerar vanligtvis snabbare jämfört med de frågor som filtrerar på strängmatchningar.
Till skillnad från anpassade fältmatchningar eller partiella matchningar kräver en fråga med en Tags Contains
åtgärd inte en fullständig genomsökning av alla arbetsobjektstabeller.
Använd Contains words
för strängmatchningar
Om du vill filtrera efter en strängmatchning använder du operatorn Contains Words
Contains
i stället för . Operatorn Contains Words
kör en fulltextsökning i det angivna fältet, vilket tenderar att slutföras snabbare.
Operatorn Contains
kör en tabellgenomsökning, vilket är en långsammare åtgärd än operatorn Contains Words
. Det förbrukar också fler CPU-cykler. Dessa CPU-cykler kan orsaka att du stöter på hastighetsbegränsningar. Mer information finns i Hastighets- och användningsgränser.
Ange små grupper med operatorn In Group
Operatorn In Group
filtrerar arbetsobjekt baserat på matchningar i en grupp med värden. Gruppen med värden motsvarar värdena i en grupp, säkerhetsgrupp eller arbetsspårningskategori. Du kan till exempel skapa en fråga för att hitta alla arbetsobjekt som har tilldelats alla medlemmar i ett team. Du kan också hitta alla arbetsobjekt som tillhör kravkategorin (Microsoft.RequirementCategory
).
När du filtrerar på en grupp som innehåller ett stort antal medlemmar tenderar resultatuppsättningen att vara större och icke-selektiv. Om en grupp motsvarar en stor Microsoft Entra-grupp genererar frågan dessutom en ganska stor kostnad för att lösa den gruppen från Microsoft Entra-ID.
Undvik användning av negerade operatorer
Negerade operatorer, till exempel <>, Not In, Not Under, Not In Group
, tenderar att generera icke-valda frågor och stora resultatuppsättningar.
Använd endast negerade operatorer vid behov. Försök alltid hitta alternativ först. Om Fält1 till exempel har värdena A, B, C, D, anger du Field1 In A, B, C
satsen i stället för den negerade Field1 <> D
satsen.
Undvik strängjämförelser
Frågor som innehåller strängjämförelser genererar tabellgenomsökningar som är ineffektiva. I stället rekommenderar vi att du använder taggar eller ett specifikt anpassat fält som alternativ, särskilt när en fråga presterar dåligt.
Begränsa Or
operatorer
Begränsa antalet Or
operatorer som definierats i din fråga. Frågor körs bättre när färre Or
operatorer används. För många Or
operatorer kan göra frågan icke-markerad. Om frågan körs långsamt ändrar du ordning på Or
operatorsatsen överst i frågesatserna.
Spara din fråga
På grund av interna optimeringar tenderar sparade frågor att fungera bättre jämfört med osparade frågor. Spara alltid frågan när du planerar att återanvända den. Även för WIQL-frågor som körs via ett REST API sparar du WIQL via webbportalen för att göra dina REST API-anrop, så att de är mindre benägna att framtida prestandaregressioner.
Kör din fråga
Ibland behöver du köra frågan några gånger för att nå rätt optimeringsplan. Spara frågan och kör den upp till 10 gånger under en 30-minutersperiod. På så sätt kan systemet undersöka och söka efter den optimeringsplan som passar bäst för din fråga.