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

Since Jira 8.x, Scriptrunner JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class) is deprecated

Cedric Delavy October 1, 2019

With Scriptrunner in a Postfunction of a worflow, I use the JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class) to do a workflow transition. But since release 8.x, this method is deprecated.

I tried to use JiraUtils.loadComponent("workflowTransitionUtil", WorkflowTransitionUtilFactoryImpl.class ) where workflowTransitionUtil is the Class Name. But I get this error: java.lang.ClassNotFoundException: workflowTransitionUtil. I tried many values without any success

Any idea which Class Name should I use ?

Thanks

1 answer

1 accepted

Suggest an answer

Log in or Sign up to answer
7 votes
Answer accepted
Alejandro Suárez - TecnoFor
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
October 7, 2019

Hi @Cedric Delavy 

Here you have an example:

import com.atlassian.jira.bc.issue.IssueService
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.user.ApplicationUser
import com.atlassian.jira.workflow.TransitionOptions

Issue issue
Integer actionId = 61 // The transition ID

IssueService issueService = ComponentAccessor.getIssueService()
ApplicationUser currentUser = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
TransitionOptions transitionOptions = new TransitionOptions.Builder()
.skipConditions()
.skipPermissions()
.skipValidators()
.build()

IssueService.TransitionValidationResult result = issueService.validateTransition(currentUser,
issue.getId(),
actionId,
issueService.newIssueInputParameters(),
transitionOptions)

if (result.isValid()) {
issueService.transition(currentUser, result)
} else {
log.warn result.getErrorCollection().getErrors()
}
Cedric Delavy October 9, 2019

Thank you very much, this works perfectly

Regards

Cedric

Like OSK-tspees likes this
ADC UK June 27, 2023

Hi Alejandro,

Thanks for detailing the alternative class - I was trying to amend your script to use it to transition the parent issue by switching issue.getId() with issue.getParentId() but it's returning a 'Cannot invoke method getParentObject() on null object'
Is it feasible to amend the script to transition the parent?

Thanks
Mike

Alejandro Suárez - TecnoFor
Marketplace Partner
Marketplace Partners provide apps and integrations available on the Atlassian Marketplace that extend the power of Atlassian products.
September 1, 2023

Hi @ADC UK maybe the problem is what you consider a "parent". You only can get a parent from a subtask. If you want to get the Epic for example, you need to get the issue with IssueLinkManager

TAGS
AUG Leaders

Atlassian Community Events