Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Scriptrunner: Validator field required by value of another field

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?

2 answers

1 accepted

0 votes
Answer accepted

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

0 votes
Ivan Tovbin Community Leader Nov 10, 2018

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

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Marketplace Apps & Integrations

Do Not Lose your Customer’s Trust

Missing deadlines is one of the biggest problems every team lead wants to avoid when dealing with managed services. When the customer contracts your company to help with IT services it is expected th...

24 views 0 0
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you