Just a heads up: On March 24, 2025, starting at 4:30pm CDT / 19:30 UTC, the site will be undergoing scheduled maintenance for a few hours. During this time, the site might be unavailable for a short while. Thanks for your patience.

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

I want to make a field mandatory in the Create screen if another field has certain value

Marco Brundel
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 8, 2018

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

Suggest an answer

Log in or Sign up to answer
0 votes
Answer accepted
Marco Brundel
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 12, 2018

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
Neta Elyakim
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
November 11, 2018

Do you use script behavior or script validator? According to your syntax, it seems like you are using behavior.

If you are using script validator, use this script:

Note that you need to change the id in applicationAreaValue and companyRoleFieldValue params.

import com.atlassian.jira.component.ComponentAccessor
import com.opensymphony.workflow.InvalidInputException

def customFieldManager = ComponentAccessor.getCustomFieldManager()

String applicationAreaValue = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(11111 as long))//Change the id to 'Application Area' field id
String companyRoleFieldValue = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(11111 as long))//Change the id to 'Company and Role' field id

if (applicationAreaValue == "SL SAP ECC") {
if (companyRoleFieldValue == null) {
invalidInputException = new InvalidInputException("'Company and Role' is mandatory when 'Application Area' is SL SAP ECC")
return null
}
}
TAGS
atlassian, atlassian government cloud, fedramp, webinar, register for webinar, atlassian cloud webinar, fedramp moderate offering, work faster with cloud

Unlocking the future with Atlassian Government Cloud ☁️

Atlassian Government Cloud has achieved FedRAMP Authorization at the Moderate level! Join our webinar to learn how you can accelerate mission success and move work forward faster in cloud, all while ensuring your critical data is secure.

Register Now
AUG Leaders

Atlassian Community Events