Hi,
I'm curious. How do I get all options from a select list custom field, and add them to a map?
For example:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.customfields.manager.OptionsManager CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def optionsManager = ComponentAccessor.getComponentOfType(OptionsManager.class) def cf = customFieldManager.getCustomFieldObjectByName("Region") def fieldConfig = cf.getRelevantConfig(issue) def options = optionsManager.getOptions(fieldConfig).dump()
-- will give me output like so:
<com.atlassian.jira.issue.customfields.option.OptionsImpl@1ecdc903 optionsLookup=[14262:Region1, 14261:Region2, 14260:Region3, 14259:Region4] relatedField=com.atlassian.jira.issue.fields.config.FieldConfigImpl@76c6d7a5 reorderer=com.atlassian.jira.util.CollectionReorderer@62fdce1f optionsManager=com.atlassian.jira.issue.customfields.manager.CachedOptionsManager@42de7804 elementData=[Region4, Region3, Region2, Region1, null, null, null, null, null, null] size=4 modCount=1>
I just want the optionsLookup data, so I could populate a map with the numeric id as key, and the option name as value. For example: 14262 as key, and Region1 as value, etc.
Any tips? Thanks
This seems to do the trick (got idea from other posts here and elsewhere):
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.customfields.manager.OptionsManager import com.atlassian.jira.issue.customfields.option.Option import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.issue.Issue; IssueManager issueManager = ComponentAccessor.getIssueManager(); myissue = "TESTRFC-8" Issue issue = issueManager.getIssueObject("$myissue"); CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def optionsManager = ComponentAccessor.getComponentOfType(OptionsManager.class) def cf = customFieldManager.getCustomFieldObjectByName("Region") def fieldConfig = cf.getRelevantConfig(issue) def options = optionsManager.getOptions(fieldConfig) def results= [:] for (Option option : options) { results.put(option.optionId,option.value) } return results
-- it returns:
{14259=Region4, 14260=Region3, 14261=Region2, 14262=Region1}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.