JQL چیست؟
قابلیت Search در Jira به تیمها کمک میکند اطلاعات مهم پروژهها را سریعتر پیدا کنند و پاسخ سوالات کلیدی خود را بهدست آورند. استفاده از جستجو در جیرا میتواند به شما در کسب بینشهای کلیدی پروژه و پاسخ به سوالات مرتبط با تیم کمک کند.
در Jira سه نوع جستجو وجود دارد:
- Quick Search
- Basic Search
- Advanced Search
جستجوی پیشرفته قدرتمندترین و انعطافپذیرترین روش برای جستجوی اقلام کاری شما در جیرا است. میتوانید از زبان پرسوجوی جیرا (JQL) برای تعیین معیارهایی که در جستجوهای سریع یا اولیه قابل تعریف نیستند، استفاده کنید. به عنوان مثال، میتوانید از دستور ORDER BY در یک پرسوجوی JQL برای جستجوی اقلام کاری و نمایش آنها به ترتیب صعودی یا نزولی استفاده کنید.
جستجوی پیشرفته یا Advanced Search به کاربران اجازه میدهد با استفاده از زبان اختصاصی Jira Query Language یا همان JQL، Queryهای ساختاریافته ایجاد کنند و Issueها را در یک پروژه یا بین چندین پروژه جستجو کنند.
نتایج Queryها را میتوان ذخیره کرد و بهعنوان:
- Filter
- View
- Board Filter
- Dashboard Data Source
در سراسر Jira استفاده کرد.

Advanced Search در Jira
نوشتن Query در JQL
JQL یک زبان Query قدرتمند است که بهصورت اختصاصی برای Jira طراحی شده و به کاربران اجازه میدهد:
- جستجوهای پیشرفته انجام دهند
- Issueها را فیلتر کنند
- گزارشگیری حرفهای داشته باشند
- و دادههای پروژه را تحلیل کنند
JQL مخصوصاً در پروژههای بزرگ و سازمانی اهمیت بسیار زیادی دارد، زیرا امکان جستجو و مدیریت حجم بالایی از دادهها را فراهم میکند.
چگونه Advanced Search را در Jira اجرا کنیم؟
برای اجرای Advanced Search داخل یک پروژه:
از Sidebar وارد بخش Work Items شوید.
اگر در Team-Managed Project گزینه Work Items را مشاهده نمیکنید، از مسیر زیر آن را فعال کنید:
- Project Settings
- Features
- Work Item Navigator
برای جستجو بین تمام پروژهها:
-
از Top Navigation وارد بخشFilter شوید.
-
گزینه Advanced Work Item Search را انتخاب کنید.
کد کوتاه یا shortcut به این صورت می باشد: g + i
- میتوانید از Basic Search استفاده کنید یا روی Switch to JQL کلیک کنید تا وارد Advanced Search شوید.
تغییر نوع نمایش نتایج
امکان تغییر بین List View و Detail View وجود دارد.
کد کوتاه یا shortcut به این صورت می باشد: t
List View برای مشاهده تعداد زیادی Issue و شخصیسازی ستونها بسیار کاربردی است.
ذخیره Filterها
میتوانید Queryهای JQL را ذخیره کنید تا بعداً مجدداً از آنها استفاده شود.
برای این کار روی Save As بالای نتایج جستجو کلیک کنید.
برای کسب اطلاعات تخصصی راجع به خدمات مشاوره ما در نصب jira به مطلب زیر مراجعه فرمایید:
نصب و راه اندازی جیرا
استفاده از JQL در Dashboard
یکی از قابلیتهای بسیار مهم Jira این است که میتوان نتایج JQL را روی Dashboard نمایش داد. شما میتوانید ویجتهای سفارشی را بر اساس جستجوهای JQL ایجاد کنید و آنها را در داشبورد خود نمایش دهید، که ردیابی و نظارت بر کار شما در پروژهها را آسانتر میکند.
به این صورت میتوانید:
- وضعیت پروژهها
- تسکهای بحرانی
- Issueهای باز
- یا شاخصهای عملکرد
- را بهصورت لحظهای مانیتور کنید.
ساخت Gadget بر اساس JQL
برای ساخت Dashboard Gadget:
- وارد بخش Work Items شوید.
- Query موردنظر را بنویسید.
- از گزینه Export Work Items استفاده کنید.
- گزینه Create Dashboard Gadget را انتخاب کنید.
- نوع Visualization مثل Filter Results را انتخاب کنید.
- روی Save to Dashboard کلیک کنید.
ساختار اصلی Query در JQL
هر Query در JQL معمولاً از اجزای زیر تشکیل میشود:
Field:
Fieldها نوع داده موردنظر را مشخص میکنند.
مثال:
- priority
- status
- assignee
- issueType
- project
2. Operator:
Operator یک عملگر در JQL یک یا چند نماد یا کلمه است که مقدار یک فیلد در سمت چپ خود را با یک یا چند مقدار (یا تابع) در سمت راست آن مقایسه میکند، به طوری که فقط نتایج واقعی توسط این عبارت بازیابی میشوند. برخی از عملگرها ممکن است از کلمه کلیدی NOT استفاده کنند. پس operator رابطه بین Field و Value را مشخص میکند.
مثال:
- =
- !=
- <
- IN
3. Value و Function:
Functionها عملیات داینامیک انجام میدهند. یک تابع در JQL به صورت یک کلمه و به دنبال آن پرانتز ظاهر میشود که ممکن است شامل یک یا چند مقدار صریح یا فیلد Jira باشد.
یک تابع محاسبهای را روی دادههای خاص Jira یا محتوای تابع در پرانتز انجام میدهد، به طوری که فقط نتایج واقعی توسط تابع بازیابی میشوند و سپس دوباره توسط بندی که تابع در آن استفاده شده است.
Value مقدار مورد جستجو است.
4. Keyword:
یک کلمه کلیدی در JQL کلمه یا عبارتی است که هر یک از موارد زیر را انجام میدهد (یا هست):
- دو یا چند جمله را به هم متصل میکند تا یک پرسوجوی پیچیده JQL تشکیل دهد
- منطق یک یا چند جمله را تغییر میدهد
- منطق عملگرها را تغییر میدهد
- در یک پرسوجوی JQL تعریف صریحی دارد
- یک تابع خاص را انجام میدهد که نتایج یک پرسوجوی JQL را تغییر میدهد.
Keywordها برای ساخت Queryهای پیچیده استفاده میشوند.
مثال:
- AND
- OR
مثال یک Query ساده
project = "Marketing Campaign" AND status = "In Progress"
این Query تمام Issueهای پروژه Marketing Campaign را که Status آنها In Progress است نمایش میدهد.
Operatorهای رایج در JQL
Operator برابر (=)
برای تطبیق دقیق استفاده میشود. مثال:
project = "Marketing Campaign"
تمام Issueهای پروژه Marketing Campaign را نمایش میدهد.
…………………………………………………………
Operator نامساوی (!=)
برای پیدا کردن موارد غیرمشابه استفاده میشود. مثال:
assignee != currentUser()
تمام Issueهایی که به کاربر فعلی Assign نشدهاند را نمایش میدهد.
…………………………………………………………
AND
تمام شرطها باید برقرار باشند. مثال:
priority = High AND status = Open
Issueهای با اولویت High و Status باز را نمایش میدهد.
…………………………………………………………
OR
حداقل یکی از شرطها باید برقرار باشد. مثال:
component = "User Interface" OR component = "API"
Issueهای مرتبط با UI یا API را نمایش میدهد.
…………………………………………………………
IN
برای بررسی وجود مقدار در یک لیست استفاده میشود.مثال:
status IN ("In Progress", "Under Review", "Testing")
تمام Issueهایی که در این Statusها قرار دارند را نمایش میدهد.
Functionهای مهم در JQL
ORDER BY
برای مرتبسازی نتایج استفاده میشود. مثال:
project = "Marketing" ORDER BY created DESC
Issueهای پروژه Marketing را بر اساس تاریخ ایجاد از جدید به قدیم مرتب میکند.
…………………………………………………………
WAS
Issueهایی را پیدا میکند که قبلاً در یک وضعیت خاص بودهاند. مثال:
status WAS "Resolved" AND status = "Open"
Issueهایی را پیدا میکند که قبلاً Resolve شده بودند اما مجدداً باز شدهاند.
…………………………………………………………
CHANGED
Issueهایی که در یک بازه زمانی تغییر کردهاند را نمایش میدهد. مثال:
status CHANGED AFTER -1w
Issueهایی که طی یک هفته اخیر تغییر Status داشتهاند را نمایش میدهد.
…………………………………………………………
MEMBERSOF
بر اساس عضویت در Group فیلتر میکند. مثال:
assignee IN MEMBERSOF("developers")
تمام Issueهای Assign شده به اعضای گروه developers را نمایش میدهد.
مثالهای کاربردی JQL
پیدا کردن Issueهای High Priority مربوط به کاربر فعلی
priority = High AND assignee = currentUser()
نمایش Issueهای Overdue
project = "Customer Support" AND duedate < now() AND status != Closed
…………………………………………………………
نمایش Issueهای ایجادشده در ۷ روز اخیر
created >= -7d ORDER BY created DESC
تکنیکهای پیشرفته JQL
جستجو در Custom Fieldها
"Custom Field Name" ~ "search term"
این قابلیت اجازه میدهد داخل Fieldهای سفارشی جستجو انجام شود.
…………………………………………………………
Subqueryها
project IN subTaskIssueTypes() AND assignee = currentUser()
امکان ایجاد Queryهای تو در تو و پیچیده را فراهم میکند.
…………………………………………………………
فیلتر بر اساس نوع Issue
issuetype = Epic AND status != Done
تمام Epicهای ناتمام را نمایش میدهد.
کلمات رزرو شده JQL
JQL همچنین لیستی از کلمات رزرو شده دارد. اگر میخواهید از این کلمات در پرسوجوها استفاده کنید، باید آنها را با علامت نقل قول (تکی یا دوتایی) احاطه کنید.
لیست کامل این کلمات را در این لینک بخوانید.
چرا یادگیری JQL مهم است؟
تسلط بر JQL یکی از مهمترین مهارتهای حرفهای در Jira محسوب میشود.
با JQL میتوان:
- گزارشهای حرفهای ساخت
- Dashboardهای قدرتمند طراحی کرد
- دادههای پروژه را تحلیل کرد
- تسکهای بحرانی را پیدا کرد
- و فرآیند مدیریت پروژه را بسیار هوشمندتر کرد
در پروژههای سازمانی، JQL نقش بسیار مهمی در:
- مانیتورینگ
- گزارشگیری
- تحلیل عملکرد تیم
- و مدیریت پروژه
ایفا میکند.
جمعبندی
JQL یک زبان Query قدرتمند در Jira است که امکان جستجو، فیلتر و تحلیل پیشرفته دادهها را فراهم میکند.
با استفاده از JQL میتوان:
- Queryهای پیچیده ساخت
- نتایج را ذخیره کرد
- Dashboardهای حرفهای طراحی کرد
و دید بسیار دقیقتری نسبت به وضعیت پروژهها بهدست آورد
یادگیری JQL برای مدیران پروژه، Scrum Masterها، تیمهای Agile و ادمینهای Jira یک مهارت بسیار ارزشمند و ضروری محسوب میشود.
برای اطلاعات بیشتر و دریافت مشاوره سازمانی با ما در ارتباط باشید
منبع: atlassian.com









