Hi Atlassian Team,
We tried with https://confluence.atlassian.com/jirakb/how-to-automatically-add-request-participants-when-creating-an-issue-777026955.html in JIRA 7.2.4 with Script Runner 4.3.13 with JIRA SD 3.2 and we are getting
error on Script Console as:
[Static type checking] - Cannot find mathing method com.atlassian.jira.component.ComponentAccessor#getIssueIndexManager(). Please check it the declated type is right and it the method exists.
Please help, we need to add certain people into request participants once issue is created.
I refactor given code for scriptRunner. Try this:
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.issue.MutableIssue CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def userManager = ComponentAccessor.getUserUtil() def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_10001") def getUsersAsArray = { def users = ["ben", "steve"] ArrayList<ApplicationUser> userList = new ArrayList<ApplicationUser>() users.each { def user = userManager.getUserByName(it) if(user) { userList.add(user) } } return userList } MutableIssue myIssue = issue ArrayList<ApplicationUser> applicationUsers = getUsersAsArray() myIssue.setCustomFieldValue(requestParticipantsField, applicationUsers
Hi,
This script is fine there are no errors on script console now, but getting a warning against line 13Err.jpg
also when script runs. it gives me below error.
The following log information was produced by this execution. Use statements like:log.info("...") to record logging information.
2016-11-25 09:06:15,407 ERROR [workflow.ScriptWorkflowFunction]: ************************************************************************************* 2016-11-25 09:06:15,407 ERROR [workflow.ScriptWorkflowFunction]: Script function failed on issue: SS-672, actionId: 11, file: <inline script> java.lang.NullPointerException
i just thought it might be because the "Request Participant" field is locked.
any clues ?
Have you changed custom field name here:
def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_10001")
Yes, i have updated as
def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_17393")
17393 is field id
The problem with this script is that when they been copied the < and > been swapped to <" and >" in the code. Please see below codes that will work
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.issue.MutableIssue CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def userManager = ComponentAccessor.getUserUtil() def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_10001") def getUsersAsArray = { def users = ["ben", "steve"] ArrayList<ApplicationUser> userList = new ArrayList<ApplicationUser>() users.each { def user = userManager.getUserByName(it) if(user) { userList.add(user) } } return userList } MutableIssue myIssue = issue ArrayList<ApplicationUser> applicationUsers = getUsersAsArray() myIssue.setCustomFieldValue(requestParticipantsField, applicationUsers)
import com.atlassian.jira.component.ComponentAccessor import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.user.ApplicationUser import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.ComponentManager import com.atlassian.jira.issue.CustomFieldManager import com.atlassian.jira.issue.fields.CustomField CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager() def userManager = ComponentAccessor.getUserUtil() def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_17806") def getUsersAsArray = { def users = ["pravin.mori"] ArrayList<ApplicationUser> userList = new ArrayList<ApplicationUser>() users.each { def user = userManager.getUserByName(it) if(user) { userList.add(user) } } return userList } CustomField reporter = customFieldManager.getCustomFieldObjectByName('Reporter') if (issue.getCustomFieldValue(reporter) == "vivek.janjrukiya") { MutableIssue myIssue = issue ArrayList<ApplicationUser> applicationUsers = getUsersAsArray() myIssue.setCustomFieldValue(requestParticipantsField, applicationUsers) }
This code is working, please check.
import com.atlassian.jira.component.ComponentAccessorimport com.atlassian.jira.issue.CustomFieldManagerimport com.atlassian.jira.user.ApplicationUserimport com.atlassian.jira.issue.MutableIssueimport com.atlassian.jira.issue.util.IssueChangeHolder
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager()def userManager = ComponentAccessor.getUserUtil()def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_10000")def getUsersAsArray = {def users = ["user1", "user2"]ArrayList<ApplicationUser> userList = new ArrayList<ApplicationUser>()users.each {def user = userManager.getUserByName(it)if(user){ userList.add(user)}}return userList}
MutableIssue myIssue = issueArrayList<ApplicationUser> applicationUsers = getUsersAsArray()log.warn applicationUsers
IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
requestParticipantsField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(requestParticipantsField), applicationUsers),changeHolder)
It looks like you're new here. Sign in or register to get started.