You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.
View groupJoin the community to find out what other Atlassian users are discussing, debating and creating.
Users frequently want to move from using a Scripted Field to using a custom field that's automatically updated. This is useful for Jira Portfolio, which, as of this writing, doesn't support calculated fields. It's also useful if you need an automatic value that can be changed via the UI. The question is, how to do it in ScriptRunner?
Answer: setup a Script Listener to listen for the Issue Updated event with code similar to the following (tweaked where noted)
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.event.type.EventDispatchOption
import com.atlassian.jira.issue.Issue
def issue = event.issue as Issue
def desiredValue = issue.summary + issue.description //TODO: Change this to be the actual calculation you want
def customFieldName = "My Custom Field" //TODO: Change this to match the custom field you want
def customFieldManager = ComponentAccessor.customFieldManager
def field = customFieldManager.getCustomFieldObjects(issue).find{
it.name == customFieldName
}
def currentCustomFieldValue = issue.getCustomFieldValue(field)
if (currentCustomFieldValue == desiredValue) {
return //Quit -- we don't want to update the field if it's already correct.
}
def issueService = ComponentAccessor.getIssueService()
def issueInputParameters = issueService.newIssueInputParameters()
issueInputParameters.addCustomFieldValue(field.id, desiredValue)
def loggedInUser = ComponentAccessor.jiraAuthenticationContext.loggedInUser
def validationResult = issueService.validateUpdate(loggedInUser,
issue.id,
issueInputParameters
)
if (validationResult.isValid()) {
def updateResult = issueService.update(loggedInUser,
validationResult,
EventDispatchOption.DO_NOT_DISPATCH, //This is important to avoid infinite loops
false)
if (!updateResult.isValid()) {
log.error "Failed to update issue $issue.key"
log.error updateResult.errorCollection.errorMessages
log.warn updateResult.warningCollection.warnings
}
} else {
log.error "Failed to update issue $issue.key"
log.error validationResult.errorCollection.errorMessages
log.warn validationResult.warningCollection.warnings
}
Hi @Jonny Carter I have a requirement
1) When the group field is changed then the "Assignee" field has to set to "Unassigned" automaticly
2) I have group field called "Assignment Group" single group picker so when ever user assigned to to an issue in ""Assignee"(system field) then the "Group " field has to update automatic with the user belonged group
I'm trying a couple of scripts that are in community so there are not working
Can you please provide me the script please its will hleps me
Thanks,
Kumar
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Kumar - Were you ever able to find a solution for this? This is exactly what I'm trying to do as well. Thanks!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Connect with like-minded Atlassian users at free events near you!
Find an eventConnect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.
Host an eventYou're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.