Showing results for 
Search instead for 
Did you mean: 
Sign up Log in
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

Get cascade field value

I have a behaviours script and following requirement:

If user select values of cascade field as "Peter" (first option) and "New York" (Second option) then I can see the hidden field.

Can someone please help me?

def tid = getFieldByName("Name and Location");

def monthlyMaintenance = getFieldByName("Is this for monthly network maintenance");


if(tid.getValue() == "'Peter','New York'"){

2 answers

1 accepted

Hi All,

Following code has worked for me but ensure the cascading custom field is available in the screen you are working on,

For Behaviour:

def cfield = getFieldByName("cascading custom field name")
Map mapValue = cfield.getValue() as Map
def value1 = mapValue.get(0).toString()
def value2 = mapValue.get(0).toString()

For Post Functions:

import com.atlassian.jira.component.ComponentAccessor

def issueManager = ComponentAccessor.getIssueManager()

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def customField = customFieldManager.getCustomFieldObjectsByName('cascading custom field name').getAt(0)
def cstFldVlue = issue.getCustomFieldValue(customField)


Works for me !

thanks !

Like devsuresh2005 likes this

Please accept the answer. Thanks.

Hi @devsuresh2005 - I tried your solution and it was slightly incorrect.

value2 should use 'get(1)' instead of 'get(0)'  ;-)

0 votes
Payne Community Leader Nov 14, 2018

I use the following in a ScriptRunner post function. I'm not sure if it'll work in a Behaviour, but maybe it'll at least get you headed in the right direction.


import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField

String unit,category,emailDestination

CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()
CustomField cf = customFieldManager.getCustomFieldObjectByName("Unit and Category")
Map cfVal = issue.getCustomFieldValue(cf) as Map

if (cfVal) {
String first = cfVal.get(null)
String second = cfVal.get("1")
unit = first
category = second
else {
unit = ""
category = ""

Hi Payne,

I can't get it to work :/

I saw a lot of post like yours that cast 


To Map or Hashmap or ....

But  in my case, I don't know why I can't do it. The compiler cast automatically my issue.getCustomFieldValue(cf) to Double and it can't overwrite this cast.

I can't understand why, but my field value is always 0.0 (with or without value in the field)

When i put this in my code :

Map cfVal = issue.getCustomFieldValue(cf) as Map

I have this error :

org.codehaus.groovy.runtime.metaclass.MissingMethodExceptionNoStack: No signature of method: java.lang.Double.isEmpty() is applicable for argument types: () values: [] Possible solutions: identity(groovy.lang.Closure), isNaN(), inspect(), dump()

 When i try another thing i saw in a different post (but similar) :

log.warn(((Map<String, String>) issue.getCustomFieldValue(cf)).get(null))

I have this error :

Cannot cast object '0.0' with class 'java.lang.Double' to class 'java.util.Map'

 As I was saying, even if it display an error in the "pre-compiling" I can run this code well :

log.warn issue.getCustomFieldValue(cf).floatValue()

and I have this result :

[runner.ScriptBindingsManager]: 0.0

 Do you have any idea that could make 

Map cfVal = issue.getCustomFieldValue(cf) as Map

works ?



Suggest an answer

Log in or Sign up to answer

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