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.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.