Is there a way to show the difference between 2 different multi-checkbox custom fields using Scripted Fields?

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.
November 3, 2014

I have 2 custom fields with the same values in both. I'd like to compare the values and show in a 3rd (scripted) field what are the values that I have checked in field #1 and don't have checked in field #2.

Moreover, if would help to know how can a loop over the multicheckbox field and access each value there. 

Thanks

1 answer

1 accepted

0 votes
Answer accepted
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.
November 3, 2014
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def field1Vals = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectByName("First Field")) as List<Option>
field1Vals*.value

The last line gives you the string values of field 1, eg \["Yes, "No", "Maybe"]

Do the same for field two...

leftFields.intersect(rightFields)

will give you the common ones, so you can just loop through and render the differences nicely.

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.
November 6, 2014

Thank you Jamie. Writing below some more code I used, maybe will help future user as well. {code:} import com.atlassian.jira.component.ComponentAccessor; def customFieldManager = ComponentAccessor.getCustomFieldManager(); List field1 = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectByName("field1")) as List<String>; List field1 = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectByName("field1")) as List<String>; field1*.value; field1*.value; // this how I got to know if the checkbox value (label) is indeed checked (looped me lists for this): if (field1*.value.contains("label1") == true) {code}

Suggest an answer

Log in or Sign up to answer