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-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
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] 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