Use Scriptrunner to get selected index of Select List (single choice)

Gerben Heinen October 30, 2017

I am trying to get the option position number of the selected option in a Select list (single choice). I have found a lot of posts about how to get the selected text value, but I am worried that if someone changes the text (for some reason), the script breaks. i am assuming that the position will not change, but how can i get this in scriptrunner?

1 answer

2 votes
Thanos Batagiannis _Adaptavist_
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 2, 2017

Hey Gerben,

There are ways to write your script defensively enough, in order not to break if someone change the name of an option. 

In theory you could get the third option for the SelectListA and issue with key ATG-1 like (run  it your script console)

import com.atlassian.jira.component.ComponentAccessor

def issue = ComponentAccessor.issueManager.getIssueByCurrentKey("ATG-1")
def cf = ComponentAccessor.customFieldManager.getCustomFieldObjectByName("SelectListA")
def fieldConfig = cf.getRelevantConfig(issue)
def selectedOption = issue.getCustomFieldValue(cf)
def indexOf = ComponentAccessor.optionsManager.getOptions(fieldConfig).indexOf(selectedOption)

log.debug "Index of selected option is $indexOf"

 But to be honest it doesn't feel right .... If you want to elaborate a bit more we can craft something...

regards, Thanos

Suggest an answer

Log in or Sign up to answer