Definiera en arbetsobjektfråga i Azure Boards

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Frågor om arbetsobjekt 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.

Se våra rekommenderade metodtips senare i den här artikeln.

Förutsättningar

  • Du måste ha intressentåtkomst för att kunna visa och köra delade frågor. Alla projektmedlemmar har intressentåtkomst som standard. Mer information finns i Ändra behörigheter för en delad fråga eller mapp.
  • Du måste ha grundläggande åtkomst eller högre för att kunna lägga till och spara en delad fråga.
  • Du måste ha behörigheten 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.

  • Som standard kan alla projektmedlemmar och användare med intressentåtkomst visa och köra alla delade frågor. Du kan ändra behörighetsuppsättningen för en delad frågemapp eller delad fråga. Mer information finns i Ange frågebehörigheter.
  • Om du vill lägga till och spara en fråga under Delade frågor måste du beviljas grundläggande åtkomst eller högre. Du måste också ha din Contribute-behörighet 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 kan du välja 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. Dessutom stöder semantiska sökningar 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 också 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.

Öppna boards-frågor>, lodrät navigering

Om det är första gången du öppnar Frågor öppnas sidan till Favoriter. På den här sidan visas de frågor som du har angett är en favorit. Annars kan du välja Alla för att visa alla frågor som du har definierat och delat frågor som definierats 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 fråga.

Skärmbild för att lägga till ny fråga, ny upplevelse.

Power Query-redigeraren visas med följande standardinställningar: Platt lista över arbetsobjekt, Typ av arbetsobjekt=[Alla]och Tillstånd=[Alla].

Skärmbild av Power Query-redigeraren med en platt lista över markerade arbetsobjekt.

Ä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.

Skärmbild av Power Query-redigeraren med Frågan i flera projekt markerad.

Med frågan mellan projekt markerad kan du lägga till fältet TeamProjekt för att filtrera till ett valfritt antal projekt.

Skärmbild av Power Query-redigeraren med Team Project och andra fält som lagts till i filtret.

Kommentar

Avgränsa flera projektnamn med listavgränsaren som motsvarar de regionala inställningar som definierats för klientdatorn, till exempel ett kommatecken ,.

  • 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.

Skärmbild av Power Query-redigeraren som visar hur du lägger till en sats.

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Skärmbild av frågeresultatlistan som visar en trädfråga.

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.

Skärmbild av Power Query-redigeraren vy över arbetsobjektets träd.

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.

Skärmbild av frågeresultat för direktlänkar.

Skärmbild av fråga om Power Query-redigeraren, direktlänkar.

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 Skärmbild som visar en gruppsatsfråga. Filter har konfigurerats för fältet Typ av arbetsobjekt och antingen fältet Tillstånd eller fältet Tilldelad till. Skärmbild av ett logiskt uttryck. En AND-operator grupperar typen Arbetsobjekt, Tillstånd och Tilldelad till fält. En OR-operator grupperar fälten Tillstånd och Tilldelad till.
2 Skärmbild som visar en gruppsatsfråga med filter för både fältet Arbetsobjekttyp och ett av antingen fältet Tillstånd eller fältet Tilldelad till. Skärmbild av ett logiskt uttryck. En AND-operator grupperar typen Arbetsobjekt med fältet Tillstånd eller Tilldelad till fält, som grupperas av en OR-operator.
3 Skärmbild som visar en gruppsatsfråga. Filter konfigureras för antingen fältet Typ av arbetsobjekt eller både fältet Tillstånd och fältet Tilldelad till. Skärmbild av ett logiskt uttryck. En OR-operator länkar arbetsobjekttypen till både tillstånd och tilldelade fält, som är länkade av en AND-operator.

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.

Skärmbild av webbportalen, Power Query-redigeraren, Gruppera valda frågesatser.

Du kan också gruppera flera grupperade satser. Markera kryssrutorna för varje sats. Välj sedan gruppsatsens ikon.

Skärmbild av webbportalen, Power Query-redigeraren, Gruppera flera frågesatser.

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 en Or sats i stället för en And 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.


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:

  1. Skapa frågan som filtrerar de intressanta arbetsobjekten. Frågan kan vara en fråga med platt lista, träd eller direktlänkar.
  2. Lägg till fältet Överordnat som en kolumn.
  3. Spara frågan som en delad fråga eller gruppfavorit.
  4. 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.

Skärmbild av widgeten frågeresultat som visar ett överordnat kolumnfält.

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.

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.

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 WordsContains 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.