Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Scripted field error

Sergio Palacio October 26, 2017

I have created a numeric scripted field to obtain the difference in minutes from the update field and today date.

the code that I used is the following:


import org.joda.time.DateTime
import groovy.time.*

Date updatedate
Date todaydate
updatedate = new DateTime(issue.updated).toDate()
todaydate = new DateTime().toDate();

def milsec = todaydate.getTime() - updatedate.getTime() as double
milsec = milsec / 60000
return milsec.round()


the searcher is numeric. and the template is custom.

$numberTool.format('integer',$value)

 

in the preview mode  I'm getting the correct value, but qhen I check it in the issue navigator I'm viewing random and incorrect values when I refresh the browser.

ANyone have an experiencie doing this type of customization?
thanks in advance.

2 answers

Suggest an answer

Log in or Sign up to answer
1 vote
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
October 27, 2017

If you tried to reindex in your script, you'd throw the system into a recursive loop - it would try to reindex itself during a reindex during a reindex during a reindex...

I'm afraid your field idea is not going to work.  As Stephen says, the value of a scripted field is calculated and stored.  Your field is effectively a live clock - to get the right answer from it, you're going to need to calculate the value every second, for every issue.  That's simply never going to work.

The only sane way to do this would be to implement something in javascript, so the client browser does the calculation when necessary.  But it wouldn't be a real field, it would not be searchable.

What are you trying to achieve by calculating this?

Sergio Palacio October 30, 2017

Hi the idea is sent notifications after two days of inactivity in the issues.  So I want to to count the inactivity days ignoring the weekends.

in the code example I trying to do it counting minutes to test the notifications.

then using escalation service I move the issue to an autotransition when a JQL query is true. Using a postfunction to send the notifications

thanks.

0 votes
Stephen Cheesley _Adaptavist_
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.
October 27, 2017

Hi Sergio,

When you say the values are random / incorrect, do you mean that they are behind what you would expect to see?

Script field values are calculated and stored in the index at the time that the issue is indexed, e.g. when it is modified or transitioned, or when you do a full re-index. This would explain why you are seeing different values in issue navigator because those results come from a search (I presume you mean in the issue search and not in the board).

You can work around this issue with a listener (documented here)

I hope this helps!

Steve

Sergio Palacio October 27, 2017

Thanks for your reply.  What if I try to reindex the issue at the end of scripted field code?


Sergio Palacio October 27, 2017

So. What type of listener I need to use. To calculate the difference between update date and today?

thanks

TAGS
AUG Leaders

Atlassian Community Events