Forums

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

Fire update Event using scriptrunner

Dar Kronenblum
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.
November 16, 2016

Hi 

I'm trying to write a script that update issue custom field

the script is working and the custom field is indeed updated but there is no indication of the issue changed event in the history

any idea why is that?

thanks

Dar

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.ModifiedValue
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.issue.util.IssueChangeHolder
import com.atlassian.jira.event.issue.IssueEvent
import com.atlassian.jira.event.type.EventDispatchOption;
import com.atlassian.jira.security.JiraAuthenticationContext
IssueManager issueManager = ComponentAccessor.getOSGiComponentInstanceOfType(IssueManager.class);
def cfManager = ComponentAccessor.getCustomFieldManager(); 
Issue issue = issueManager.getIssueObject("TMP-8136");
IssueEvent event;
MutableIssue iss=issue
def currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueChangeHolder changeHolder = new DefaultIssueChangeHolder();           
def Cf=cfManager.getCustomFieldObject('customfield_10801');    
Double num=5
Cf.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(Cf),num ), changeHolder);
ComponentAccessor.getIssueManager().updateIssue(currentUser, iss, EventDispatchOption.ISSUE_UPDATED, false);

1 answer

1 accepted

2 votes
Answer accepted
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.
November 16, 2016

Note that you update value for iss, but store changes for issue.

I also modified your code, use it if you like this:

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.event.type.EventDispatchOption;

IssueManager issueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = issueManager.getIssueObject("TMP-8136");

issue.setCustomFieldValue(
        ComponentAccessor.getCustomFieldManager().getCustomFieldObject('customfield_10801')
        , 5)

ComponentAccessor.getIssueManager().updateIssue(
        ComponentAccessor.getJiraAuthenticationContext().getUser().getDirectoryUser()
        , issue
        , EventDispatchOption.ISSUE_UPDATED
        , false);
JamieA
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.
November 17, 2016

Should work fine but the more modern approach is to use IssueService to do an issue update.

Also, the code above is for JIRA 6. On JIRA 7, remove the ".getDirectoryUser()"

Dar Kronenblum
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.
November 19, 2016

Thank you both!! it works great!!

Suggest an answer

Log in or Sign up to answer
TAGS
atlassian, loom, loom for training, loom for teaching, video training, async learning, online education, screen recording, loom tutorials, loom use cases, atlassian learning, team training tools, instructional video, virtual training tools

🛗 Elevate Your Training and Enablement with Loom

Join us June 26, 11am PT for a webinar with Atlassian Champion Robert Hean & Loom’s Brittany Soinski. Hear tips, stories, and get your burning questions answered. Learn how Loom makes training and enablement easier. Don’t miss it!

Register today
AUG Leaders

Atlassian Community Events