Assignee field not updated on form when using Behavior Script

I am using a behavior to set the assignee field to the current user if it is not set on transition screens.  Per logging, the value is retreived and set, however the value is not reflected on the form.

Any thoughts?

BEHAVIOR SCRIPT (on Assignee field):

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.user.ApplicationUser
import com.onresolve.jira.groovy.user.FieldBehaviours
import com.onresolve.jira.groovy.user.FormField
import static com.atlassian.jira.issue.IssueFieldConstants.*
import groovy.transform.BaseScript

@BaseScript FieldBehaviours fieldBehaviours
log.debug("-- Starting behavior script to set assignee when not provided")
log.debug("Form Value " + getFieldByName("Assignee").getValue())

if (getFieldByName("Assignee").getValue() == null) {
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser().name
log.debug("Setting assignee in TransitionForm to currentUser: " + currentUser)

getFieldByName("Assignee").setFormValue(currentUser)
log.debug("Form Value after setting " + getFieldByName("Assignee").getValue())

}

 

DEBUG:

2017-05-02 [c.o.j.groovy.user.FieldBehaviours] -- Starting behavior script to set assignee when not provided
2017-05-02 [c.o.j.groovy.user.FieldBehaviours] Form Value null
2017-05-02 [c.o.j.groovy.user.FieldBehaviours] Setting assignee in TransitionForm to currentUser: jodi.avery@company.com
2017-05-02 [c.o.j.groovy.user.FieldBehaviours] Form Value after setting jodi.avery@company.com

2 answers

1 accepted

You're really close. Basically, you need to do two things:

1) Use the IssueFieldConstants that you imported by calling to the constant ASSIGNEE, rather than "Assignee", which isn't correct.

2) Account for the case where assignee could equal -1, which is the value for the default "Automatic" assignee.

import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.jira.groovy.user.FieldBehaviours
import groovy.transform.BaseScript

import static com.atlassian.jira.issue.IssueFieldConstants.ASSIGNEE

@BaseScript FieldBehaviours fieldBehaviours
log.debug("-- Starting behavior script to set assignee when not provided")
def assigneeField = getFieldById(ASSIGNEE)
log.debug("Form Value " + assigneeField.getValue())
if (assigneeField.getValue() == "-1" || assigneeField.getValue() == null) {
    def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser().name
    log.debug("Setting assignee in TransitionForm to currentUser: " + currentUser)
    assigneeField.setFormValue(currentUser)
    log.debug("Form Value after setting " + assigneeField.getValue())
}

Hi Jodi,

Try something like 

getFieldById(ASSIGNEE).setFormValue("anuser")

This will set the assignee to the user with username anuser.

Actually try to use the id instead of the name for system fields. A good way to find the id for a system field is from IssueFieldConstants

And if you use an IDEAto write your scripts you can use it like 

import com.onresolve.jira.groovy.user.FieldBehaviours
import static com.atlassian.jira.issue.IssueFieldConstants.*

import groovy.transform.BaseScript

@BaseScript FieldBehaviours fieldBehaviours

getFieldById(ASSIGNEE).setFormValue("anuser")

Hope that helps, 

Thanos

Suggest an answer

Log in or Join to answer
Community showcase
Sarah Schuster
Posted Jan 29, 2018 in Jira

What are common themes you've seen across successful & failed Jira Software implementations?

Hey everyone! My name is Sarah Schuster, and I'm a Customer Success Manager in Atlassian specializing in Jira Software Cloud. Over the next few weeks I will be posting discussion topics (8 total) to ...

2,803 views 11 18
Join discussion

Atlassian User Groups

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

Find a group

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

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot