Calculated number field

Hi,

I am trying to add two custom fields and i am using below script,

<!-- @@Formula:

(issue.get("customfield_11907") != null ? issue.get("customfield_11907") : 0) +

(issue.get("customfield_11912") != null ? issue.get("customfield_11912") : 0)

 -->

Is there anything wrong in this?

Because the values in the fields are displaying in the screen but it is not adding.

For example:

customfield_11907 has value : 100

customfield_11912 has value : 40

addition of these fields : 10,040 (i am getting answers like this)

expected answer is 140

Can any1 please help.

 

Thanks,

Nandeesh

2 answers

1 accepted

This widget could not be displayed.

Hi Nandees,

 

here your code :

 

import com.atlassian.jira.issue.MutableIssue;
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.CustomFieldManager;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.customfields.option.Option;
CustomFieldManager customFieldManager = ComponentAccessor.getCustomFieldManager();
MutableIssue issue = issue;
CustomField cf1 = customFieldManager.getCustomFieldObject('customfield_11907');
CustomField cf2 = customFieldManager.getCustomFieldObject('customfield_11912');
Double value1 = issue.getCustomFieldValue(cf1) != null ? new Double(issue.getCustomFieldValue(cf1).toString()): new Double(0);
Double value2 = issue.getCustomFieldValue(cf2) != null ? (Double)issue.getCustomFieldValue(cf2): new Double(0);
return value1+value2;

Hope this helps,

Fabio

Hi Fabio, Great!! It worked. Thank you so much your help :) Thanks, Nandeesh

You're welcome :)

This widget could not be displayed.

Hi Nandeesh,

The reason for your getting 10,040 rather than 140 is that your initial values are being treated as strings and so when you use the + operation it concatenates the two values together giving you 10040 but then this is being displayed as a number.

See https://innovalog.atlassian.net/wiki/display/KB/Using+issue.get(%3Cfield_name%3E)+in+scripts for a more comprehensive explanation as to why.

The solution is to ensure that you treat the value returned in the formula as numbers not a string then the + operation will work fine.

Eg 

(issue.get("customfield_11907") != null ? (Integer.parseInt((String)issue.get("customfield_11907")) : 0) 

please note this is from memory and not tested.

 

Hope this helps 

Phill

Hi Phill, Its not working!!When i try with your example, its not showing any value. <!-- @@Formula: (issue.get("customfield_11907") != null ? (Integer.parseInt((String)issue.get("customfield_11907")) : 0) + (issue.get("customfield_11912") != null ? (Integer.parseInt((String)issue.get("customfield_11912")) : 0) -->

HI Nandeesh Can you confirm what custom field type your two fields (11907 and 11912) are. You may also like to try this format <!-- @@Formula: (issue.get("customfield_11907") != null ? (Integer.parseInt(issue.get("customfield_11907")) : 0) + (issue.get("customfield_11912") != null ? (Integer.parseInt(issue.get("customfield_11912")) : 0) -->

Hi Phill, No luck.. it dint work. 11907 - select list 11912 - number field Thanks, Nandeesh

Suggest an answer

Log in or Sign up to answer
Atlassian Summit 2018

Meet the community IRL

Atlassian Summit is an excellent opportunity for in-person support, training, and networking.

Learn more
Community showcase
Posted Wednesday in New to Jira

Are you planning to trial, or are currently trialling Jira Software? - We want to talk to you!

Hello! I'm Rayen, a product manager at Atlassian. My team and I are working hard to improve the trial experience for Jira Software Cloud. We are interested in   talking to 20 people planning t...

232 views 3 0
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you