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

Earn badges and make progress

You're on your way to the next level! Join the Kudos program to earn points and save your progress.

Deleted user Avatar
Deleted user

Level 1: Seed

25 / 150 points

Next: Root

Avatar

1 badge earned

Collect

Participate in fun challenges

Challenges come and go, but your rewards stay with you. Do more to earn more!

Challenges
Coins

Gift kudos to your peers

What goes around comes around! Share the love by gifting kudos to your peers.

Recognition
Ribbon

Rise up in the ranks

Keep earning points to reach the top of the leaderboard. It resets every quarter so you always have a chance!

Leaderboard

Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,456,379
Community Members
 
Community Events
176
Community Groups

When transitioning an issue, how can you get the target status

francis Marketplace Partner Jan 11, 2013

I need this information to write a workflow postfunction.
The issue status itself has not been updated yet.
(a workaround is to move the postfunction after the
'Set issue status to the linked status of the destination workflow step.')

Is there some property somewhere - associated to an action - which details out what the target status is - or target step ?

3 answers

1 accepted

Comments for this post are closed

Community moderators have prevented the ability to post new answers.

Post a new question

4 votes
Answer accepted
JamieA Rising Star Jan 12, 2013

In the transientVars is the action ID.

From the workflowDescriptor you get an Action object using the action ID, then you have the destination step:

def stepId = action.getUnconditionalResult()?.step
getWorkflowDescriptor().getStep(stepId)

francis Marketplace Partner Jan 16, 2013

Works perfectly - as always.


Thanks Jamie.

action.getUnconditionalResult() doesn't always return the destination step/status info.  I've seen it where the transition is to say "Review" and it returns status name of "Done"

0 votes
francis Marketplace Partner Jan 11, 2013

After some digging ...

List<ChangeItemBean> cibs = (List<ChangeItemBean>) transitionVars.get("changeItems");

String targetStatusName = null;
    	
    	// find the destiny transitionname
    	for (ChangeItemBean cib:cibs) {
    		if (cib.getField().equals("status") && cib.getFieldType().equals("jira")) {
    			targetStatusName = cib.getToString();
    		}
    	}
    	
    	if (targetStatusName == null) {
    		log.error("Transition without know target status");
    		return null;
    	}

0 votes

Mostly you need to use WorkflowService, do a getWorkflow evaluate the steps - http://docs.atlassian.com/software/jira/docs/api/latest/com/atlassian/jira/bc/workflow/WorkflowService.html#getWorkflow(com.atlassian.jira.bc.JiraServiceContext, java.lang.String)

Looks complicated. But can you explain what are you trying to achieve by getting the status name?

francis Marketplace Partner Jan 11, 2013

We are working on a new plugin, where the actions on the future status are required.
I did some digging and found some solution.

TAGS

Atlassian Community Events