Hello,
We are trying to create a script which will add values to 'Components' based on another field that we have (called 'Tool/Area' and it is Select list type).
The following script does not show any errors, but it also does not actually add the values. (it is set as a script listener).
import com.atlassian.jira.bc.project.component.ProjectComponent
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.issue.IssueInputParameters
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.project.Project
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.util.JiraUtils
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.project.Project
import com.atlassian.jira.issue.customfields.option.Option;
import com.atlassian.jira.event.issue.AbstractIssueEventListener
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.crowd.embedded.api.User
import com.atlassian.event.api.EventListener
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.user.ApplicationUser
import org.apache.log4j.Category
def projectComponentManager = ComponentAccessor.getProjectComponentManager()
ApplicationUser user = ComponentAccessor.getJiraAuthenticationContext().loggedInUser
IssueManager issueManager = ComponentAccessor.getIssueManager()
IssueService issueService = ComponentAccessor.getComponent(IssueService);
IssueInputParameters issueInputParameters = issueService.newIssueInputParameters()
ComponentManager componentManager = ComponentManager.getInstance()
MutableIssue issue = (MutableIssue)event.issue
CustomFieldManager cManager = ComponentAccessor.getCustomFieldManager()
CustomField toolarea = cManager.getCustomFieldObjectByName("Tool/Area")
def values = issue.getCustomFieldValue(toolarea)
Project project = issue.getProjectObject()
ProjectComponent component = null
if(values == "Environment"){
component = projectComponentManager.findByComponentName(project.getId(), "Tools Front Desk")
}
else if(values == "Docker"){
component = projectComponentManager.findByComponentName(project.getId(),"Docker")
}
else if(values == "Bullseye / RTRT"){
component = projectComponentManager.findByComponentName(project.getId(),"Bullseye")
}
else if(values == "Collaborator"){
component = projectComponentManager.findByComponentName(project.getId(),"Collaborator")
}
else if(values == "Confluence"){
component = projectComponentManager.findByComponentName(project.getId(),"Confluence")
}
else if(values == "Continuous Integration / Delivery"){
component = projectComponentManager.findByComponentName(project.getId(),"Continuous Integration")
}
else if(values == "CS - Rational Change"){
component = projectComponentManager.findByComponentName(project.getId(),"Change (CS)")
}
else if(values == "CM - Rational Synergy"){
component = projectComponentManager.findByComponentName(project.getId(),"Synergy (CM)")
}
else if(values == "Data External Exchanges"){
component = projectComponentManager.findByComponentName(project.getId(),"CS External Exchanges")
}
else if(values == "JIRA"){
component = projectComponentManager.findByComponentName(project.getId(),"JIRA")
}
else if(values == "DOORS"){
component = projectComponentManager.findByComponentName(project.getId(),"DOORS")
}
if (component) {
issue.setComponent([component])
issueManager.updateIssue(user, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
}