import org.apache.log4j.Logger import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.customfields.manager.OptionsManager; import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.customfields.option.Option; import com.atlassian.jira.issue.Issue; import com.google.common.collect.Lists; import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.security.JiraAuthenticationContext; import java.util.ArrayList; import com.atlassian.crowd.embedded.api.User; import com.atlassian.jira.event.type.EventDispatchOption; def log = Logger.getInstance("com.onresolve.jira.groovy.PostFunction") JiraAuthenticationContext jAC = ComponentAccessor.getJiraAuthenticationContext(); IssueManager issueManager = ComponentAccessor.getIssueManager(); User user = jAC.getUser().getDirectoryUser(); MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject(issue.getKey()) CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() //10003 is the MLCS custom field ID CustomField mlcs = customFieldManager.getCustomFieldObject("customfield_10003") ArrayList<String> mlcsValues = (ArrayList<String>) issue.getCustomFieldValue(mlcs) String[] mlcsValuesList = mlcsValues.toArray() //10000, 100001, 100002 are the IDs of the fields you want to copy values into CustomField level1CF = customFieldManager.getCustomFieldObject("customfield_10000") CustomField level2CF = customFieldManager.getCustomFieldObject("customfield_10001") CustomField level3CF = customFieldManager.getCustomFieldObject("customfield_10002") issue.setCustomFieldValue(level1CF, mlcsValuesList[0]) issue.setCustomFieldValue(level2CF, mlcsValuesList[1]) issue.setCustomFieldValue(level3CF, mlcsValuesList[2]) issueManager.updateIssue(user, issue, EventDispatchOption.DO_NOT_DISPATCH, false)
Overview
Content Tools