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
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()) }
Jonny,
This thread is kind of old, but I see that 'Automatic' is actually a value of -1. Is there a value for 'Unassigned' as well, should we have a need to actually default one or both of these selections using Behaviours?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.