Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

scriptrunner: how to get possible values of multiselect custom field?

Dmitrii April 28, 2020

Hello,

My question is: is it possible in ScriptRunner script to access possible values of some multiselect custom field? Please, don't confuse with actual values of multiselect custom field in particular issue.

Both possibilities would be fine:

  • referencing definition of the custom field itself
  • or referencing use of this custom field in some screen (e.g. in some workflow) or in some issue

 

Context for this question: I implement custom dialog as a Fragment to be used together with Custom Web Item. I need to collect some data, which will later be written in some custom field, which has multiselect type.

 

I realize, that I can manually ensure, that definition of the custom field and my dialog use the same sets of values. But it would be nice, if it would be possible to handle it in only one place.

 

Thank you in advance.

2 answers

1 accepted

0 votes
Answer accepted
Dmitrii April 29, 2020

A colleague of mine helped me with a solution. Here it is:

 

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Options
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.config.FieldConfig

final IssueManager issueManager = ComponentAccessor.issueManager
final OptionsManager optionsManager = ComponentAccessor.optionsManager
final CustomFieldManager customFieldManager = ComponentAccessor.customFieldManager

final String issueKey = "ABC-1" // you issue key
final Long customFieldId = 12345 // you custom field ID
final MutableIssue issue = issueManager.getIssueObject(issueKey)
final CustomField customField = customFieldManager.getCustomFieldObject(customFieldId)
final FieldConfig fieldConfig = customField.getRelevantConfig(issue)
final Options options = optionsManager.getOptions(fieldConfig)
logger.debug options.toString()
0 votes
Dmitrii April 29, 2020

A colleague of mine helped me with a solution. Here it is:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.manager.OptionsManager
import com.atlassian.jira.issue.customfields.option.Options
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.fields.config.FieldConfig

final
IssueManager issueManager = ComponentAccessor.issueManager
final OptionsManager optionsManager = ComponentAccessor.optionsManager
final CustomFieldManager customFieldManager = ComponentAccessor.customFieldManager

final MutableIssue issue = issueManager.getIssueObject(issueKey)
/* below input is custom field id */
final CustomField customField = customFieldManager.getCustomFieldObject(10100)
final FieldConfig fieldConfig = customField.getRelevantConfig(issue)
final Options options = optionsManager.getOptions(fieldConfig)
logger.debug options.toString()

Suggest an answer

Log in or Sign up to answer