I am trying to automatically set the Approver for service desk tickets to be the reporter via the transition into the approval status.
I've followed this: Custom Post Functions (adaptavist.com) where it says all I should need is the following code:
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def approvers = customFieldManager.getCustomFieldObjectsByName('Approvers')
issue.setCustomFieldValue(approvers, issue.reporter)
However, I get the error:
[Static type checking] - Cannot find matching method com.atlassian.jira.issue.MutableIssue#setCustomFieldValue
What am I doing wrong?
If you hover over the "getCustomFieldObjectByName" or approvers, you might see something about it being a list or collection.
And if you look at the name of that method, you will see that it is plural.
These two things together mean "approvers" is actually a list of custom fields. And you can set a value on intended for a single field by giving it a list.
If you are confident you only have 1 custom field named "Approver", you can just add [0] at the end to get the "first item in the list of custom fields" returned by the method.
Then, I think you would still encounter another problem. I believe the "Approvers" field allows multiple values. As such, it will not like receiving a single user since it expects a list of users. So you need to give it a list, even if that list is a list of 1.
Try this
import com.atlassian.jira.component.ComponentAccessor
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def approversCf = customFieldManager.getCustomFieldObjectsByName('Approvers')[0]
issue.setCustomFieldValue(approversCf, [issue.reporter])
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.