Set Assignee based on customfield value on create post-function

Deleted user March 28, 2017

Hello, 

im trying to set the assignee based on customfeild value with below code:

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.util.IssueChangeHolder
import com.atlassian.jira.issue.MutableIssue
 
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager customFieldManager = componentManager.getCustomFieldManager()
IssueManager issueManager = componentManager.getIssueManager()
MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('AD-2')
String adjValue = issue.getCustomFieldValue(customFieldManager.getCustomFieldObject(11905));
def user = ComponentManager.instance.userUtil.getUserObject('customer.care')
if (adjValue >= "100")
	return issue.setAssignee(user)
				else adjValue

It throws no error but when i run in script console, the assignee is not changed, i've checked the project permission to ensure that set assign is also enable?

any suggestions?

Many thanks, 

Pon

1 answer

3 votes
Vasiliy Zverev
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.
March 28, 2017

Changes must be stored into DB. Into all postfucntion exept create one there is a postfunction to store changes to DB.

For create transition there are two options:

  1. add code to store chages
  2. add build-in postfunction to store chages

Here is rafactored code

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.UpdateIssueRequest

MutableIssue issue = ComponentAccessor.getIssueManager().getIssueObject('AD-2')

String adjValue = issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObject(11905));

if (adjValue >= "100")
    return issue.setAssignee(ComponentManager.instance.userUtil.getUserObject('customer.care'))
else
    adjValue

//it is requred to store changes into a DB
ComponentAccessor.getIssueManager().updateIssue(
        ComponentAccessor.getJiraAuthenticationContext().getUser(),
        issue,
        UpdateIssueRequest.builder().eventDispatchOption(EventDispatchOption.ISSUE_UPDATED).sendMail(false).build()
)
Deleted user March 28, 2017

Ahhh i always forget this! Thank you again Vasiliy!!

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events