Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,365,124
Community Members
 
Community Events
168
Community Groups

Set assignee using User Picker custom field value post-function, error with Capital letter

Hi all,

I read a lot about this script and I would like to report a little "problem", I think the problem is in the old Jira version. (my setup: Jira 6.4.14 and script-runner  3.1.4)

The problem is this:

if user has used CAPITAL LETTER for the username.

there is not a correct connection between user Id of issue and user (no avatar of user, no issue link in "Assigned to Me").

The solution are:

- change all username lettere to lower (e.g. username = AB -> abb and after abb -> ab)

- add .toLowerCase() after user.username (I don't know if this create other problem, but I try a lot and now works)

So the "final" script is this

import com.atlassian.jira.component.ComponentAccessor;

import com.atlassian.jira.user.ApplicationUser;

def customFieldManager = ComponentAccessor.getCustomFieldManager();

def cfvalue = customFieldManager.getCustomFieldObjectByName("name of your custom field");

def user = issue.getCustomFieldValue(cfvalue) as ApplicationUser;

if(user){
issue.setAssigneeId(user.username.toLowerCase())
}


If you try to print the value of User Picker where the username has Capital letter

log.error(User Name is ------- user)

log.error(User is ------- user.username)

the result are these:

User Name is-------AB(ab)
User is------- AB

 

but if I assign the issue to AB user using the normal form and print the value

log.error(User Name is ------- issue.getAssignee())

log.error(User is ------- isse.getAssigneeId())

the result are these:

User Name is-------ab
User is------- AB:1

 

and the last (and the problem) if you try to print the value of Assignee after the script (without tolowerCase())

log.error(User Name is ------- issue.getAssignee())

log.error(User is ------- isse.getAssigneeId())

the result are these:

User name is -------AB
User is-------com.atlassian.crowd.embedded.impl.ImmutableUser@177ff

and ye, that's it.

Regards,

Marco

 

1 comment

Hi,

Assuming your custom field is a user picker, here's how to set an assignee;

import com.atlassian.jira.component.ComponentAccessor

def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("fieldName")
def user = issue.getCustomFieldValue(cf)
if(user){
issue.setAssignee(user)
}

Comment

Log in or Sign up to comment