Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Using a date/time stamp in workflow transition condition

Steve Beauchamp January 13, 2022

I'm using a scripted condition on a workflow transition which only allows the transition if:

  1. The FixVersion field is empty OR
  2. The current time/date > FixVersion Start Date + 9h


The script I am using is as follows:

import java.sql.Timestamp

def today = new Timestamp(new Date().time)
def branch


def fixVersions = issue.fixVersions
if(fixVersions){
if(fixVersions*.startDate == [null]){
return true
}

def branchDate = fixVersions[0].startDate
branchDate.setHours(branchDate.getHours() +9)
branch = new Timestamp(branchDate.time)
}


if (today > branch) {
return true
} else {
return false
}


Expected Result:
If the FixVersion Start Date is set to Jan 13, 2022, the condition should be TRUE after 9am on Jan 13, 2022. 

Actual Result:
If the FixVersion Start Date is set to Jan 13, 2022, the condition is TRUE after 9am on Jan 14, 2022

Any ideas what I may be doing wrong?

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Peter-Dave Sheehan
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 16, 2022

Have you tried using TimeCategory?

Try this:

import groovy.time.TimeCategory

def fixVersions = issue.fixVersions
if(!fixVersions) return true //there are no fixversions on the issue
if(fixVersions.every{!it.startDate}) return true //all fix version have no start dates

def branchDate = use(TimeCategory){
fixVersions[0].startDate + 9.hours
}
if(branchDate <= new Date()) return true //current date is after the branch date

return false //all other true conditions failed

The timecategory block will show an error in the code editor, but it should work.

TAGS
AUG Leaders

Atlassian Community Events