Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

How to set assignee using Listener for "Issue Updated" event

Shrikant Pandurang Mandlik June 5, 2023

Hello,

Can you please give me script for Listener by which I can set assignee for "Issue Updated" Event. In post-function we can directly use issue.setAssignee() but the same function is not applicable in Listener.

Thanks in Advance!

Best Regards,
Shrikant Mandlik

1 answer

0 votes
YogeshKR
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 5, 2023

Hello @Shrikant Pandurang Mandlik

You may need to do something like this, 

IssueManager issueManager = ComponentAccessor.getIssueManager()
UserManager userManager = ComponentAccessor.getUserManager()
def issueService = ComponentAccessor.getIssueService()

def issue = event.issue

log.warn userManager.allUsers

def user = userManager.getUserByName("Assigee_Name")
def validateAssignResult = issueService.validateAssign(user, issue.id, "Assigee_Name")
issueService.assign(user, validateAssignResult)

Kindly check and let me know if it is working fine! 

Regards,
Yogesh

Shrikant Pandurang Mandlik June 12, 2023

Hi @YogeshKR ,

For each case in Script, I need different user assigned for each selection and I am not able find the appropriate solution. Can you please recorrect this script or maybe just provide me lines that can be used in the Cases.

My script is given below :

 

import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.user.util.UserManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder



UserManager userManager =   ComponentAccessor.getUserManager();
Issue issue = event.getIssue();
MutableIssue mutableIssue = null;


def issueManager = ComponentAccessor.getIssueManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager()
//def cField = customFieldManager.getCustomFieldObjectsByName("Team:Task")
def cField = customFieldManager.getCustomFieldObject("customfield_29500")
log.warn(cField)
//log.warn(cField2)

def currentIssue = issueManager.getIssueObject(issue.getKey()) as Issue
log.warn(issue)

Map temp=currentIssue.getCustomFieldValue(cField) as Map
log.warn(temp)
log.warn(temp.get(0).toString())
log.warn(temp.get(1).toString())
def cFieldValue = temp.get(null).toString()
def secondValue=temp.get('1').toString()

def team = customFieldManager.getCustomFieldObject("customfield_28112")



def Cobolepic = issueManager.getIssueObject("GOXFUNC-5611")
log.warn(Cobolepic)
def Backdeskepic = issueManager.getIssueObject("GOXFUNC-6635")
def Javaepic = issueManager.getIssueObject("GOXFUNC-6633")
def KMToolsepic = issueManager.getIssueObject("GOXFUNC-6634")
def UCDepic = issueManager.getIssueObject("GOXFUNC-6488")
def ProductionLineepic = issueManager.getIssueObject("GOXFUNC-5435")
def issueService = ComponentAccessor.getIssueService()

def epicLink = customFieldManager.getCustomFieldObjects(currentIssue).find { it.name == 'Epic Link' }



def CobolTeam=ComponentAccessor.userManager.getUserByName("x-cteam")
def BasisTeam= ComponentAccessor.userManager.getUserByName("x-bteam")
def JavaTeam=ComponentAccessor.userManager.getUserByName("x-jteam")
//def KMToolsTeam=ComponentAccessor.userManager.getUserByName("x-kteam")
def UCDTeam=ComponentAccessor.userManager.getUserByName("x-uteam")
def ProductionLineTeam=ComponentAccessor.userManager.getUserByName("x-pteam")

switch(cFieldValue){
   
    case "COBOL/DBA/Mainframe Team":
   
 //   issue.setAssignee(CobolTeam)
    team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "COBOL/DBA/Mainframe Team"), new DefaultIssueChangeHolder())
    epicLink.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(epicLink),Cobolepic),new DefaultIssueChangeHolder())
    def user = userManager.getUserByName("x-cteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-cteam")
    break;

   
    break
     
   
    case "UCD Team":
 //   issue.setAssignee(UCDTeam)
  //      mutableIssue.setAssignee(UCDTeam)
        team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "UCD Team"), new DefaultIssueChangeHolder())
    epicLink.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(epicLink),UCDepic),new DefaultIssueChangeHolder())
    def user = userManager.getUserByName("x-uteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-uteam")
    break;
   
   
    case "Java Team":
 //   issue.setAssignee(JavaTeam)
// mutableIssue.setAssignee(JavaTeam)
        team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "Java Team"), new DefaultIssueChangeHolder())
        epicLink.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(epicLink),Javaepic),new DefaultIssueChangeHolder())
        def user = userManager.getUserByName("x-jteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-jteam")
    break;
   
    case "BASIS-Team":
//    issue.setAssignee(BasisTeam)
 //   issue.setPriorityId("11201")
 //mutableIssue.setAssignee(BasisTeam)
    team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "Backdesk Team"), new DefaultIssueChangeHolder())
    epicLink.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(epicLink),Backdeskepic),new DefaultIssueChangeHolder())
    def user = userManager.getUserByName("x-bteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-bteam")
    break;
/*    
    case "KM-Tools Team":
    issue.setAssignee(KMToolsTeam)
    issue.setPriorityId("11201")
    team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "KM-Tools Team"), new DefaultIssueChangeHolder())
    epicLink.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(epicLink),KMToolsepic),new DefaultIssueChangeHolder())
*/
    break;
   
    case "PL/Infra/KM":
  //  issue.setAssignee(ProductionLineTeam)
      ProductionLineTeam == issue.assignee
    team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "Production Line Team"), new DefaultIssueChangeHolder())
    epicLink.updateValue(null, currentIssue, new ModifiedValue(currentIssue.getCustomFieldValue(epicLink),ProductionLineepic),new DefaultIssueChangeHolder())
    def user = userManager.getUserByName("x-pteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-pteam")
    break;
   
    case "Others":
  //  issue.setAssignee(ProductionLineTeam)
  ProductionLineTeam == issue.assignee
      team.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(team), "Other"), new DefaultIssueChangeHolder())
      def user = userManager.getUserByName("x-pteam")
    def validateAssignResult = issueService.validateAssign(user, issue.id, "x-pteam")
               break;
   
}
   
Shrikant Pandurang Mandlik June 20, 2023

Hello @YogeshKR ,

Any Update from your side. It would really help me.

Thanks in advance!

 

Best Regards,

Shrikant

Suggest an answer

Log in or Sign up to answer