How to assign custom field value to a single user picker?

Sonu Mathew January 19, 2018

I am trying to update the values of a few fields when an issue is edited in certain statuses. The text fields that I need to update are pretty straight forward and are getting updated. However I have a couple of single user pickers which I am unable to set. The source fields are database custom fields (using Power Database Fields). Below is the code I am currently using. Please help me understand where I am going wrong.

import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor

def issue               = event.issue as Issue;
def customFieldManager  = ComponentAccessor.getCustomFieldManager();
def issueStatus         = issue.getStatus().name;

if(issueStatus == 'status1' || issueStatus == 'status2')
{
    def userPicker1     = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Dev Engineer'};
    def userPicker2     = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Test Responsible'};
    def textField1      = customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Test Case'};
    
    def dbFieldValue1   = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Database Field 1'});
    def dbFieldValue2   = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Database Field 2'});
    def dbFieldValue3   = issue.getCustomFieldValue(customFieldManager.getCustomFieldObjects(event.issue).find {it.name == 'Database Field 3'});

    def changeHolder    = new DefaultIssueChangeHolder();
    
    userPicker1.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(userPicker1), dbFieldValue1),changeHolder);
    userPicker2.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(userPicker2), dbFieldValue2),changeHolder);
    textField1.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(textField1), dbFieldValue3),changeHolder);
}

We are using JIRA Software version 7.3.6.

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events