Set Assignee basing on other custom field is not working correctly

Ma Hao January 28, 2015

Hi,

I am using behaviours plugin to set assignee during editing, here is my code:

FormField ass = getFieldById("assignee")
FormField formCurrent = getFieldById(getFieldChanged())
currentValue = formCurrent.getValue()
 if(null != currentValue){
    ass.setFormValue("admin") 
      System.out.println("set admin ");
 }else {
    ass.setFormValue("cc5") 
     System.out.println("set cc5 ");
}

 

My problem is: this script is only executed once, for a instance, when i click edit, script identify my field value is null, then set assignee as "cc5", but after i change my filed value, script never be triggered again.

Meanwhile, "description" , " summary" are modified automatically and dynamically basing on my field value i changed.

 

Why this problem is happening on assignee field only?

JIRA: 6.3.11

Script runner plugin: 3.0.7

1 answer

0 votes
Mayur Supare September 8, 2016

Hi Ma Hao,

Instead of behaviour script you can use a post function and apply it on the transition.

we can set assignee depends upon user picker custom field.

i have used this script for JIRA 6.3.11

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.MutableIssue
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.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.fields.layout.field.FieldLayoutItem;
import com.atlassian.jira.issue.ModifiedValue;
import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.user.util.UserUtil;
import com.atlassian.jira.user.ApplicationUsers.*;
import com.atlassian.jira.user.util.UserUtil;
import com.atlassian.jira.issue.index.IssueIndexManager;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.user.util.UserManager;
import com.atlassian.jira.user.ApplicationUsers;
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.comments.CommentManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.util.ImportUtils
import com.atlassian.jira.user.util.DefaultUserManager
import com.atlassian.crowd.embedded.api.User

 

 

ComponentManager componentManager = ComponentManager.getInstance()
IssueManager issueManager = ComponentAccessor.getIssueManager()

//MutableIssue myIssue = issueManager.getIssueObject("PP-1")

MutableIssue myIssue = issue
Issue issue = issue;
log.error("----MY ISSUE KEY IS------"+myIssue)


CustomFieldManager customFieldManager = ComponentManager.getInstance().getCustomFieldManager();
/*def user_name = customFieldManager.getCustomFieldObjectByName("Line Manager");
def user1=myIssue.getCustomFieldValue(user_name);
log.error("----------- USer Name Is-------"+user1)
*/

def cfQAVerifier = customFieldManager.getCustomFieldObjectByName("Line Manager");

String us =myIssue.getCustomFieldValue(cfQAVerifier).name;
log.error("-------- User name is--------"+us);
log.error("----------Assignee Set----"+myIssue.setAssigneeId(us));

//UserManager userManager = UserManager.getInstance();
User ud=ComponentManager.getInstance().getUserUtil().getUser(us)
log.error("--------- USER NAME IS ------"+ud)

myIssue.setAssignee(ud);
myIssue.store();

please used this and let me know wheather its working or not

 

Regards,

Mayur

 

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events