Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

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

Cedric Delavy
Contributor
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 García
Atlassian Partner
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
Contributor
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 García
Atlassian Partner
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
loom essentials certification, loom training, get certified in loom, atlassian certification, loom async video, video messaging skills, atlassian learning, loom for teams, online certification, loom badge, loom for business, atlassian education

Get Certified in Loom! 🧑‍🎓

Time to up your Loom game! The new Loom Essentials Certification is here! Show off your skills, learn pro tips, and get officially recognized. Perfect for taking your video messaging to the next level.

Learn more
AUG Leaders

Atlassian Community Events