My goal is to to fill in field with value that is in the Epic, once Epic link field is filled in task.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.customfields.option.Option
def epicLinkCf = getFieldById(getFieldChanged()) //Epic Link field
def inputCategoryCF = getFieldById("customfield_11300") //Field that must be filled
def epicLinkValue = epicLinkCf.getValue().toString()
def epicKey = epicLinkValue.replace("key:","")
def issueManager = ComponentAccessor.getIssueManager()
def optionsManager = ComponentAccessor.getOptionsManager()
def epic = issueManager.getIssueObject(epicKey)
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def inputCategoryField = customFieldManager.getCustomFieldObject(11300L)
def inputCategoryConfig = inputCategoryField.getRelevantConfig(getIssueContext())
def options = optionsManager.getOptions(inputCategoryConfig)
def inputCategoryValue = epic.getCustomFieldValue(inputCategoryField).toString()
def optionToSelect = options.find { it.value == inputCategoryValue}
inputCategoryCF.setFormValue(optionToSelect.optionId)
This is not working.
I tested, by adding error on the screen by replacing:
inputCategoryCF.setFormValue(optionToSelect.optionId) with
inputCategoryCF.setError(optionToSelect.optionId.toString())
and I can see, that correct option Id is shown.
I don't understand, why setFormValue is not working.
Hi Sandra,
did you find the reason?
I am having the same problem. In other scripts i use
setFormValue(optionToSelect.optionId)
and it works. Now with a new script the option get not set :(
I have the right field, i set the helptext.
Kind regards
Michael
Hello,
I checked my code as it was long time ago. Here is a code, that is working.
You need to get customfield value of epic - convert toString() and then set that value
def inputCategoryValue
if(inputCategoryField != null && epic != null){
inputCategoryValue = epic.getCustomFieldValue(inputCategoryField).toString()
def countryProductValueNew = epic.getCustomFieldValue(newCountryField).toString()
List<Option> productsValue = (List) epic.getCustomFieldValue(productsField)
inputCategoryCF.setFormValue(inputCategoryValue)
countryCF.setFormValue(countryProductValueNew)
productsCF.setFormValue(productsValue*.optionId)
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thank you Sandra,
i tried a lot and at final i guess i found possibly a bug.
I have defined a context (only one project) on the field. If i remove the context setFormValue works :)
But sadly i can not set components in this way :(
Neither with the displayString nor with the componentId
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.