Forums

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

Can't get value custom field value

Pawel Wanago May 16, 2016

Hello,

I have two lines script based on examples:

def pain = getCustomFieldValue("Pain if not delivered")
def gain = getCustomFieldValue("Gain if delivered")

which returns me an error:

Script function failed on issue: TP-1, actionId: 11, file: <inline script>
groovy.lang.MissingMethodException: No signature of method: org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.getCustomFieldValue() is applicable for argument types: (java.lang.String) values: [Pain if not delivered]
    at Script21.run(Script21.groovy:1)

How can I solve that?

1 answer

0 votes
Nic Brough -Adaptavist-
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.
May 16, 2016

I'm not sure where you've got the examples from, but I doubt they say getCustomFieldValue(<string>)

You need to pass those calls a customfield object, not a random string - it doesn't know what to do with strings.  For example:

def cf = customFieldManager.getCustomFieldObject ("Gain if delivered")

def gain = getCustomFieldValue(cf)

(My notes actually say issue.getCustomFieldValue, but I've got a feeling groovy may not need it if you're in a post-function as it assumes you mean "current issue")

Pawel Wanago May 17, 2016

I tried another way:

import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.CustomFieldManager;
def painFieldId = "customfield_11401";
def gainFieldId = "customfield_11402";
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
def gainCustomField = customFieldManager.getCustomFieldObject(gainFieldId);
def painCustomField = customFieldManager.getCustomFieldObject(painFieldId);

Now I'm reaching: No signature of method: com.atlassian.jira.ComponentManager.getCustomFieldManager() is applicable for argument types: () values: []

Ashraful Hasan [Adaptavist]
Contributor
May 17, 2016

Hi - you should use "ComponentAccessor" to get JIRA managed component according to the latest document:

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

please check the doc for more detail: https://docs.atlassian.com/jira/latest/com/atlassian/jira/component/ComponentAccessor.html

The suggestion is based on this link: https://docs.atlassian.com/jira/latest/com/atlassian/jira/ComponentManager.html

 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events