I'm using a scripted condition on a workflow transition which only allows the transition if:
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?
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.