Hi,
I'm new to Script Runner and don't know the syntax of the coding well yet. I have successfully created one scripted field which is calculating/getting a number value. I'd like to now look at that field and populate another field based on the number to be able to track on-time delivery metrics. So for example, if my number in my first field is negative, (<0) i'd like the second scripted field to prepopulate with the text string "early" or if the first field =0, my second field would populate as "on-time". >0 but < 21 would = "1-20 days late" etc.
I don't see much of a reference to how to set this up. Any help or direction much appreciated.
Here's what i've started with... but it's not recognizing my syntax and i don't know where to confirm how it should be.
import com.atlassian.jira.component.ComponentAccessor;
import com.atlassian.jira.issue.Issue;
import java.util.Date.*
def customFieldManager = ComponentAccessor.getCustomFieldManager();
def FieldObject= customFieldManager.getCustomFieldObject('customfield_12503');
if(issue.getCustomFieldValue(FieldObject)) {
def FieldObjectValue= issue.getCustomFieldValue(FieldObject) as Number;
if(FieldObjectValue = 0) {
return "on-time"
}
if(FieldObjectValue < 0) {
return "early"
}
At a glance, your code looks broadly ok.
There's a couple of neat tricks with scripted fields though. If you edit their scripts in-line, there is a basic syntax checker built in. So you'll get told if your code is not going to work.
Beneath the code entry box, there's also a preview option, where you fill in an issue to try the script against, repeatedly. So set up two test issues, one with your numeric field set to 42 and the other with -4 or something, then you can test for both cases.
Also, you might want to check that the output type is set to text, as that's what you are currently returning.
Hi Nic,
I agree, the syntax and issue preview are helpful. i've made some additional changes to the code and am really close... i think. I also do think i'm setting my output to text. Here's what i've got now and the error i'm getting.
Does anything jump out as being wrong? Am i missing a bracket or is something bigger not defined?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes you are missing closing bracket. I marked opening bracket in red.
However I think that actually "green" bracket is here by mistake as this part makes no sense now. If there is a bracket like that you would enter the first if and hit return right away. Both following if blocks won't ever be checked.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.