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}
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.