You're on your way to the next level! Join the Kudos program to earn points and save your progress.
Level 1: Seed
25 / 150 points
Next: Root
1 badge earned
Challenges come and go, but your rewards stay with you. Do more to earn more!
What goes around comes around! Share the love by gifting kudos to your peers.
Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!
Join now to unlock these features and more
The Atlassian Community can help you and your team get more value out of Atlassian products and practices.
I want to make a field (Company and Role) mandatory in the Create screen if another field (Application Area)(select list) has the value "SL SAP ECC”.
I use a validator on transition Create.
import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript
@BaseScript FieldBehaviours fieldBehaviours
def ApplicationAreaField = getFieldById(getFieldChanged())
def CompanyandRoleField = getFieldByName("Company and Role")
String ApplicationAreaValue = ApplicationAreaField.getValue()
if (ApplicationAreaValue == 'SL SAP ECC') {
CompanyandRoleField.setRequired(true)
} else {
CompanyandRoleField.setRequired(false)
}
But JIRA gives the report about that field, regardless of which value is chosen in the select list.
Where do I make the mistake?
Adaptavist told me the following:
To achieve what you are asking you need to use a behaviour instead of a validation.
Can you try this code as a server side script for a behaviour on the "Application Area" field:
def ApplicationAreaField = getFieldByName("Application Area") def CompanyandRoleField = getFieldByName("Company and Role") ArrayList ApplicationAreaValue = ApplicationAreaField.getValue() as ArrayList if (ApplicationAreaValue.contains("SL SAP ECC")){ CompanyandRoleField.setRequired(true) } else{ CompanyandRoleField.setRequired(false) }
And this works for my situation
Hi Marco,
If we are talking about a transition validator, the script should be something like this:
import com.atlassian.jira.component.ComponentAccessor
import com.opensymphony.workflow.InvalidInputException
def cfMgr = ComponentAccessor.getCustomFieldManager()
def companyAndRole = issue.getCustomFieldValue(cfMgr.getCustomFieldObjectByName("Company and Role"))
def applicationArea = issue.getCustomFieldValue(cfMgr.getCustomFieldObjectByName("Application Area"))
if(!companyAndRole && applicationArea.getValue().equals("SL SAP ECC")){
throw new InvalidInputException("Company and Role field is required!")
}
return true
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.