Updating due-date on workflow transition, with a custom field off set

Hey

I have a challange, where a transaction, should change the due date of the issue. But the change is not static (+5 days, 1 month). the off set is based on a select custom field.

This field have have different periods (weekly, monthly, etc.)

Anyone know a way to solve this?

2 answers

1 accepted

This widget could not be displayed.

Found that it could be done with a scripted post function, using Script Runner plugin

Hi Mikkel,

Did you manage to do it with script runner? Coud you post your script here?

Pierre

import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.Issue
import java.text.SimpleDateFormat
import com.atlassian.jira.issue.comments.CommentManager

Issue issue = issue
ComponentManager componentManager = ComponentManager.getInstance()
CustomFieldManager cfManager = componentManager.getCustomFieldManager()
CommentManager comManager= componentManager.getCommentManager()

String value = issue.getCustomFieldValue(cfManager.getCustomFieldObjectByName("Control Frequency"));
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy/MM/dd")
String originalDueDate = dateFormatter.format(issue.dueDate)

Calendar newDueDate = Calendar.getInstance()
newDueDate.setTimeInMillis(issue.dueDate.time)

boolean update = true

switch (value){
        case "Daily (weekdays)":

            newDueDate.add(Calendar.DAY_OF_YEAR, Calendar.getInstance().get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY ? 3 : 1)
            break

        case "Weekly":
            newDueDate.add(Calendar.WEEK_OF_YEAR, 1)
            break
.
.
.
        case "Every 4 years":
            newDueDate.add(Calendar.YEAR, 4)
            break

        case "Every 5 years":
            newDueDate.add(Calendar.YEAR, 5)
            break

        default:
            update = false
            break
    }

if (update){
    issue.dueDate.time = newDueDate.timeInMillis
    comManager.create(issue, "System", "Executed and Due date changed from " + originalDueDate + " to " + dateFormatter.format(issue.dueDate), false)
    issue.store()
}

This widget could not be displayed.

Scripting.

JJupin:

if(customfield_12345 == "1") {

dueDate = currentDate() + "5d";

} else {

dueDate = currentDate() + "4w";

}

http://confluence.kepler-rominfo.com/display/JJUP20/Date+routines

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Thursday in United States

Local Atlassian Research Workshop opportunity on Sep. 28th

We're looking for participants for another workshop at Atlassian! We need Jira admins who have interesting custom workflows, issue views, or boards. Think you have a story to sh...

37 views 0 0
View post

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you