Error in passing component lead to the Assignee?

Vineet Kumar March 29, 2017

Hi, On a certain condition i would like to copy the value of the component lead (of component selected) to the Assignee field via custom groovy script which i have placed on a create issue transition but i am getting the below error on the script runner compiler, Can someone please help me to get the proper code to pass the users between these two fields?

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.user.DelegatingApplicationUser;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.util.IssueChangeHolder;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.user.util.UserManager;
import com.atlassian.crowd.embedded.api.User;

def projectComponentManager = ComponentAccessor.getProjectComponentManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager();
def cfQEAssignee = customFieldManager.getCustomFieldObjectByName("QE Assignee");
def QEAssigneeValue = issue.getCustomFieldValue(cfQEAssignee);


if(QEAssigneeValue == null){
	
	issue.assignee = issue.getComponentObjects().getAt(0)?.getLead();
}

 

Exception.png

1 answer

2 votes
JamieA
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.
March 29, 2017

Use .assigneeId rather than .assignee

Vineet Kumar March 29, 2017

@Jamie Echlin (Adaptavist), Thanks for the quick response. 

Proceeding forward, I am not able to copy the value from a user-picker field to the assignee. Can you please help me with that.

import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.user.DelegatingApplicationUser;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.util.IssueChangeHolder;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.user.util.UserManager;
import com.atlassian.crowd.embedded.api.User;
def projectComponentManager = ComponentAccessor.getProjectComponentManager()
def customFieldManager = ComponentAccessor.getCustomFieldManager();
def cfQEAssignee = customFieldManager.getCustomFieldObjectByName("QE Assignee");
def QEAssigneeValue = issue.getCustomFieldValue(cfQEAssignee);
if(QEAssigneeValue == null){
	
	issue.assigneeId = issue.getComponentObjects().getAt(0)?.getLead();
}
if(QEAssigneeValue != null){
	issue.assigneeId = QEAssigneeValue;
	
}
Jonny Carter
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.
March 29, 2017

Since you're setting the assigneeId, you need to use the user key, not a user object.

issue.assigneeId = issue.componentObjects[0]?.lead?.key

...then in the next block

issue.assigneeId = QEAssigneeValue.key

Suggest an answer

Log in or Sign up to answer