Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

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
PD Sheehan
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
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