I'm developing a workflow validation on the initial transistion "create issue" to check for the component selected. I've tried to use issue.componentObjects*.name.contains('component name') and issue.components*.name.contains('component name'), both dont work. What am I doing wrong?
The main purpose is to provide an error message when the wrong component is selected for a certain condition like by issue type. I can't get pass the component selection. It seems to be not working like sample below.
Script Validator -> Simple scripted validator -> Condition:
issue.componentObjects*.name.contains('component')
OR
issue.components*.name.contains('component')
Hi Matheus,
I guess the script could not be simplified...Your suggestion of iterating through the component object works for my validation condition code. I used the Component description to categorize the type to match issue type.
The validation code below returns true when the selected component is allowed for the Issue type.
int allowed_cnt=0; if (issue.componentObjects.size() >= 1){ for (int i = 0; i < issue.componentObjects.size(); i++) { if(issue.componentObjects.getAt(i)?.getDescription() == "A Component Type" && issue.issueTypeObject.name == 'A Issue Type'){ allowed_cnt++; } else if(issue.componentObjects.getAt(i)?.getDescription() == "B Component Type" && issue.issueTypeObject.name == 'B Issue Type'){ allowed_cnt++; } } if (allowed_cnt >= 1){ return true; } else { return false; } } else { return false; }
Thanks.
Try iterating through
issue.getComponentObjects()
import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.Issue //Gets the Components List (Collection<ProjectComponent>) def components = issue.getComponentObjects() if (components.size() >= 1){ checkComponents(components, cf) } else { return } def checkComponents(def components, def cf){ for (int i = 0; i < components.size(); i++) { if(components.getAt(i)?.getComponentLead() == "MyComponent"){ return false } } }
I have no idea if this will actually work, but it may be worth the shot
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks Matheus for your suggestion...I will give it a try but it seems to be complicated. I'm looking for a simple scripted validator condition code in the workflow validation on create. Also, I'm not checking for the component lead and more on the component name.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.