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.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.