Description
I'm trying to run a simple script in post-function, and it seem seems to be running, but I'm not getting the field value updated. Am I missing something somewhere?
--------
import com.atlassian.jira.component.ComponentAccessor
import java.sql.Timestamp
def customFieldManager = ComponentAccessor.getCustomFieldManager()
def userUtil = ComponentAccessor.getUserUtil()
def cfSeverity = customFieldManager.getCustomFieldObjectsByName("Severity")
def cfSeverityValue = issue.getCustomFieldValue(cfSeverity).toString()
int DueInDays = 0
log.warn ("Severity Value: "+ cfSeverityValue )
// Days in the future when the issue is due
switch (cfSeverityValue) {
case "Critical" : DueInDays = 30; break;
case "Major" : DueInDays = 60; break;
case "Moderate" : case "Minor" : DueInDays = 120; break;
default : DueInDays = 120; break;
}
// Make sure the due date doesn't fall on a weekend
Date today = new Date();
Calendar MyDueDate = Calendar.getInstance();
MyDueDate.add(Calendar.DATE,DueInDays)
while ([Calendar.SATURDAY, Calendar.SUNDAY].contains(MyDueDate.get(Calendar.DAY_OF_WEEK))) {
MyDueDate.add(Calendar.DATE,1)
}
def dueTimestamp = new Timestamp(MyDueDate.getTimeInMillis())
issue.setDueDate(dueTimestamp)
log.warn ("SetDueDate:" + dueTimestamp)
----------
Workflow
Creates the issue originally.
Custom script post-function - Set Due Date based on Severity
Re-index an issue to keep indexes in sync with the database.
Fire a Generic Event event that can be processed by the listeners.
----
Execution
Time (on server): Thu Sep 24 2020 11:49:42 GMT-0400 (Eastern Daylight Time)
The following log information was produced by this execution. Use statements like:log.info("...") to record logging information.
2020-09-24 11:49:42,861 WARN [runner.ScriptBindingsManager]: Severity Value: Major
2020-09-24 11:49:42,863 WARN [runner.ScriptBindingsManager]: SetDueDate:2020-11-23 11:49:42.863
----
Due Date is in Screen/Field Scheme for issue
Create Issue, Due date not filled manually
The field 'Due Date' does not have value for issue after Create.
Hi @Chris Cralle
You can move your script to the last position in your workflow and add this code :
import com.atlassian.jira.issue.IssueManager
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.event.type.EventDispatchOption
//your code
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
IssueManager issueManager = ComponentAccessor.getIssueManager()
issueManager.updateIssue(user,issue,EventDispatchOption.DO_NOT_DISPATCH,false)
I hope this help you.
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.