Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

I want to automatically register a component representative in the user selector field

sm.park December 30, 2021

Hello
I'm going to use Scriptrunner's post function function.
When the status changes after the ticket is issued, I want to automatically register the user with the user picker by putting the person in charge of the component in the user picker.

Is this possible? below is the script.

 

package com.onresolve.jira.groovy.test.scriptfields.scripts
import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.user.ApplicationUser

def log = Logger.getLogger("com.acme.curvc")

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def componentManager = ComponentAccessor.projectComponentManager

def userCf = customFieldManager.getCustomFieldObject(12823L) // Developer
def component = issue.componentObjects.toList()
def leadUser = component.componentLead.username

log.debug("test : " + leadUser[0])


if(component.size() == 1){
issue.setCustomFieldValue(userCf, leadUser[0])
}
else if(component.size() > 1){
issue.setCustomFieldValue(userCf, leadUser[0])
}
else{
return "none component"

 

 

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Peter-Dave Sheehan
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.
December 31, 2021

This is absolutely possible, but you have to put it early in the post functions (before "Creates the issue originally").

Try it this way instead:

package com.onresolve.jira.groovy.test.scriptfields.scripts
import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Logger
import org.apache.log4j.Level
import com.atlassian.jira.user.ApplicationUser

def log = Logger.getLogger("com.acme.curvc")

def customFieldManager = ComponentAccessor.getCustomFieldManager()
def componentManager = ComponentAccessor.projectComponentManager

def userCf = customFieldManager.getCustomFieldObject(12823L) // Developer
def components = issue.components


if(components){
issue.setCustomFieldValue(userCf, components.first().componentLead)
if(components.size() == 1){
log.info "Single component selected: applied ${components.first().componentLead.name} to Developer field"
} else {
log.info "Multiple component selected: applied ${components.first().componentLead.name} to Developer field (lead for first component)"
}
}
log.info "No component selected"
}
sm.park January 2, 2022

@Peter-Dave Sheehan Thank you for your reply Peter.

finally I resolved it.

TAGS
AUG Leaders

Atlassian Community Events