Przewodnik po Jira Query Language

Jira – narzędzie do zarządzania projektami firmy Atlassian – oferuje firmom niemal nieograniczone możliwości w zakresie zarządzania zadaniami, harmonogramami i procesami. Jednakże, jeżeli zespoły zaczynają się gubić w ciągle rosnącej liczbie zadań, epików, błędów i historii to znak, że pora na zmiany.

Początkowo pamiętanie i monitorowanie wszystkich zadań może być proste. Ale wcześniej czy później, zespół będzie potrzebował narzędzia, które pozwoli odnaleźć się w gąszczu zadań i zleceń. Właśnie dlatego funkcja wyszukiwania jest tak istotna.

Ten artykuł pokaże czym jest Jira Query Language (JQL) i w jakie korzyści może przynieść jego stosowanie w firmie.

Proste wyszukiwanie w Jira

Dwie główne funkcje szybkiego wyszukiwania, jakie oferuje Jira, to wyszukiwarka i właśnie JQL.

Wyszukiwarka zadań

Pole wyszukiwarki znajduje się w pasku menu. Użytkownik może wpisać tam słowa kluczowe, aby szybko wyszukać powiązane z nimi wyniki w oparciu o tytuł zlecenia, podsumowanie, komentarze i opis. Wyszukiwarka umożliwia także korzystanie z funkcji Smart Querying – prostej składni wyszukiwania, która jest podobna do używanej podczas przeszukiwania skrzynki odbiorczej Gmaila. Ta funkcja jest przydatna, w przypadku konieczności wyszukiwania globalnego zgłoszenia. Nie pozwala jednak na wprowadzanie dodatkowych szczegółów, aby wyszukiwanie było bardziej precyzyjne.

Widok wyszukiwarki zgłoszeń

Drugi interfejs wyszukiwania to widok wyszukiwarki zgłoszeń. Można uzyskać do niego dostęp poprzez menu zgłoszeń. Wersja podstawowa pozwala użytkownikom filtrować zadania w oparciu o wszystkie pola tekstowe dotyczące danego zagadnienia. Oznacza to, że funkcja ta nie ogranicza się tylko do wyszukiwania po nazwie czy numerze zadania, ale uwzględnia też szczegółowe opisy zleceń.

W tym przypadku filtrowanie obsługiwane jest poprzez prosty interfejsinfterfejs użytkownika, który zawiera rozwijane listy i edytowalne pola tekstowe. Dla ułatwienia, jest ono wstępnie zdefiniowane dla kilku typowych wyszukiwań, takich jak: projekt, typ wydania, status i cesjonariusz. Użytkownik może także dodać inne pola, klikając “Więcej” i wybierając te, które chce wyszukać.

Istotą tej funkcjonalności jest to, że opcje filtrowania zawsze są dynamicznie aktualizowane w zależności od typu wybranego pola. 

Mimo wyższego poziomu zaawansowania niż pole wyszukiwania, ten widok ma swoje ograniczenia. Odpowiedzią na ten problem jest JQL.

Wyszukiwanie zadań w Jira

Widok wyszukiwania zgłoszeń oferuje bardziej zaawansowane narzędzie wyszukiwania dla użytkowników: JQL. Po kliknięciu przycisku “Zaawansowane”, pojawi się obszerne pole tekstowe. Jeśli już wcześniej rozpoczęte było wyszukiwanie podstawowe, to pole zostanie wypełnione wynikami tego wyszukiwania. Tutaj właśnie zaczyna się pole do popisu dla JQL. 

Jira Query Language (JQL) to oparty o tekst język wyszukiwania, który może być używany w oprogramowaniu Jira do filtrowania zgłoszeń i zadań. Składnia tego języka jest zbliżona do naturalnego języka, aby umożliwić stosowanie bardziej złożonej logiki i formuł, niż jest to dostępne w podstawowej wersji wyszukiwarki.

Przykład działania JQL

project = SCRUM1 AND (reporter = Radoslaw.Cichocki OR assignee = Radoslaw.Cichocki)

Formuła JQL jest dość prosta – zrozumienie jej nie wymaga umiejętności technicznych. Od razu wiadomo, że wynikiem wyszukiwania będzie lista zgłoszeń z projektu SCRUM 1, dla których zgłaszającym lub przypisanym jestem ja – Radosław Cichocki.

Tworzenie zapytania jest bardzo proste, ale należy pamiętać, że nie da się tu utworzyć konstrukcji podobnej do tej w widoku wyszukiwania. W widoku wyszukiwania można zawrzeć tylko określoną liczbę słów kluczowych. W zapytaniu nie można użyć równocześnie warunków AND i OR. JQL pozwala na bardziej złożone wyszukiwanie, przy jednoczesnej łatwości tworzenia zapytania.

Składnia JQL

W strukturze JQL można wyróżnić pięć kluczowych elementów: pola, operatory, wartości, słowa kluczowe i funkcje.

  • Pola – informacje różnego typu, pozwiązane ze zgłoszeniem w oprogramowaniu Jira. Pola mogą być zdefiniowane systemowo (np. assignee, reporter, key, project). Mogą także istnieć pola stworzone przez administratora systemu Jira w odpowiedzi na indywidualne potrzeby projektu. Dodatkowo widok wyszukiwarki zgłoszeń wspiera autouzupełnianie tekstu, co bardzo pomaga w tworzeniu zapytań w składni JQL.
  • Operatory – symbole, które reprezentują logiczne porównanie, np. równe (=), nierówne (!=), większe niż (>) lub porównywalne (~). Można użyć ich do stworzenia formuły, w której pole jest porównywane do wartości.
  • Wartości – dane zdefiniowane przez użytkownika (tekst, data lub liczba). Można używać ich do porównywania z polem lub do wyszukania listy zgłoszeń.
  • Słowa kluczowe – specjalne frazy, które wykonują jakąś akcję w JQL. Na przykład, łączy dwa lub więcej słów lub zmienia logikę formuły.
  • Funkcje – obliczenia, których można użyć, aby uzyskać dostęp do konkretnych danych w Jira, które nie są reprezentowane przez pola lub wartości. Funkcja może zawierać obliczone wartości takie jak daty (np. pierwszy dzień danego miesiąca).

Łącząc te elementy, można tworzyć logiczne formuły, aby znaleźć określone zestawy zadań lub pojedyncze zgłoszenia. 

Poniżej znajduje się formuła, która łączy pole, operator i wartość:

created >= 2019-05-15

W tym przykładzie można wyszukać zgłoszenia utworzone 15 maja 2019 lub później.

“created” to pole, “>=” jest operatorem,a “2019-05-15” to wartość daty. Te komponenty wspólnie tworzą złożone formuły, które pozwalają łatwo odnaleźć potrzebne zgłoszenia.

Ogromną zaletą JQL jest jego elastyczność i wszechstronność. JQL daje możliwość układania tych komponentów na wiele różnych sposobów, co pozwala tworzyć złożone i precyzyjne formuły.

Wszystkie te elementy mogą być dowolnie łączone ze sobą. Podczas tworzenia bardziej zaawansowanych formuł JQL należy podzielić całą formułę na małe elementy, tworzyć je krok po kroku. Dopiero wtedy można łączyć je ze sobą za pomocą słów kluczowych takich jak AND albo OR, aby stworzyć formułę, która pozwoli uzyskać oczekiwany rezultat.

Złożone formuły JQL

Spróbujmy napisać formułę JQL, która wyszukuje wszystkie zgłoszenia, które zawierają opis, były utworzone w bieżącym roku i były częścią wersji 4.0 albo 5.0, albo są oznaczone jako priorytetowe.

Pierwszy warunek, jaki należy zawrzeć w formule to obecność opisu – chcemy wyszukać tylko zlecenia z wypełnionym polem opisu. Zapisujemy to w ten sposób:

description IS NOT EMPTY

Następnie należy dodać formułę, która wyszuka wszystkie zgłoszenia utworzone w bieżącym roku. W tym celu należy użyć pola “created”, operatora “>=” (którego używaliśmy w poprzednim przykładzie) i funkcji “startOfYear()”. Obie te formuły należy połączyć słowem kluczowym AND.

W ten sposób otrzymujemy następujący ciąg znaków:

description IS NOT EMPTY AND created >= startOfYear()

Na koniec należy dodać jeszcze warunek OR, dzięki któremy będzie można wyszukać zgłoszenia będące częścią wersji 4.0, 5.0 lub oznaczone jako priorytet.

W tym celu należy użyć pola fixVersion ze słowem kluczowym IN oraz listę wersji. Korzystając ze słowa kluczowego OR definiujemy kolejny warunek, który wyszukuje zgłoszenia o statusie priorytetowym. Końcowa formuła powinna zawierać pole, operator i wartość.

fixVersion in (‘Version 1.0′,’Version 2.0’) OR priority = 1

Aby utworzyć pełną formułę wyszukiwania, należy połączyć powyższy warunek z formułą napisaną wcześniej. W tym miejscu pojawiają się nawiasy – wiedza jak ich używać jest bardzo istotna, gdyż zapewniają one właściwą kolejność wykonywania akcji zawartych w formule JQL.

W tym przykładzie musimy upewnić się, że końcowy warunek OR będzie wykonany przed wcześniejszymi warunkami AND. Dwa pierwsze warunki są niezbędne.

Ostateczna formuła JQL powinna wyglądać następująco:

description IS NOT EMPTY AND created >= startOfYear() AND (fixVersion in (‘Version 1.0′,’Version 2.0’) OR priority = 1)

JQL – zaawansowane możliwości

Ten artykuł opisuje tylko wstęp do JQL, który w rzeczywistości oferuje znacznie więcej użytkownikom oprogramowania Jira. Po płynnym opanowaniu składni JQL, można przejść do bardziej zaawansowanych funkcji JQL. Więcej informacji na temat JQL i jego zastosowań, można znaleźć w dokumentacji Atlassiana.

Szukasz ekspertów Jira, którzy pomogą Twojej firmie w pełni wykorzystać możliwości oprogramowania Jira? Skontaktuj się z nami – pomagamy firmom z różnych branż osiągnąć cele biznesowe za pomocą tego wszechstronnego narzędzia do zarządzania projektami.

Radoslaw Cichocki

Radosław is a Capitan of a team implementing Atlassian tools focusing on ITSM and corporate-scale deployments. His knowledge is confirmed by ACP certificates in Jira Core, Software, and Service Management. He analyzes Deviniti clients’ requirements, provide consulting, craft visions of solutions, and mentor the implementing teams. Privately, he is a mountain hiking fancier and a big fan of guitar music, especially fingerstyle.

Więcej od tego autora