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
Use .assigneeId rather than .assignee
@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; }
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.