What I have here are :
Cascading field :
ParentOption A
Child Options 1, 2, 3
ParentOption B
Child Options 5,6, 4
In the ticket ParentOption B is selected.
I want to copy all childoptions 5, 6,4 for parentOption B to a free text field.
Here is my code:
{code}
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.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Option
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
OptionsManager optionsManager = ComponentAccessor.getOptionsManager();
CustomField cf = customFieldManager.getCustomFieldObject("customfield_15400");
def customfield2 = customFieldManager.getCustomFieldObject('customfield_10401');
def changeHolder = new DefaultIssueChangeHolder();
Map cfVal = issue.getCustomFieldValue(cf) as Map
if (cfVal) {
String stParentOption = cfVal.get(null);
String stChildOption = cfVal.get("1");
//log.debug ("\n Incident: stParentOption = " + stParentOption);
//log.debug ("\n Incident: stChildOption = " + stChildOption);
Option parentOptionObj = optionsManager.getOptions(cf.getRelevantConfig(issue)).getOptionForValue(stParentOption,null)
log.debug ("\n Target Parent Classification = " + parentOptionObj);
Option childOptionObj = optionsManager.getOptions(cf.getRelevantConfig(issue)).getOptionForValue(stChildOption,parentOptionObj.optionId)
log.debug ("\n Target Classification child ("+ parentOptionObj + ") = " + childOptionObj);
customfield2.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(customfield2), childOptionObj), changeHolder);
}
else {
log.info("Custom field not present on this issue")
}
{code}
It prompt me error
java.lang.ClassCastException: com.atlassian.jira.issue.customfields.option.LazyLoadedOption cannot be cast to java.lang.String
How do I convert Options to string or how do I copied all the child option to a free text field?
I'm new to groovy script, any helps will be much appreciated.