When creating an issue and adding it to an Epic by setting the Epic link, we wish to copy a series of custom fields from the Epic to the new issue, since they should have the same values. I have succeeded in copying single-select custom fields (such as Theme in my example), but I cannot get the copy of multi-select custom fields to work (the Product field in my example).
Here is the code in my ScriptRunner Behaviour :
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def theme = getFieldByName("Theme")
def product = getFieldByName("Product")
def epicLink = getFieldByName("Epic Link")
String epicLinkKey = epicLink.getValue()
String epicLinkNoKey = epicLinkKey.replaceAll("key:", "")
def epic = ComponentAccessor.getIssueManager().getIssueObject(epicLinkNoKey)
def cfTheme = customFieldManager.getCustomFieldObjectByName("Theme")
def epicTheme = epic.getCustomFieldValue(cfTheme) as String
def configTheme = cfTheme.getRelevantConfig(getIssueContext())
def optionsTheme = optionsManager.getOptions( configTheme )
def optionToSelectTheme = optionsTheme.find { it.value == epicTheme }
theme.setFormValue(optionToSelectTheme.optionId)
def cfProduct = customFieldManager.getCustomFieldObjectByName("Product")
def epicProduct = epic.getCustomFieldValue(cfProduct)
def configProduct = cfProduct.getRelevantConfig(getIssueContext())
def optionsProduct = optionsManager.getOptions( configProduct )
def optionToSelectProduct = optionsProduct.findAll { it.value in epicProduct }
product.setFormValue(optionToSelectProduct*.optionId)
I also have a single User selector that I wish to copy from the Epic. Can someone help ?