I'm trying to update a custom field on a series of issues. I'm obviously missing something because the examples I'm culling from here on Answers give me the following error:
javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: com.atlassian.jira.issue.DocumentIssueImpl.setCustomFieldValue() is applicable for argument types: (com.atlassian.jira.issue.fields.CustomFieldImpl, java.lang.Integer) values: [CreatedInHelpdesk, 1] Possible solutions: getCustomFieldValue(com.atlassian.jira.issue.fields.CustomField)
Here's my code as of now:
import com.atlassian.jira.bc.issue.search.SearchService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.web.bean.PagerFilter
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.CustomFieldManager
jqlQuery = 'project != HELPDESK'
fromProject = 'HELPDESK'
result = ''
def customFieldManager = componentManager.getCustomFieldManager()
def changeHistoryManager = ComponentAccessor.getChangeHistoryManager()
getFilterResult (jqlQuery,log).each{ Issue issue ->
oldKeys = changeHistoryManager.getPreviousIssueKeys(issue.id)
oldKeys.findAll{it==~/$fromProject.*/}.each{
result += "$it -> ${issue.key}\n"
}
CustomField helpdeskField = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'CreatedInHelpdesk'}
issue.setCustomFieldValue(helpdeskField, 1)
}
return result
List<Issue> getFilterResult(String jqlSearch, log) {
def searchService = ComponentAccessor.getComponent(SearchService.class);
def user = ComponentAccessor.jiraAuthenticationContext.getLoggedInUser()
List<Issue> issues = null
def parseResult = searchService.parseQuery(user, jqlSearch);
if (parseResult.isValid()) {
def searchResult = searchService.search(user, parseResult.getQuery(), PagerFilter.getUnlimitedFilter())
issues = searchResult.issues
} else {
log.error("Invalid JQL: " + jqlSearch);
}
return issues
}