Hi.
I need help creating a listener in ScriptRunner to update a sub-task(s) Assignee to 'X' value if parent customField 'x' value updated to a certain option.
Example:
If Parent field 'Module' which is a select list changes to: UI
Then (Signoff) "which is a Subtask issue type" assignee should change to: 'Jane Doe'
Thanks a lot
Hi @Nour Durra , Just saw your request yesterday, worked on it and it was possible. It was a bit tough, so it was interesting. Hope this would help..!
Create a custom listener like shown in the image.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
def issue = event.getIssue() as MutableIssue
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def cField = customFieldManager.getCustomFieldObject("customfield_10488")
def cFieldValue = issue.getCustomFieldValue(cField)
String userName
switch(cFieldValue){
case "Q1": userName = "kevin.e";break;
case "Q2 ": userName = "angelinjebapriya";break;
case "Q3": userName = "kevin.e";break;
case "Q4": userName = "angelinjebapriya";break;
case "Sales Team": userName = "kevin.e";break;
default: userName = null;
}
UserManager userManager = ComponentAccessor.getUserManager()
IssueManager issueManager = ComponentAccessor.getIssueManager()
ApplicationUser assignToUser = userManager.getUserByName(userName)
// Get a list of the current issue's subtasks
def subtasks = issue.getSubTaskObjects()
// Loop through all the subtasks and delete them
subtasks.each{it->
if(cField) {
def changeHolder = new DefaultIssueChangeHolder()
def i = it as MutableIssue
log.error(assignToUser)
log.error(cFieldValue)
log.error(i)
//update same custom field value in subtasks
cField.updateValue(null, it, new ModifiedValue(issue.getCustomFieldValue(cField), cFieldValue),changeHolder)
//set assignee as desired
i.setAssignee(assignToUser)
issueManager.updateIssue(assignToUser, i, 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.