20/04/2025
At navigere i et komplekst projektstyringsværktøj som Jira kan nogle gange føles som at lede efter en nål i en høstak. Med hundredvis eller endda tusindvis af sager (issues) kan det være en udfordring at finde præcis den information, du har brug for. Heldigvis har Jira et ekstremt kraftfuldt værktøj designet til netop dette formål: Jira Query Language, bedre kendt som JQL. Mens den grundlæggende søgefunktion er nyttig til simple forespørgsler, åbner JQL op for en helt ny verden af præcision og fleksibilitet. Ved at mestre JQL kan du transformere den måde, du interagerer med Jira på, spare utallige timer og få dybere indsigt i dine projekters status og fremdrift. Denne guide vil føre dig fra de absolutte grundprincipper til avancerede teknikker, så du kan blive flydende i Jiras mest effektive søgesprog.

Hvad er Jira Query Language (JQL)?
Jira Query Language (JQL) er det sprog, du bruger til at foretage avancerede søgninger efter sager i Jira. I stedet for at klikke dig igennem foruddefinerede filtre, skriver du en forespørgsel (en 'query'), der præcist definerer de kriterier, dine sager skal opfylde. En JQL-forespørgsel er bygget op af flere kernekomponenter, der arbejder sammen for at filtrere dine sager:
- Felter (Fields): Et felt er en specifik informationstype, der beskriver en sag. Eksempler inkluderer 'Status', 'Assignee' (Tildelt til), 'Project' og 'Priority'.
- Operatorer (Operators): Operatorer er symboler, der definerer forholdet mellem et felt og en værdi. Almindelige operatorer er lighedstegnet (=), 'er ikke lig med' (!=), 'større end' (>) og 'mindre end' (<).
- Værdier (Values): Værdier er de faktiske data, du søger efter. Hvis dit felt er 'Status', kan en værdi være 'Done' eller 'In Progress'.
- Nøgleord (Keywords): Nøgleord er specielle ord i JQL, der forbinder eller ændrer logikken i din forespørgsel. De mest almindelige er 'AND', 'OR' og 'ORDER BY'.
- Funktioner (Functions): Funktioner er avancerede kommandoer, der udfører komplekse beregninger eller returnerer dynamiske værdier, f.eks. at finde alle sager i lukkede sprints eller sager, der forfalder inden for den næste uge.
Ved at kombinere disse elementer kan du skabe utroligt specifikke søgninger. For eksempel kan du finde alle uplanlagte sager ved at søge efter sager, der ikke har status 'Closed' og samtidig har tomme felter for 'Epic Link' og 'Fix Version'. Dette niveau af kontrol er umuligt at opnå med den simple søgefunktion.
Grundlæggende vs. Avanceret Søgning i Jira
Når du åbner søgeskærmen i Jira, lander du som standard på den grundlæggende søgning. Her kan du bruge dropdown-menuer og tekstfelter til at filtrere efter projekt, sagstype, status og tildelt bruger. Det er hurtigt og intuitivt for simple opgaver.
Men du vil hurtigt opdage begrænsningerne. Hvad hvis du vil finde sager, der blev flyttet fra sidste sprint til det nuværende? Eller sager med høj prioritet, som ikke er blevet opdateret i over en uge? Her kommer den avancerede søgning, drevet af JQL, ind i billedet. Ved at skifte til 'Advanced' får du et enkelt tekstfelt, hvor du kan skrive dine JQL-forespørgsler fra bunden og opnå en uovertruffen grad af specificitet.
Anatomien af en JQL-forespørgsel
For at skrive effektive JQL-forespørgsler er det afgørende at forstå, hvordan de enkelte dele spiller sammen. Lad os dykke ned i hver komponent.
Felter i JQL
Et felt er den del af en sag, du vil undersøge. Jira har et væld af standardfelter, og din administrator kan have tilføjet brugerdefinerede felter. Nogle af de mest brugte felter er:
project: Det projekt, sagen tilhører.issuetype: Sagens type (f.eks. 'Bug', 'Story', 'Task').status: Sagens nuværende status i workflowet (f.eks. 'To Do', 'In Progress', 'Done').assignee: Den bruger, sagen er tildelt til.reporter: Den bruger, der oprettede sagen.priority: Sagens prioritet (f.eks. 'Highest', 'High', 'Medium').fixVersion: Den version, sagen er planlagt til at blive løst i.created: Datoen, sagen blev oprettet.updated: Datoen, sagen sidst blev opdateret.
Værdier i JQL
En værdi er de data, du sammenligner feltet med. Værdier kan være tekststrenge (skal ofte i citationstegn, f.eks. "My Project"), tal, datoer eller brugernavne. For feltet priority kan værdierne være Urgent, High, Medium og Low.
Operatorer i JQL
Operatorer er limen, der binder felter og værdier sammen. De beskriver logikken i din sammenligning. Jira understøtter en bred vifte af operatorer.
| Operator | Beskrivelse | Eksempel |
|---|---|---|
| = | Er lig med | status = "In Progress" |
| != | Er ikke lig med | assignee != currentUser() |
| > | Større end | votes > 5 |
| < | Mindre end | priority < High |
| >= | Større end eller lig med | created >= "2023/01/01" |
| <= | Mindre end eller lig med | updated <= -1w (ikke opdateret i over en uge) |
| IN | Matcher en af flere værdier i en liste | status IN ("To Do", "In Progress") |
| NOT IN | Matcher ikke nogen af værdierne i en liste | issuetype NOT IN (Epic, Sub-task) |
| CONTAINS | Søger efter tekst i tekstfelter (summary, description, comments) | summary ~ "database connection" |
| WAS | Feltet havde tidligere denne værdi | assignee WAS "john.doe" |
| WAS IN | Feltet havde tidligere en af disse værdier | status WAS IN (Blocked, "On Hold") |
Nøgleord i JQL
Nøgleord bruges til at bygge komplekse forespørgsler ved at kombinere flere simple betingelser.
AND: Returnerer sager, der matcher begge betingelser. For eksempel vilproject = "MobileApp" AND status = "Done"kun finde færdige sager i MobileApp-projektet.OR: Returnerer sager, der matcher mindst én af betingelserne. For eksempel vilpriority = Urgent OR assignee = currentUser()finde alle sager med presserende prioritet samt alle sager, der er tildelt til dig, uanset prioritet.ORDER BY: Sorterer resultaterne baseret på et eller flere felter. For eksempel vilORDER BY priority DESC, created ASCsortere efter prioritet (højeste først) og derefter efter oprettelsesdato (ældste først).
Vigtigt om forrang (Precedence):AND har altid forrang over OR. Det betyder, at status = Done OR project = "Website" AND assignee = "jane.doe" vil blive fortolket som: (sager med status 'Done') ELLER (sager i 'Website'-projektet tildelt til 'jane.doe'). Hvis du vil ændre dette, skal du bruge parenteser: (status = Done OR project = "Website") AND assignee = "jane.doe". Dette finder alle sager tildelt til 'jane.doe', som enten har status 'Done' eller tilhører 'Website'-projektet.
Avancerede Søgninger med JQL-funktioner
Funktioner er JQL's hemmelige våben. De giver dig mulighed for at udføre dynamiske søgninger, hvor værdierne ikke er faste, men beregnes, når søgningen køres. En funktion skrives som et ord efterfulgt af parenteser, f.eks. currentUser().

Her er nogle kraftfulde funktioner:
currentUser(): Returnerer den bruger, der er logget ind. Perfekt til at lave filtre, alle på teamet kan bruge. Eksempel:assignee = currentUser().membersOf("gruppe-navn"): Returnerer alle medlemmer af en bestemt brugergruppe. Eksempel:assignee IN membersOf("backend-developers").closedSprints(): Finder sager i alle sprints, der er blevet afsluttet.openSprints(): Finder sager i alle aktive sprints.endOfDay(),startOfWeek(),now(): Disse tidsbaserede funktioner er fantastiske til at finde sager baseret på relative datoer. Du kan endda justere dem, f.eks.duedate <= endOfDay("+2d")for at finde sager, der forfalder inden for de næste to dage.linkedIssues("ISSUE-KEY"): Finder alle sager, der er linket til en specifik sag.
Smarte JQL-tricks til at spare tid
Når du først er blevet fortrolig med JQL, er der flere funktioner i Jira, der kan optimere din arbejdsgang yderligere.
Gem og Del Filtre
Hvis du ofte bruger den samme komplekse JQL-forespørgsel, er der ingen grund til at skrive den igen og igen. Klik på 'Save as' over søgefeltet for at gemme din forespørgsel som et filter. Du kan give det et sigende navn og endda markere det som en favorit, så det vises i din venstre navigationsmenu. Gemte filtre kan også deles med andre brugere eller hele teams, hvilket sikrer, at alle arbejder ud fra den samme information.
Planlagte Abonnementer
Et abonnement lader Jira køre et gemt filter på et fastsat tidspunkt (f.eks. hver morgen kl. 8) og sende resultaterne til dig via e-mail. Dette er utroligt nyttigt til at holde styr på kritiske sager, få en daglig rapport over nye fejl eller overvåge teamets fremdrift uden konstant at skulle logge ind i Jira.
Når du og dit team begynder at oprette mange filtre, er det vigtigt med en konsekvent navngivningsstrategi. En god struktur kan f.eks. være Team_Formål_Sortering. Dette giver navne som Marketing_UgentligeOpg_EfterForfald i stedet for tilfældige navne, der er svære at afkode. Dette gør det nemt for alle at finde og forstå eksisterende filtre og undgå at oprette dubletter.
Ofte Stillede Spørgsmål (FAQ)
Hvad er forskellen på 'AND' og 'OR' i JQL?
'AND' kræver, at alle betingelser er opfyldt, hvilket indsnævrer dit resultat. 'OR' kræver, at mindst én betingelse er opfyldt, hvilket udvider dit resultat. Husk, at 'AND' har forrang, så brug parenteser til at styre logikken i komplekse forespørgsler.
Kan jeg gemme en JQL-søgning til senere brug?
Ja, absolut. Når du har en JQL-forespørgsel, du er tilfreds med, kan du klikke på 'Save as' for at gemme den som et filter. Du kan derefter genbruge det, dele det med kolleger og endda abonnere på resultaterne via e-mail.
Hvad er en JQL-funktion?
En funktion er en dynamisk kommando i JQL, der returnerer en værdi, som kan ændre sig over tid eller afhængigt af konteksten. For eksempel returnerer currentUser() altid den bruger, der udfører søgningen, og openSprints() finder altid de sprints, der er aktive lige nu.
Hvordan sorterer jeg mine søgeresultater?
Du bruger nøgleordet ORDER BY til sidst i din JQL-forespørgsel. Du kan sortere efter ethvert felt, både stigende (ASC) og faldende (DESC). Eksempel: ORDER BY priority DESC, updated ASC sorterer først efter prioritet (højeste først) og derefter efter seneste opdatering (ældste først).
Konklusion
At lære Jira Query Language er en investering, der betaler sig selv mange gange tilbage i form af sparet tid og forbedret indsigt. Ved at gå ud over den grundlæggende søgning og mestre felter, operatorer, nøgleord og funktioner, kan du finde præcis den information, du har brug for, når du har brug for den. Start med simple forespørgsler, eksperimenter med at kombinere forskellige betingelser, og begynd at gemme dine mest nyttige søgninger som filtre. Snart vil JQL føles som en naturlig forlængelse af din arbejdsgang, hvilket gør dig og dit team hurtigere, mere effektivt og bedre informeret.
Hvis du vil læse andre artikler, der ligner Mestr Jira JQL: En Komplet Guide til Søgning, kan du besøge kategorien Teknologi.
