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

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

Marco Campeotto August 31, 2018

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

Comment

Log in or Sign up to comment
Ivan Tovbin
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.
August 31, 2018

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)
}
TAGS
AUG Leaders

Atlassian Community Events