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.