Script Runner Simple Scripted Validator does not work as expected

Christian Beck April 1, 2015

We have a custom field "Field Issue" (a checkbox), and another custom field "Cause Analysis" (multi line text).

Now I want to make sure that when a fiel issue is resolved, a cause analysis must be documented.

So I created a validator for the resolve issue workflow step:

cfValues['Field Issue']?.getValue() == null || cfValues['Cause Analysis']

System Behaviour:

  1. When "Field Issue" is checked and "Cause Analysis" is empty, the validation fails (OK)
  2. When "Field Issue" is checked and "Cause Analysis" contains text, the validation fails (not OK)
  3. When "Field Issue" is not checked and "Cause Analysis" contains text, the validation passes (OK)
  4. When "Field Issue" is not checked and "Cause Analysis" is empty, the validation passes (OK)

Any help is highly appreciated!

2 answers

0 votes
Christian Beck April 1, 2015

Thank you for the suggstion, Eason. Unfortunately, it didn't work. The problem seems to be the || combination of the two checks. Because if I separate them in two different validators (one for Field Issue and the other for Cause Analysis), the system applies the expected logic, even with the short version cfValue['Cause Analysis'].

 

I just found the expression that solved my problem:

!cfValues['Field Issue'] || cfValues['Cause Analysis']

Helpful to find and verifying it was the admin->built-in scripts->condition tester, where it is far easier and quicker to test different "solutions" until you find the right one.

0 votes
Eason Yang April 1, 2015
try replace
cfValues['Cause Analysis']

with

(cfValues['Cause Analysis']!= null && cfValues['Cause Analysis'].toString().trim().length()>0)

for checking None/Empty spaces inputs into the 'Cause Analysis' field

Suggest an answer

Log in or Sign up to answer