Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,360,004
Community Members
 
Community Events
168
Community Groups

How to change "Original Estimate" field after the first worklog entry has been entered?

Hi,

I have written the following code to change the "Original Value" field.

IssueManager issueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = issueManager.getIssueObject("TASKTEST-313")
ApplicationUser user =  ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();

Long val = 3600 * 4

issue.setOriginalEstimate(val)
issueManager.updateIssue(user,issue, EventDispatchOption.ISSUE_UPDATED,false)

 

The code above works fine before any worklog entry is entered. However, after the first worklog entry has been entered, the value of "Original Estimate" is not changed by running the code above although it is possible to change the value of "Original Estimate" via the GUI Edit dialog window

Selezione_057.png

What am I missing?


Additional Information


I am able to change the value of "Original Estimate" by using the method store() of MutableIssue which is however deprecated so I would prefer not to use it.

IssueManager issueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = issueManager.getIssueObject("TASKTEST-314")
ApplicationUser user =  ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();

Long val = 3600 * 4

issue.setOriginalEstimate(val)
issue.store()

 

Further Information

I am also able to change the "Original Estimate" value by using IssueService as below. However, I cannot yet understand why IssueManager.update does not work. 

IssueManager issueManager = ComponentAccessor.getIssueManager()
MutableIssue issue = issueManager.getIssueObject("TASKTEST-314")
ApplicationUser user =  ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser();
IssueService issueService = ComponentAccessor.getIssueService()

Long val = 3600 * 4


IssueInputParameters inputParameters = issueService.newIssueInputParameters()
inputParameters.setOriginalEstimate((Long)(val/60))
IssueService.UpdateValidationResult validationResult = issueService.validateUpdate(user,issue.id,inputParameters)
issueService.update(user, validationResult)

2 answers

0 votes

That's pretty normal, in my experience. IssueService is, by its own description, better suited to making sure all the magic happens.

This services methods will make sure that when dealing with Issue's that all of JIRA's business rules are enforced. This means that permissions and data validation will be checked, proper events will be fired, and notifications will be triggered.

 

I'm guessing that derived fields like remainingEstimate, and possibly even Original Estimate itself need some of that business logic sauce behind the scenes, at least in certain contexts.

0 votes
JamieA Rising Star Dec 09, 2016

But it works using IssueService, so does it matter?

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira

Online AMA this week: Your project management questions answered by Jira Design Lead James Rotanson

We know that great teams require amazing project management chops. It's no surprise that great teams who use Jira have strong project managers, effective workflows, and secrets that bring planning ...

180 views 1 6
Read article

Atlassian Community Events