Parse Long to date format Scriptrunner

Tobias May 12, 2021

Hello together,

I want to build a sum of a customfield with date format and a customfield with double format (count of days). 

I want to build a sum of both which should be in date format. So I only want to add value of the double formatted field to the customfield with date format. 

 

How is this possible? 

Thank you guys.

 

2 answers

1 accepted

1 vote
Answer accepted
Ram Kumar Aravindakshan _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.
May 12, 2021

Hi @Tobias

For your requirement, I would suggest using the Scripted Field. The Scripted Field can be used to perform the calculation of the Date custom field with the Number field and provide the output, i.e. the new date in date format.

You can follow the steps below to create it.

First, add two custom fields, one for the Date field and one for the Number field, as shown in the print screen below:-

image1.png

 

Next, go to ScriptRunner's Fields option and click on the Create button as shown below:-

image2.png

 

Once you have clicked on the create button, select the Custom Script Field as shown in the image below:-

image3.png

After you have selected the Custom Script Field option, you will need to provide a Field Name for it and also select the Template to Date as shown below:-

image4.png

Now, you will need to include the Script. Below is a sample script for your reference:-

import com.atlassian.jira.component.ComponentAccessor

def customFieldManager = ComponentAccessor.customFieldManager

def originalDate = customFieldManager.getCustomFieldObjectsByName("Original Date")[0]
def originalDateValue = originalDate.getValue(issue) as Date

def additionalDays = customFieldManager.getCustomFieldObjectsByName("Additional Days")[0]
def additionalDaysValue = additionalDays.getValue(issue) as Integer

return (originalDateValue + additionalDaysValue) as Date

Please note, this sample script is not 100% exact to your environment. Hence, you will need to make the required modifications.

Below is a print screen of the Scripted Field with the code:-

image5.png

After adding the code, you can save it.

Below are some print screens of a test:-

image6.png

For this example, the Original Date selected is 14th May 2021 and the Additional days entered are 7, so the expected result in the Scripted Field is 21st May 2021.

image7.png

In the print screen above, the Updated Date, i.e. the Scripted Field, is set to 21st May 2021 as expected.

I hope this helps to answer your question. :)

Thank you and Kind regards,

Ram

 

 

0 votes
Tobias May 17, 2021

Hi @Ram Kumar Aravindakshan _Adaptavist_
thanks for your reply. 

This looks really good for calculating with days. 

In my case I had to calculate with months and I also want to share my source code with you.

import org.apache.commons.lang.time.DateUtils
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue;

def cfIntervall = ComponentAccessor.customFieldManager.getCustomFieldObject(13022)
def cfFreigabe = ComponentAccessor.customFieldManager.getCustomFieldObject(15024)

if (cfIntervall && cfFreigabe && issue.getCustomFieldValue(cfIntervall) && issue.getCustomFieldValue(cfFreigabe))
{
def intMonths = issue.getCustomFieldValue(cfIntervall) as Integer;
def newRevision=DateUtils.addMonths((Date) cfFreigabe.getValue(issue),intMonths)
return newRevision
}
else
{
return null;
}

Maybe someone has the same problem like me.

But thank you for your reply, works also.  

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events