It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

trying get user from a customfield user picker using groovy script

I am trying to get the user from customfield using groovy but its not working .Please help

Issue issue
UserUtil userUtil = ComponentAccessor.userUtil
def customField = ComponentAccessor.getComponent(CustomFieldManager).getCustomFieldObject("customfield_12202")
def userName = customField.getValueFromIssue(issue)
def user = userUtil.getUserByName(userName).getDirectoryUser()
log.info "check this ${user}\n"

Where am i making the mistake ?

1 answer

0 votes
nic Community Leader Jun 28, 2017

Assuming customfield_12202 is a user-picker, then your code will have a user object in the variable userName, not just a string, and then you dont need  the "def user" line to do any look up.

I'd suggest

Issue issue
UserUtil userUtil = ComponentAccessor.userUtil
def customField = ComponentAccessor.getComponent(CustomFieldManager).getCustomFieldObject("customfield_12202")
def myUser = customField.getValueFromIssue(issue)
log.info "check this user: " + myUser.getUserName() 

Hi Nic,

I tried that but i am still getting the same error.i put the below code in a workflow postfunction just to test whether i am getting the value or not in the logs.

yes 

customfield_12202 is a user picker .
2017-06-28 15:03:06,837 atlassian-scheduler-quartz1.local_Worker-2 ERROR alenka     [scriptrunner.jira.workflow.ScriptWorkflowFunction] Script 
function failed on issue: JUA-12, actionId: 71, file: <inline script>
java.lang.NullPointerException
        at com.atlassian.jira.issue.customfields.impl.AbstractSingleFieldType.getValueFromIssue(AbstractSingleFieldType.java:79)
        at com.atlassian.jira.issue.fields.CustomFieldImpl.getValue(CustomFieldI
mpl.java:454)
        at com.atlassian.jira.issue.fields.CustomFieldImpl.getValueFromIssue(CustomFieldImpl.java:1467)
        at com.atlassian.jira.issue.fields.renderer.RenderableField$getValueFromIssue$0.call(Unknown Source)
        at Script272.run(Script272.groovy:17)

code i used

Issue issue
UserUtil userUtil = ComponentAccessor.userUtil
def customField = ComponentAccessor.getComponent(CustomFieldManager).getCustomFieldObject("customfield_12202")
def myUser = customField.getValueFromIssue(issue)
log.info "check this user: " + myUser

 

nic Community Leader Jun 29, 2017

I've just realised something...

You are on JIRA 7.3 or 7.4 aren't you?  My code is for 7.2

no I am trying to get it for 6.4 and also 7.1

 

Abyakta

Try this:

 
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.user.ApplicationUser;


def customFieldManager = ComponentAccessor.getCustomFieldManager()
def devOwner = customFieldManager.getCustomFieldObjectByName("UserPicker CF")

String username = issue.getCustomFieldValue(devOwner).name
ApplicationUser user = ComponentAccessor.getUserManager().getUserByName(username);


log.error "Name: " + user.getDisplayName()
log.error "Username: " + user.name

Suggest an answer

Log in or Sign up to answer
Community showcase
Published in Marketplace Apps & Integrations

Marketplace Spotlight: Manage your assets with asset management apps

  The role of IT professionals has become increasingly difficult over the last decade. Our organizations work in an increasingly software-powered world and IT professionals are expected to not...

316 views 3 9
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you