Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to filter for last working day in Jira JQL

Tags:

filter

jira

jql

We use Jira Agile with a "Daily Scrum" board which filters for issues due in the last day. This will show us the issues we should have fixed yesterday and the issues we will fix today. This works great, except for Mondays.

On Monday we want to see the issues that had a due date of friday or duedate of today. How can I achieve this using JQL? It seems JQL doesn't support IF(), correct?

If it does, we might find a way using a compare like now() == startOfWeek().

like image 423
Frank Groeneveld Avatar asked Nov 18 '13 07:11

Frank Groeneveld


People also ask

What does != Mean in JQL?

The " != " operator is used to search for issues where the value of the specified field does not match the specified value. (Note: cannot be used with text fields; see the DOES NOT MATCH (" !~ ") operator instead.)

What is JQL issueFunction?

Example: issueFunction in linkedIssues. OfAllRecursive("issue =ADLEARN-711") This function allows you to return linked issues recursively, that is, to return all issues that are linked both directly and indirectly to the results of the initial query. For example, the example query returns all issues linked to Jira-1.

What is a subquery in JQL?

Subqueries allow you to create complex JQL queries that normally require creating more than one query and possibly some manual copy and paste operations. They can free you from Excel for a number of tasks. They are easy to use thanks to support for autocompletion.

Is there a count function in JQL?

COUNTJQL function allows you to count issues matched with a given JQL.


1 Answers

We have a similar issue on Monday morning where we need to review issues created over the last friday and the weekend rather than just the past 24 hours. You can't test whether today is Monday, but you can infer it:

AND (
(created >= startOfDay("-3d") AND created < startOfDay("-2d") AND created >= startOfWeek("-2d") AND created < startOfWeek("-1d"))
OR
(created >= startOfDay("-2d") AND created < startOfDay("-1d") AND created >= startOfWeek("-1d") AND created < startOfWeek())
OR 
(created >= startOfDay("-1d") AND created < startOfDay() AND created >= startOfWeek() AND created < startOfWeek("+1d"))
OR
created >= -24.5h)

This basically includes things from Friday if Friday was 3 days ago, Saturday if Saturday was 2 days ago and Sunday was yesterday.

In your case you want to show where:

  • duedate is today
  • OR
  • duedate is yesterday (startOfDay("-1d")...startOfDay()) AND duedate is between Mon-Thurs (startOfWeek("+1d") .. startOfWeek("+4d"))
  • OR
  • duedate is last Friday (startOfWeek("-2d")) AND duedate is 3 days ago/today is Monday (startOfDay("-3d")...startOfDay("-2d"))

Note: This assumes the default US locale where startOfWeek() is Sunday

duedate >= startOfDay() OR
(duedate >= startOfDay("-1d") AND duedate < startOfDay() AND duedate >= startOfWeek("+1d") AND duedate < startOfWeek("+4d")) OR
(duedate >= startOfWeek("-2d") AND duedate < startOfWeek("-1d") AND duedate >= startOfDay("-3d") AND duedate < startOfDay("-2d"))
like image 164
Eric Woodruff Avatar answered Oct 15 '22 23:10

Eric Woodruff