Simple script validator - if multi select field has a value and a select field cannot be empty

Ganesh January 18, 2017

JIRA Server 6.3.10  ScriptRunner 4.1.3.15

We wanted to do a simple script validation for the following

1) if the value of a multi-select field FieldMS is 'Yes' then a single select field FieldSS cannot be empty

2)  if the value of a multi-select field FieldMS is 'Yes' then another multi select field FieldOMS cannot be empty

We tried 

for point 1 - !cfValues['FieldMS']*.value.contains("Yes") || cfValues['FieldSS']
for point 2 - !cfValues['FieldMS']*.value.contains("Yes") || cfValues['FieldOMS']

It works if value 'Yes' is chosen and dependent field is empty but unfortunately even if the FieldMS is empty validations are triggered which should not be the case.

Tried with 

!('Yes' in cfValues['FieldMS']*.value) || cfValues['FieldSS'] but not working.

Any ideas?

 

2 answers

1 vote
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.
January 23, 2017

Hi Ganesh,

if (cfValues['FieldMS']*.value == ["Yes"] && ! cfValues['FieldSS']?.value)
    return false

return true

So the above validator means:

If the FieldMS value IS Yes then if the FieldSS has no value selected then fail. In any other case, for example if FieldMS CONTAINS Yes and Maybe values and the FieldSS has no value selected then pass. 

regards, Thanos

0 votes
Peter Bengov
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.
January 18, 2017

Hi Ganesh, 

Is FieldMS mandatory for this step? Maybe a check for a null value is in order. 

Also, try to use something like !(['Yes'].contains(cfValues['FieldMS'].value))

Suggest an answer

Log in or Sign up to answer