Groovy Script Listener -- conditional with multiselect custom field?

Bryan Karsh
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.
July 16, 2012

Hi,

I am using Script Listener version 1.7.13 on Jira 4.1.1

I have a script listener that looks for issues with a custom field like so:

cfValues['Severity'] == '1'

-- this condition works great. The customfield type is select/selectsearcher

However, when I try to look for something that is in a multiselect/multiselectsearcher field, it is returning as false. Example:

cfValues['External Customer'] == 'Test User'

This also returns as false:

cfValues['External Customer'].value == 'Test User'

This also returns as false:

cfValues['customfield_11006'] == 'Test User'

....

Based on some posts I found online, I checked to see if customfield was being represented as an array, and that it contained 'Test User' So I modified my condition like so:

cfValues["External Customer"] && cfValues["External Customer"]?.value.contains("Test User")

Still returning false.

At this point I am stumped...

Any tips appreciated!

2 answers

1 accepted

3 votes
Answer accepted
Bryan Karsh
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.
July 16, 2012

I modified my query a bit, and now it works:

cfValues["External Customer"]?.contains("Test User")

JamieA
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.
July 17, 2012

This is the correct answer... if the custom field type is a List, you need to use contains, unless you are testing for list equality. But the key point is to:

log.warn cfValues["External Customer"].class

Then you can see the type that you are getting.


0 votes
Ramiro Pointis
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.
July 17, 2012

Hi Bryan,

That's because you need to declare the customfield first, you could try:

def cf = "customfield_11006"

def fieldname = customFieldManager.getCustomFieldObject( cf )

cfValues['fieldname'] == 'Test User'

Something like this.

Suggest an answer

Log in or Sign up to answer