Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Next challenges

Recent achievements

  • Global
  • Personal

Recognition

  • Give kudos
  • Received
  • Given

Leaderboard

  • Global

Trophy case

Kudos (beta program)

Kudos logo

You've been invited into the Kudos (beta program) private group. Chat with others in the program, or give feedback to Atlassian.

View group

It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

ScriptRunner change transition on post-function Edited

Is it possible with ScriptRunner to change the transition destination within a post-function based on a field value?

For example, let's say the transition is from Backlog -> Approved, but if there is a custom field "Target" set to "2020", can I have the post-function redirect the issue to a different status "Escalation" instead of going to "Approved".

I'm thinking it would be some variation of this code below used to transition sub-tasks, but before I get into the weeds on it, I wonder if it's possible to change the transition destination of the current issue like that using a post-function.

import com.atlassian.jira.component.ComponentAccessor

def issueService = ComponentAccessor.getIssueService()
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()

def subTasks = issue.getSubTaskObjects()
subTasks.each {
if (it.statusObject.name == "Open") {
def issueInputParameters = issueService.newIssueInputParameters()
issueInputParameters.with {
setResolutionId("1") // resolution of "Fixed"
setComment("*Resolving* as a result of the *Resolve* action being applied to the parent.")
setSkipScreenCheck(true)
}

// validate and transition subtask
def validationResult = issueService.validateTransition(user, it.id, 5, issueInputParameters)
if (validationResult.isValid()) {
def issueResult = issueService.transition(user, validationResult)
if (! issueResult.isValid()) {
log.warn("Failed to transition subtask ${it.key}, errors: ${issueResult.errorCollection}")
}
} else {
log.warn("Could not transition subtask ${it.key}, errors: ${validationResult.errorCollection}")
}
}
}

 

2 answers

0 votes
tom lister Community Leader May 04, 2019

Hi @Paul Stahlke 

It is possible as the plugin Jira Miscellaneous Workflow Extensions provides a conditional issue tranistion post function. The transitions must exist in workflow.

go for it and share your answer

0 votes
Antoine Berry Community Leader May 09, 2019

Hi @Paul Stahlke ,

You can trigger a transition using a scriptrunner postfunction, but it will not override the current transition. Make sure you are executing the script after the "Set issue status to the linked status of the destination workflow step" postfunction.

Antoine 

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Posted in Jira Core

How to manage many similar workflows?

I have multiple projects that use variations of the same base workflow. The variations depend on the requirements of the project or issue type. The variations mostly come in the form of new statuses ...

4,013 views 11 5
Join discussion

Community Events

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

Find an event

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

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you