Hello All,
I'm trying to write a script where I can get the current values for the parent option and the child option in a cascading select list.
I have a custom field Impact and Urgency of cascading select type and the field priority. I need to set the priority based on the selected impact and urgency.
This is what I've been trying to do so far. But unfortunately this does not work for me.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.PriorityManager
import com.atlassian.jira.issue.priority.Priority
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.customfields.option.LazyLoadedOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.customfields.view.CustomFieldParams
import com.atlassian.jira.issue.customfields.option.Option
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.customfields.option.Options
import com.atlassian.jira.issue.fields.config.FieldConfig
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.customfields.view.CustomFieldParams
def issue = event.getIssue();
//Issue issue = event.issue
MutableIssue mutableIssue = (MutableIssue) issue;
def priorityManager = ComponentAccessor.getComponent(PriorityManager)
def optionsManager = ComponentAccessor.getOptionsManager()
//CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
//CustomField cf = customFieldManager.getCustomFieldObjectByName("Impact and Urgency")
CustomField cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Impact and Urgency" )
FieldConfig config = cf.getRelevantConfig(issue)
def options = optionsManager.getOptions(config)
def parentOption = options.find {it.value == "test"}
def childOption = parentOption?.childOptions?.find{it.value == "Core Services"}
def childOption2 = parentOption?.childOptions?.find{it.value == "Non-Core Services"}
def childOption3 = parentOption?.childOptions?.find{it.value == "Other Support Services"}
def parentOption1 = options.find {it.value == "VIP user/ Small group/ Department"}
def parentOption2 = options.find {it.value == "One user"}
if (parentOption== "test" && childOption=="Core Services")
{
mutableIssue.setPriorityId("1")
}
else if (parentOption== "test" && childOption=="Non-Core Services"){
mutableIssue.setPriorityId("10200")
}
else if (parentOption== "test" && childOption=="Other Support Services"){
mutableIssue.setPriorityId("10201")
}
else if (parentOption1== "VIP user/ Small group/ Department" && childOption=="Core Services") {
mutableIssue.setPriorityId("10201")
}
else if (parentOption1== "VIP user/ Small group/ Department" && childOption=="Other Support Services") {
mutableIssue.setPriorityId("10202")
}
else if (parentOption1== "VIP user/ Small group/ Department" && childOption=="Non-Core Services") {
mutableIssue.setPriorityId("10201")
}
else if (parentOption== "One user" && childOption=="Core Services") {
mutableIssue.setPriorityId("10201")
}
else if (parentOption== "One user" && childOption=="Non-Core Services") {
mutableIssue.setPriorityId("10202")
}
else if (parentOption== "One user" && childOption=="Other Support Services") {
mutableIssue.setPriorityId("10203")
}
Can anyone help me with this?
Thanks,
Khushbu