This is an old revision of the document!
Following scripts can be used for scripted validators within the workflow
issue.projectObject.name == "My First Project Name"
if ( cfValues['FIELD1']?.value == 'Yes') { if ( cfValues['FIELD2'] ) { return true } else return false } else return true
Date today123 = new Date() if ( cfValues['FIELD1'] ) { if ( cfValues['DATEFIELD2'].getTime() > today123.getTime() ) { return true } else return false } else return true
def selectedSegment = cfValues['Segment'] def selectedSegmentString = selectedSegment.toString() if ( selectedSegmentString.equals("Some String") ){ // do something here }
import com.atlassian.jira.component.ComponentAccessor; import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.IssueManager; def customfield_ID = "customfield_11700" def issueManager = ComponentAccessor.getIssueManager() def customFieldManager = ComponentAccessor.getCustomFieldManager() def cField = customFieldManager.getCustomFieldObject(customfield_ID) def cFieldValue = issue.getCustomFieldValue(cField).toString() if (cFieldValue.size() != 5){ return false } else{ return true }
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.search.SearchProvider import com.atlassian.jira.jql.parser.JqlQueryParser import com.atlassian.jira.web.bean.PagerFilter import com.atlassian.jira.datetime.DateTimeFormatUtils import org.apache.commons.lang.time.DateUtils import java.text.SimpleDateFormat import java.util.Date.* import java.lang.String.* //logging import org.apache.log4j.Logger import org.apache.log4j.Level def log = Logger.getLogger("com.acme.CreateSubtask") log.setLevel(Level.DEBUG) // this function returns list of issues for JQL def findIssues(String jqlQuery) { def issueManager = ComponentAccessor.issueManager def user = ComponentAccessor.jiraAuthenticationContext.user def jqlQueryParser = ComponentAccessor.getComponent(JqlQueryParser.class) def searchProvider = ComponentAccessor.getComponent(SearchProvider.class) def query = jqlQueryParser.parseQuery(jqlQuery) def results = searchProvider.search(query, user, PagerFilter.unlimitedFilter) results.issues.collect { issue -> issueManager.getIssueObject(issue.id) } } def customFieldManager = ComponentAccessor.getCustomFieldManager() def isd = cfValues['OD Start Date'] def ied = cfValues['OD End Date'] def ie = cfValues['OD Environment'] def inputStartDate def inputEndDate def inputEnvironment = ie.toString() def issues if (! isd || ! ied){ log.debug("Input Start date or Input End Date not available") }else{ inputStartDate = isd.format("YYYY-MM-dd").toString() inputEndDate = ied.format("YYYY-MM-dd").toString() issues = findIssues('project = ODRSRV AND "OD Environment" = '+ inputEnvironment +' AND (("OD Start Date" <= '+ inputStartDate +' AND "OD End Date" >= '+ inputEndDate +') OR ("OD Start Date" <= '+ inputEndDate +' AND "OD Start Date" >= '+ inputStartDate +') OR ("OD Start Date" >= '+ inputStartDate +' AND "OD End Date" <= '+ inputEndDate +') OR ("OD Start Date" <= '+ inputStartDate +' AND "OD End Date" >= '+ inputEndDate +'))' ) } log.debug("inputStartdate: "+inputStartDate) log.debug("inputEndDate: "+inputEndDate) log.debug("inputEnvironment: "+inputEnvironment) log.debug("issues: "+issues+" for "+inputEnvironment) if ( ! issues){ return true log.debug("Issues is " + issues) }else{ return false log.debug("Issues is " + issues) }