Checking the value of a multi-valued field

Abstract

This code snippet checks the value of a standard or custom multi-valued type field (typically a multi-select field). The multi-valued fields can either be a collection of objects or a set of values.

Logic

Iterate over the array of objects or set of values and check a specific field for the required value.

Snippet 

For multi-select fields:

//Run a loop on all the selected options of the field and find the desired option
issue.get("<Name of the field>").any{
  it.getValue() == "<Value of the field>"}
Placeholders
PlaceholderDescriptionExample
<Name of the field>

Name of the multi-select field

Checkboxes

<Value of the field>Value of the option

Verification done

For multi-versions/users/components/groups fields (e.g. Fix Version/s):

//Run a loop on all the selected options of the field and find for the desired object
issue.get("<Name of the field>").any {
  it.getName() == "<Name of the desired version>"}
Placeholders

Placeholder

Description

Example

<Name of the field>Name of the multi-valued version fieldfixVersions
<Name of the desired version>Name of the version to find2.0

For Labels field:

//Run a loop on all the selected labels of the field and find for the desired label
issue.get("<Name of the field>").any {
  it.getLabel() == "<Desired label>"}
Placeholders

Placeholder

Description

Example

<Name of the field>Name of the labels fieldlabels
<Desired label>Label to findUse-case

Examples

The output of the code is a boolean value (true or false) which you could use to conditionally execute a Post-function/Condition/Validator or Unlink issues:

  • Check the issue has been flagged

    issue.get("Flagged").any {
      it.getValue() == "Impediment"}
  • Check the issue has a label Server

    issue.get("Labels").any {
      it.getLabel() == "Server"}
  • Check the issue has 5.0.0 as an Affects Version/s

    issue.get("versions").any {
      it.getName() == "5.0.0"}

References