Hi Guys,
I have two date fields Target Start & Target End of date type, I need to find the difference between these two dates & put the difference in third field Days which is of text type.
I am using below code to do that, however, its not working. Can someone please take a look if I am doing something wrong or missing something ?
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
import java.time.temporal.ChronoUnit
def Days = getFieldById("customfield_xxxxxx")
// Get the required component
def customFieldManager = ComponentAccessor.customFieldManager
// The name of the lower date custom field
final String lowerDateCustomFieldName = "Target start"
// The name of the higher date custom field
final String higherDateCustomFieldName = "Target end"
// Get the custom field objects
def lowerDateCustomField = customFieldManager.getCustomFieldObjects(issue).find { it.name == lowerDateCustomFieldName }
def higherDateCustomField = customFieldManager.getCustomFieldObjects(issue).find { it.name == higherDateCustomFieldName }
if (!lowerDateCustomField || !higherDateCustomField) {
log.info "Could not find one ore more of the provided custom fields"
return null
}
// Get the date values from both issues
def lowerDateValue = issue.getCustomFieldValue(lowerDateCustomField) as Timestamp
def higherDateValue = issue.getCustomFieldValue(higherDateCustomField) as Timestamp
// Transform both values to instants
def lowerDateInstant = lowerDateValue?.toInstant()
def higherDateInstant = higherDateValue?.toInstant()
// Change the chrono unit to obtain the difference in other time unit.
final chronoUnit = ChronoUnit.DAYS
// Calculate the difference between the lower and the higher date.
Days.setFormValue(lowerDateInstant && higherDateInstant ? chronoUnit.between(lowerDateInstant, higherDateInstant) : null)
Thanks in advance.
Those looking for the answer, there is nothing wrong with the script, the issue was with scriptrunner, it had a bug that it was not able to set the value of field using setFormValue(""),
scriptrunner version upgrade had a fix for it, which solved my issue. Here is release information if anyone looking for it https://docs.adaptavist.com/sr4js/6.44.0/release-notes/release-6-x#id-.Release6.xv6.44.0.
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.
I am not getting any error but I am not able to copy the value into Days field which is of type text field, also I am trying to do this on create field itself. But its not working.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The code seems ok, but I'd recommend adding several warn level logs after each line to see where the problem is.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.