Automatically Increment Custom Field on Transition

Michael Swansegar January 16, 2018

Greetings.  I have looked around and found pieces of code but no real solution.  I don't care if it is scriptrunner or not but I am open to suggestions.

In the workflow I want to add a post function to a few of the transitions that go to a number custom field and increase it by 1.  So if it was blank before it becomes 1.  if it is 3 it becomes 4.

 

This seems rather simple but I am hitting my head on the wall of what to do.  I am on JIRA 7.6 and ScriptRunner 5.5.2 .  Again, open to suggestions.

2 answers

1 accepted

1 vote
Answer accepted
Michael Swansegar January 18, 2018

That was outdated, this is actual working code with code comments!

 

 

import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.ModifiedValue;

//Update "Churn Number" to the name of your custom field.
String customFieldName = "Churn Number";
DefaultIssueChangeHolder changeHolder = new DefaultIssueChangeHolder();
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();


//Update "Churn Number" to the name of your custom field.
CustomField cf = customFieldManager.getCustomFieldObjectByName("Churn Number");

//NOTES: If the current value is 0 use 0 not null. If it is a real number use the real number.
def currValue = (Double)cf.getValue(issue) ?: 0
def newValue = currValue+1;
cf.updateValue(null, issue, new ModifiedValue(currValue,newValue), changeHolder);

J D February 1, 2018

Do you have a script that works on Jira Cloud? When I put that code in it shows errors for all the import statements and fails when the transition occurs.

Screen Shot 2018-02-01 at 10.29.18 AM.png

Like laralg likes this
Jonathan Down February 7, 2018

Figured it out in case anyone else has the same issue. This is the script:

def currValue = (Double)issueInput.fields.customfield_10065 ?: 0 issueInput.fields.customfield_10065 = currValue + 1.0

You can get the field ID from the URL when you edit the field.

0 votes
Alexey Matveev
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.
January 17, 2018

Suggest an answer

Log in or Sign up to answer