The Atlassian Community Forums are currently in read-only mode. We will be relaunching on a new platform on September 22 (read more here). We apologize for the extended downtime. For concerns or questions, please email communitymanagers@atlassian.com. See you on the other side, on the new Atlassian Community Forums! :)

×

Forums

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

"Error occurred while storing issue" related to workflowTransitionUtil.setAction(id)

Steve Van Der Weide
May 5, 2017

Goal: If any sub-task of a parent issue transitions to DENIED, the parent issue also auto-transitions to DENIED. They are using different workflows, however both workflows have a transition called "Deny request" that goes to status "DENIED".  

I've added the following script (source) as a post function on my sub-task workflow's "Deny request" transition. The script in its copy-pasted state (meaning it uses 11 as the ID for setAction()) successfully transitions the parent issue to APPROVED when I execute the sub-task's "Deny request" transition. I'd like it to do essentially the same thing but instead of APPROVED, I'd like it to transition to DENIED. 

import com.atlassian.jira.ComponentManager;
import com.atlassian.jira.issue.comments.CommentManager;
import com.opensymphony.workflow.WorkflowContext;
import org.apache.log4j.Category;
import com.atlassian.jira.config.SubTaskManager;
import com.atlassian.jira.workflow.WorkflowTransitionUtil;
import com.atlassian.jira.workflow.WorkflowTransitionUtilImpl;
import com.atlassian.jira.util.JiraUtils;
import com.atlassian.jira.issue.MutableIssue;
log = Category.getInstance("com.onresolve.jira.groovy.AutoCloseChildIssues");
String currentUser = ((WorkflowContext) transientVars.get("context")).getCaller();
WorkflowTransitionUtil workflowTransitionUtil = (WorkflowTransitionUtil) JiraUtils.loadComponent(WorkflowTransitionUtilImpl.class);
MutableIssue parent = issue.getParentObject() as MutableIssue;
workflowTransitionUtil.setIssue(parent);
workflowTransitionUtil.setUserkey(currentUser);
workflowTransitionUtil.setAction(11); // when I change this to workflowTransitionUtil.setAction(21); I get the error 
workflowTransitionUtil.validate();
workflowTransitionUtil.progress();

These two transitions, Approve request (id = 11) and Deny request (id = 21), exist in both the parent issue and sub-task workflows. 

transitions.png

When I change setAction(11) to setAction(21), and try to execute "Deny request", I get the following error.

error.png

Is it a coincidence that setAction(11) happens to share an id with my Approve request transition? Or is that saying, "execute transition with id 11"? I'm confused why 11 works but not 21, when they are both transitions in my workflow.

It seems like replacing 11 with 21 should cause it to execute the parent's "Deny request" transition, since it successfully does the "Approve request" transition using 11. 

Thanks in advance.

2 answers

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

0 votes
Zyfra jira admin
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 18, 2021

Очень информативно!!!

0 votes
Ana Retamal
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
May 9, 2017

Hi Steve, for questions like this one my suggestion would be to post it at community.developer.atlassian.com. That's where our developer community hangs out and you'll be more likely to get a good answer there :)

Best regards,

Ana