Hello the community,
I try to find a solution on my listener script.
I have two field urgency and impact. I would like to change the priority if one of these fields is updated.
I write the following script but I don't know how to do the update of priority fields.
Could you help me to find the solution?
The script:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueInputParametersImpl
import com.atlassian.jira.issue.customfields.option.Option
import org.apache.log4j.Level
log.setLevel(Level.DEBUG)
def issue = event.issue as Issue;
def urgency = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("[IMP] Urgency")
def impact = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("[IMP] Impact")
def valueUrgency = issue.getCustomFieldValue(urgency)
def valueImpact = issue.getCustomFieldValue(impact)
log.debug "impact value " + valueImpact;
log.debug "urgency value " + valueUrgency;
if (valueImpact == "High" && valueUrgency == "Medium"){
} else if (valueImpact == "Medium" && valueUrgency == "High"){
} else if (valueImpact == "Medium" && valueUrgency == "Medium"){
} else if (valueImpact == "High" && valueUrgency == "High"){
} else {
}
Thank you a lot for your help.
Regards,
Mickael O.
Can you try this? Set the proper issue key.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.PriorityManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def priorities = ComponentAccessor.getComponent(PriorityManager).priorities
//define the existing priorities (Minor, Major,...)
def majorPriority = priorities.findByName("Major")
def minorPriority = priorities.findByName("Minor")
IssueManager issueManager = ComponentAccessor.issueManager
String issueKey = 'TEST-1'
def issue = issueManager.getIssueObject(issueKey)
issue.setPriorityId(minorPriority.id)
issueManager.updateIssue(user, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
This worked for me.
Gonna try to get a if else statement as it is easy to visualise
import com.atlassian.jira.component.ComponentAccessorimport com.atlassian.jira.issue.CustomFieldManagerimport com.atlassian.jira.issue.customfields.manager.OptionsManagerimport com.atlassian.jira.issue.MutableIssueimport com.atlassian.jira.issue.priority.Priorityimport com.atlassian.jira.event.type.EventDispatchOptionMutableIssue currentIssue = issuedef optionsManager = ComponentAccessor.getComponent(OptionsManager)def customFieldManager = ComponentAccessor.getCustomFieldManager()int num;switch (customFieldManager.getCustomFieldObjectByName("Urgency").getValue(currentIssue)) {case "Critical (can no longer work)":num = 1;break;case "High (can no perform primary work functions)":num = 2break;case "Medium (work functions impaired)":num = 3break;case "Low (Inconvenient)":num = 4break;default:System.out.println();}switch (customFieldManager.getCustomFieldObjectByName("Impacted users").getValue(currentIssue)) {case "Widespread (101 users or more)":num += 1break;case "Large (21-100 users)":num += 2break;case "Limited (2-20 users)":num += 3break;case "Single user (1 user)":num += 4break;default:System.out.println();}String priority;switch (num){case 1: case 2: case 3: priority = "10002"; break;case 4: priority = "10400"; break;case 5: priority = "10401"; break;case 6: priority = "10402"; break;default: priority = "10004"}issue.setPriorityId(priority)def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()ComponentAccessor.getIssueManager().updateIssue(user, issue, EventDispatchOption.ISSUE_UPDATED, false)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.