I have to set the value for a cascading custom field where parent value depends on other custom field value.
I used a Custom script post-function (ScriptRunner) but it doesen't work:
// other field value (single select list)
def cfOther = ComponentAccessor.customFieldManager.getCustomFieldObject("customfield_11614")
String other = cfOther.getValue(issue).toString()
// cascading cf to set
def cfField = ComponentAccessor.customFieldManager.getCustomFieldObject("customfield_11616")
def fieldConfig = cfField.getRelevantConfig(issue)
def option = optionsManager.getOptions(fieldConfig).find {it.value == other}
issue.setCustomFieldValue(cfField, [option.getOptionId(), option.childOptions[0].getOptionId()])
someone can help?
Community moderators have prevented the ability to post new answers.
Hi Katia,
Good day to you! I'm Felipe from ServiceRocket.
The issue with your script is likely due to how you're retrieving and setting values for a Cascading Select List. Below is the corrected version of your ScriptRunner Post Function to ensure that the Parent Option is set correctly based on another custom field value:
import com.atlassian.jira.component.ComponentAccessor
def issueService = ComponentAccessor.issueService
def optionsManager = ComponentAccessor.optionsManager
def customFieldManager = ComponentAccessor.customFieldManager
// Get the custom field that determines the parent value
def cfOther = customFieldManager.getCustomFieldObject("customfield_11614")
def otherValue = issue.getCustomFieldValue(cfOther)?.toString()
// Get the cascading select custom field
def cfField = customFieldManager.getCustomFieldObject("customfield_11616")
def fieldConfig = cfField.getRelevantConfig(issue)
// Find the matching parent option
def parentOption = optionsManager.getOptions(fieldConfig).find { it.value == otherValue }
if (parentOption) {
def childOption = parentOption.childOptions?.first() // Select the first child option if available
def cascadingValue = childOption ? [parentOption.optionId, childOption.optionId] : [parentOption.optionId]
// Set the value of the cascading field
issue.setCustomFieldValue(cfField, cascadingValue)
}
Here is what was updated in the script:
Best Regards,
Felipe
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.