I have many instances of setting various customfield values in our workflows and I'm not having issues with them. This particular one seems to be giving me trouble:
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.ModifiedValue
Issue issue = issue
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField Customer = customFieldManager.getCustomFieldObject("customfield_12400") // 12400 - Customer
CustomField Category = customFieldManager.getCustomFieldObject("customfield_12401") // 12401 - Category
//String issueCategory = Category
//String issueCustomer = Customer
String issueCategory = issue.getCustomFieldValue(Category)
String issueCustomer = issue.getCustomFieldValue(Customer)
if(Customer == "@No Customer"){
String internalCategory = "Request - EDCO"
Category.updateValue(null, issue, new ModifiedValue(issueCategory, internalCategory), new DefaultIssueChangeHolder());
}
else{
String externalCategory = "Request - Customer"
Category.updateValue(null, issue, new ModifiedValue(issueCategory, externalCategory), new DefaultIssueChangeHolder());
}
I'm sure it's something simple but I can't for the life of me figuring out what is causing my issues. Errors read as follows:
2019-12-10 19:13:17,454 ERROR [workflow.AbstractScriptWorkflowFunction]: ************************************************************************************* 2019-12-10 19:13:17,454 ERROR [workflow.AbstractScriptWorkflowFunction]: Script function failed on issue: EDCO-77223, actionId: 1, file: null java.lang.ClassCastException: java.lang.String cannot be cast to com.atlassian.jira.issue.customfields.option.Option at com.atlassian.jira.issue.customfields.impl.SelectCFType.getDbValueFromObject(SelectCFType.java:72) at com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType.createValue(AbstractSingleFieldType.java:143) at com.atlassian.jira.issue.fields.ImmutableCustomField.createValue(ImmutableCustomField.java:693) at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:410) at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:396) at com.atlassian.jira.issue.fields.OrderableField$updateValue.call(Unknown Source) at Script885.run(Script885.groovy:28)
Is something different wen updating values from the create transition? This same method seems to be working fine further down the line in our workflows.
You can only update select custom fields with an com.atlassian.jira.issue.customfields.option.Option, not a String.
To get an Option instance, please follow below steps.
- import OptionsManager
import com.atlassian.jira.issue.customfields.manager.OptionsManager
- Find appropriate option instance using code as below
def option = ComponentAccessor.optionsManager.getOptions(Category)?.find { it.toString().equals("Request - EDCO")
}
- use this option instance in your updateValue method
ps: I did not test the code
I hope it helps.
Tuncay
Thank you for the response!
It wasn't exactly what I was looking for, however, it certainly pointed me in the direction I needed to go to find what I needed!
Regards,
Steven
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Glad to hear that
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.