Hello,
I have a requirement where a custom field displays the sum of other 4 fields values. However if any of those four are blank/null then the total should remain blank/null but instead the field is still displaying the value of other fields which were not null. Below is the groovy script, kindly help.
import com.atlassian.jira.ComponentAccessor
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.fields.CustomField
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.util.DefaultIssueChangeHolder;
import com.atlassian.jira.issue.ModifiedValue;
//evaluate(new File("/path/to/your/script/root/HelloWorld.groovy")) // open and evaluate file (change the file path to your helper class)
def score9Field = 0
def score10Field = 0
def score11Field = 0
def score12Field = 0
IssueManager im = ComponentAccessor.getIssueManager()
CustomFieldManager cfm = ComponentAccessor.getCustomFieldManager()
//MJE 04-13-2020These need to stay null if null
if(issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL RG Points"))!=null)
{ score9Field = (double)issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL RG Points"))} else {score9Field = null }
if(issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL Wi-Fi Points"))!=null)
{ score10Field = (double)issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL Wi-Fi Points"))} else {score10Field = null }
if(issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL RG Auto Points"))!=null)
{ score11Field = (double)issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL RG Auto Points"))} else {score11Field = null }
if(issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL Wi-Fi Auto Points"))!=null)
{ score12Field = (double)issue.getCustomFieldValue(cfm.getCustomFieldObjectByName("LCL Wi-Fi Auto Points"))} else {score12Field = null }
//
double s9
if(score9Field!=null) { s9 = score9Field}
double s10
if(score10Field!=null) { s10 = score10Field}
double s11
if(score11Field!=null) { s11 = score11Field}
double s12
if(score12Field!=null) { s12 = score12Field}
CustomField lclscoreField = cfm.getCustomFieldObjectByName("LCL Total Points")
double lclsum = 0
if(score9Field!=null && score10Field!=null &&score11Field!=null && score12Field!=null)
{lclsum = s9 + s10 + s11 + s12 }
else
{lclsum = double.NaN}
lclscoreField.updateValue(null, issue, new ModifiedValue(issue.getCustomFieldValue(lclscoreField), lclsum), new DefaultIssueChangeHolder());
return lclsum
Thank you.