Use Case Scenario
- When a custom field (Date type) is older than current day, update the drop down (select list) field to 'Expired', else update it to 'Active'
- Script Runner Custom Script Listener is needed
If it helps anyone,
Found a way to do this
Create a Custom listener by browsing to Script Listeners page
Note: Update select list field checking Date custom field
Project Name: ABC
Events: All Issue Events
Inline Script: (see below)
import com.atlassian.jira.issue.Issueimport com.atlassian.jira.issue.ModifiedValueimport com.atlassian.jira.issue.util.DefaultIssueChangeHolderimport com.atlassian.jira.component.ComponentAccessorimport org.apache.log4j.Loggerimport org.apache.log4j.Leveldef log = Logger.getLogger("Script to update customfield")log.setLevel(Level.INFO)def issue = event.issue as Issuelog.info(issue)def customFieldManager = ComponentAccessor.getCustomFieldManager()def optionsManager = ComponentAccessor.getOptionsManager()// Get dropdownFielddef customField = customFieldManager.getCustomFieldObject(20311)log.info(customField)// Get Date Field: Analyst Expiration Datedef aexpField = customFieldManager.getCustomFieldObject('customfield_20310')log.info(aexpField)def expirationDate = issue.getCustomFieldValue(aexpField) as Datelog.info(expirationDate)def expirationVal = expirationDate.getTime()log.info(expirationVal)// Current Datedef currDate = new Date() as Datelog.info(currDate)def currVal = currDate.getTime()log.info(currVal)def cfConfig = customField.getRelevantConfig(issue)def act_value = optionsManager.getOptions(cfConfig)?.find { it.toString() == 'Active'}def exp_value = optionsManager.getOptions(cfConfig)?.find { it.toString() == 'Expired'}def changeHolder = new DefaultIssueChangeHolder()if (currVal >= expirationVal) {customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), exp_value), changeHolder)}else {customField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customField), act_value), changeHolder)}
Hope this helps
Chander Inguva
this script helps me a lot, thank you so much for sharing!!
It looks like you're new here. Sign in or register to get started.