Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Set field Visible and Mandatory based on Component value

Hardik Parekh
Contributor
March 26, 2019

Hi.

I am trying to set few custom fields Visible and Mandatory if user select Component = "Financial Shared Services" in issue Create / Edit screen. I tried with below two scripts but it's not working. It's jumping to else part directly. Can you please help what am I missing here.

Script 1 :

import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()

def EmployeeHrs = getFieldByName("Total Number of Employee Hours")
def component = getFieldByName("Component/s")
def componentV = component.getValue())


if (componentV.toString().contains("Financial Shared Services")) {
EmployeeHrs.setRequired(true);
EmployeeHrs.setHidden(false);
}
else {
EmployeeHrs.setRequired(false);
EmployeeHrs.setHidden(true);
}

 

Script 2 :

import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()

def EmployeeHrs = getFieldByName("Total Number of Employee Hours")
def component = getFieldByName("Component/s")
def componentV = component.getValue()

if (componentV == "Financial Shared Services") {
EmployeeHrs.setRequired(true);
EmployeeHrs.setHidden(false);
}
else {
EmployeeHrs.setRequired(false);
EmployeeHrs.setHidden(true);
}

 

Thanks,

Hardik

1 answer

1 accepted

0 votes
Answer accepted
Mark Markov
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.
March 26, 2019

Hello @Hardik Parekh 

You should get system fields by id, not name. Try like this

def EmployeeHrs = getFieldByName("Total Number of Employee Hours")
def component = getFieldById("components")
def componentV = component.getValue()


if (componentV.toString().contains("Financial Shared Services")) {
EmployeeHrs.setRequired(true);
EmployeeHrs.setHidden(false);
}
else {
EmployeeHrs.setRequired(false);
EmployeeHrs.setHidden(true);
}

And place this code attached to Components field

Hardik Parekh
Contributor
March 27, 2019

Thank you for quick response @Mark Markov 

I will check this and confirm here soon.

Hardik Parekh
Contributor
April 5, 2019

Thank you for help @Mark Markov . It worked.

I hope this will work for Date, UserPicker and Multi-select field as well.

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events