Hi All,
I have the following code snippet to validate the custom multi select field. I am using the below code in 'Custom script Validator' during the workflow transition.
import com.atlassian.jira.ComponentManager; import com.atlassian.jira.issue.CustomFieldManager; import com.atlassian.jira.issue.fields.CustomField; import com.atlassian.jira.issue.IssueManager; import com.atlassian.jira.issue.Issue; import com.atlassian.jira.issue.MutableIssue; import com.opensymphony.workflow.InvalidInputException CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager(); def textfield = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Text field 2'} custom = customFieldManager.getCustomFieldObjectByName("Test multi") List<Option> options = (List<Option>) custom.getValue(issue) for (int i = 0; i < options.size(); i++){ options[i] } if ( !issue.getCustomFieldValue(textfield)) { invalidInputException = new InvalidInputException("Test field 2 is required") throw invalidInputException }
I am not able to get the values in the multi select. I actually need to check for two values in the multi select. What I am doing wrong?
Thanks, Hemanth
Hi Hemanth
I would suggest something like that:
def targetVersionField = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Test multi"); def options = issue.getCustomFieldValue(targetVersionField) as List<Option> def requiredOptions = ['Option 1','Option 4'] if (! ( options*.value.containsAll(requiredOptions) )){ throw new InvalidInputException("Field '${targetVersionField.getName()}' requires the following options: $requiredOptions") }
where 'Option 1' and 'Option 4' are the required options
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.