I faced the same issue as described in
Unfortunately, solutions based on OSWf objects didn't work for me (btw: I found valuable go through its concepts: http://oswf.sourceforge.net/tutorial/index.html).
I found this as appropriate solution:
final String newStatusId = ComponentAccessor.workflowManager.getNextStatusIdForAction(issue , transientVars['actionId'] as int)
issue.setStatusId(newStatusId)
Comments to the code:
Hi @Tuncay Senturk ,
Not sure "why" your solution was not working for me.
The most important it does not give expected value.
Below a code snippet, so you can compare your and my solution as well as a given result:
import org.apache.log4j.Level
import org.apache.log4j.Logger
def log = Logger.getLogger("moveParentFromSubApproval.groovy")
log.setLevel(Level.DEBUG)
import com.atlassian.jira.component.ComponentAccessor
import com.opensymphony.workflow.spi.SimpleStep
import com.opensymphony.workflow.loader.ActionDescriptor
List currentSteps = (ArrayList)transientVars.get("currentSteps");
SimpleStep simpleStep = currentSteps.get(0);
int actionId = simpleStep.getActionId();
int beforeStepId = simpleStep.getStepId();
def workflow = ComponentAccessor.workflowManager.getWorkflow(issue)
ActionDescriptor ad = workflow.getDescriptor().getAction(actionId);
int afterStep = ad.getUnconditionalResult().getStep();
log.debug(afterStep)
log.debug( ComponentAccessor.workflowManager.getNextStatusIdForAction(issue , transientVars['actionId'] as int) )
Here is the output:
2019-11-14 04:02:41,019 DEBUG [moveParentFromSubApproval.groovy]: 2 2019-11-14 04:02:41,019 DEBUG [moveParentFromSubApproval.groovy]: 11601
BTW: 11601 status category is not 2, that was my first idea when I saw that
As I mentioned before the order of the posy function also matters.
If it is down below the database persist, then it gives different results.