Custom script post-function does not work

Louisa Pabst July 20, 2015

Hi!

I want to set a customfield value based on another's field selection. I will copy the first letter of the selcted option of the customfield "Time to Benefit" (it's a number). Further, i want to calculate with this number later one, that's why I change the string to a double.

def cf = issue.getCustomFieldValue(componentManager.getCustomFieldManager().getCustomFieldObjectByName("Time to Benefit").substring(0, 1).toDouble());
def cd = issue.getCustomFieldValue(componentManager.getCustomFieldManager().getCustomFieldObjectByName("Value"));
issue.setCustomFieldValue(cd, cf);

 

Louisa

3 answers

1 accepted

0 votes
Answer accepted
Louisa Pabst July 21, 2015

Hi,

now it works:

def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Customfield");
def cd = DOuble.valueOf((issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Value"))).getValue().substring(0, 1));
issue.setCustomFieldValue(cf, cd);

 Thank you very much for your help!!

 

Best regards,

Louisa

3 votes
Vijay Khacharia
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.
July 20, 2015

Hi Louisa,

Few things are not right here.

def cf = Double.valueOf(((Option) issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Time to Benefit"))).getValue().substring(0, 1));

Above line gives you the double value of the first letter of field "Time to Benifit"

def cd = issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Value"));

This gives you the value of field "Value"

issue.setCustomFieldValue(cd, cf);

This doesnt work as the setCustomFieldValue takes two arguments, CustomField and value for customfield, and in your case both arguments are values to some fields.

Regards,

Vijay

0 votes
Louisa Pabst July 21, 2015

Hi Vijay,

Thank you for your fast response!

The following code works:

def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Customfield");
issue.setCustomFieldValue(cf, 3 as Double);

 However, your first suggested line to get the first character of the selected option and convert it into an double does not work. Do you see any mistakes i made?

That's how I implemented your code:

def cf = ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Customfield");
def cd = Double.valueOf(((Option) issue.getCustomFieldValue(ComponentAccessor.getCustomFieldManager().getCustomFieldObjectByName("Value"))).getValue().substring(0, 1));
issue.setCustomFieldValue(cf, cd);

 

Best Regards,

Louisa

Vijay Khacharia
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.
July 21, 2015

Good to know it works. Sorry i missed the notification and saw your reply now.

Suggest an answer

Log in or Sign up to answer