formField.setFieldOptions(Iterable) Not working

Hi, 

I have a behavior which is supposed to limit the drop down options a user see's if he inputs a value into a earlier option. 

For example if FieldA =AnswerA Then FieldB (which is a dropdown with many options) should only display A or B to the user as options. 

My code looks like: 

 

import com.atlassian.jira.component.ComponentAccessor



def FieldA = getFieldById("customfield_10001")
def FieldB = getFieldById("customfield_10002")



if (FieldA.getValue() == "AnswerA") {

FieldB.setFieldOptions( ['A', 'B'])

}

These are custom fields and are being accessed correctly as I can use setHidden(true/false) to confirm my If statement can hide and show FieldB based on FieldA's input.

 

What isnt working is the setFieldOptions() method. oddly in the Example on the Behaviours page it actually shows it as: 

formField.setFormValue(options.findAll {it.value in ['foo', 'bar']})

 

When I try and do 

FieldB.setFormValue(options.findAll {it.value in ['A', 'B']})

I get an error message telling me the variable options is undeclared and that there is no such property as it.value

I have tried a lot of random things using code snippets on the answers here but I wonder if the code syntax has changed recently as stuff that people seem to say has worked is giving me error messages. 

 

in short: Would really appreciate if someone could give any advice on how I can limit the selectable options in the drop down. 

 

2 answers

0 vote
Alexey Matveev Community Champion Nov 03, 2017

Instead of developing a solution use cascade select custom field. It would be much cleaner solution. 

Unfortunately a cascade wouldn't work in this scenario as the fields are relatively unrelated. In a few small cases the first field should limit what the second fields options should be but thats about it. 

As I am not far off the solution it would be really useful to try and understand how the setFieldOptions() method works, unfortunately its not very clear but it would be useful to understand.

For anyone that finds this, I actually found the answer here: 

https://scriptrunner.adaptavist.com/5.0.2/jira/recipes/behaviours/setting-default-fields.html#_setting_defaults_for_selects_etc

 

There is a lot of component accessor code I needed to make use of options.find and it.value

All the best, 

Suggest an answer

Log in or Sign up to answer
Atlassian Community Anniversary

Happy Anniversary, Atlassian Community!

This community is celebrating its one-year anniversary and Atlassian co-founder Mike Cannon-Brookes has all the feels.

Read more
Community showcase
Bridget Sauer
Published Thursday in Marketplace Apps

Calling all developers––You're invited to Atlas Camp 2018

 Atlas Camp   is our developer event which will take place in Barcelona, Spain  from the 6th -7th of   September . This is a great opportunity to meet other developers and get n...

356 views 0 6
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you