Hi
I'm trying to automatically add Request Participants to Service Desk ticket on creation.
I tried both SIL script and Groovy script in post function but nothing worked. The idea is I have 3 custom fields where customer may select up to 3 approvers for the ticket and I want to be able to add them to the ticket as Request Participants. Here is what I tried.
SIL version:
// Add approvers to request participants string approver1 = customfield_11600; string approver2 = customfield_11601; string approver3 = customfield_11602; string[] participants; //add approver1 if (!isNull(approver1)) { participants = arrayAddElement(participants, approver1); } //add approver2 if (!isNull(approver2)) { participants = arrayAddElement(participants,approver2); } //add approver3 if (!isNull(approver3)) { participants = arrayAddElement(participants,approver3); } //set request participants if (arraySize(participants) > 0) { customfield_12800 = participants; }
Groovy version (I tried adding only 1 approver in groovy version):
import com.atlassian.jira.issue.MutableIssue import com.atlassian.jira.issue.IssueManager import com.atlassian.jira.issue.index.IssueIndexManager def customFieldManager = ComponentAccessor.getCustomFieldManager() def requestParticipantsField = customFieldManager.getCustomFieldObject("customfield_12800") def approver1Field = customFieldManager.getCustomFieldObject("customfield_11600") ArrayList<ApplicationUser> applicationUsers = new ArrayList<ApplicationUser>() applicationUsers.add(issue.getCustomFieldValue(approver1Field)) issue.setCustomFieldValue(requestParticipantsField, applicationUsers)
Please point what I am doing wrong here. Working code example is highly appreciated.
What actually worked for me is the following groovy script
ArrayList allApprovers = new ArrayList(); allApprovers.add(approver1User); allApprovers.add(approver2User); allApprovers.add(approver3User); def customFieldManager = ComponentAccessor.getCustomFieldManager(); def changeHolder = new DefaultIssueChangeHolder(); def requestParticipantsField = customFieldManager.getCustomFieldObjects(issue).find {it.name == 'Request participants'}; requestParticipantsField.updateValue(null, issue, new ModifiedValue(null, allApprovers), changeHolder); issue.store();
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.