Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Set Reporter as approval

Swarna Radha
Contributor
August 9, 2018

Hi,

I want to set reporter as approval but i am unable to do. 

Please code:

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.fields.CustomField
import com.atlassian.jira.component.ComponentAccessor
import org.apache.log4j.Category
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption

log.setLevel(org.apache.log4j.Level.DEBUG)


CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField CF = customFieldManager.getCustomFieldObjectByName("Approver (Business)");
def userManager = ComponentAccessor.getUserManager()
def reporter = issue.getReporter().getName() as String
log.debug("reporter: $reporter")

def user_tier2engineer = userManager.getUserByName(reporter)
issue.setCustomFieldValue(CF, user_tier2engineer);


def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

IssueManager issueManager=ComponentAccessor.getIssueManager();
issueManager.updateIssue(user,issue,EventDispatchOption.ISSUE_UPDATED,true);

Thanks Swarna

2 answers

1 accepted

1 vote
Answer accepted
Ivan Tovbin
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.
August 11, 2018

@Swarna Radha

Try this:

import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption

log.setLevel(org.apache.log4j.Level.DEBUG)


CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField CF = customFieldManager.getCustomFieldObjectByName("Approver (Business)");
def userList = new ArrayList();
userList.add(issue.getReporter());
log.debug("User list: ${userList.toString()}");
issue.setCustomFieldValue(CF, userList);
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
IssueManager issueManager=ComponentAccessor.getIssueManager();
issueManager.updateIssue(user,issue,EventDispatchOption.ISSUE_UPDATED,true);
Swarna Radha
Contributor
August 13, 2018

Hi Ivan,

The code is working :)

Thanks

Swarna

0 votes
Mark Markov
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.
August 10, 2018

Hello @Swarna Radha

Try this. getReporter returns ApplicationUser object, dont need userManager to retrieve user.

import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption

log.setLevel(org.apache.log4j.Level.DEBUG)


CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
CustomField CF = customFieldManager.getCustomFieldObjectByName("Approver (Business)");
def reporter = issue.getReporter()
log.debug("reporter: $reporter")
issue.setCustomFieldValue(CF, reporter);
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueManager issueManager=ComponentAccessor.getIssueManager();
issueManager.updateIssue(user,issue,EventDispatchOption.ISSUE_UPDATED,true);

Is this postfunction?

Swarna Radha
Contributor
August 10, 2018

Hi Mark,

 

It is a post function and it is in the last position. I am getting an error when i run the query above:

Please see:

2018-08-10 13:36:04,576 DEBUG [workflow.ScriptWorkflowFunction]: reporter: swarna(swarna)
2018-08-10 13:36:04,603 ERROR [workflow.ScriptWorkflowFunction]: *************************************************************************************
2018-08-10 13:36:04,604 ERROR [workflow.ScriptWorkflowFunction]: Script function failed on issue: CR-393, actionId: 21, file: <inline script>
java.lang.ClassCastException: com.atlassian.jira.user.DelegatingApplicationUser cannot be cast to java.util.Collection
 at com.atlassian.jira.issue.customfields.impl.AbstractMultiCFType.createValue(AbstractMultiCFType.java:39)
 at com.atlassian.jira.issue.fields.ImmutableCustomField.createValue(ImmutableCustomField.java:693)
 at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:410)
 at com.atlassian.jira.issue.fields.ImmutableCustomField.updateValue(ImmutableCustomField.java:396)
 at com.atlassian.jira.issue.managers.DefaultIssueManager.updateFieldValues(DefaultIssueManager.java:704)
 at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:669)
 at com.atlassian.jira.issue.managers.DefaultIssueManager.updateIssue(DefaultIssueManager.java:655)
 at com.atlassian.jira.issue.managers.RequestCachingIssueManager.updateIssue(RequestCachingIssueManager.java:214)
 at com.atlassian.jira.issue.IssueManager$updateIssue$1.call(Unknown Source)
 at Script374.run(Script374.groovy:17)

Thanks
Swarna

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events