Forums

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

Start progress on an issue triggered by another issue

Mert Yılmaz
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!
May 20, 2013

Hi ;

There are two issues given to me , i want to make a configuration that if I start progress in one of them , the other should be started.How can i do that via Script Runner plugin? I've been digging the script post functions for the "start progress" transition for hours but i got nothing.

Need your help,tips,tricks...

Regards.

Mert.

2 answers

1 vote
Nancy Blackwell
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 20, 2013

On Transition of the first issue, you can call a script that would look something like this:

int stepId = workflow.getLinkedStep(secondIssue.getStatusObject().getGenericValue()).getId();
StepDescriptor stepDescriptor = workflow.getDescriptor().getStep(stepId);
int savedAction = 0;
		 	
 // Find a "Start Progress" transition
 for (Iterator<ActionDescriptor> iter = stepDescriptor.getActions().iterator(); iter.hasNext();) {
       ActionDescriptor actionDescriptor = (ActionDescriptor) iter.next();
       if (actionDescriptor.getName().contains("Start Progress")) {
               savedAction = actionDescriptor.getId();
        }
}
if(savedAction != 0){
        // Add a comment so there is history of the handoff
	CommentManager commentManager = (CommentManager) ComponentManager.getComponentInstanceOfType(CommentManager.class);
	String comment = "*Start Progress* as a result of the *Start Progress* action being applied in $issue.key";
	commentManager.create(secondIssue, currentUser, comment, true);

	workflowTransitionUtil.setIssue(secondIssue);
        workflowTransitionUtil.setUsername(currentUser);
        Map<String, String> params = new HashMap<String, String>();
        workflowTransitionUtil.setParams(params);
        workflowTransitionUtil.setAction(savedAction);

	// validate and transition issue
	workflowTransitionUtil.validate();
	workflowTransitionUtil.progress();
}

JamieA
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
May 20, 2013

Only improvement would probably be to use IssueService, rather than WorkflowTransitionUtil, but not a bigggie.

0 votes
xinh
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!
June 7, 2013

It was like @Nancy said. Otherwise you could set a "comment" pair in params. like :

def workflowManagerUtil = workflowTransitionUtilFactory.create()                                                                                                                                 
workflowManagerUtil.setIssue(tIssue)                                                                                                                                                             
workflowManagerUtil.setUsername(event.getUser().getName())                                                                                                                                       
workflowManagerUtil.setAction(i.getId())                                                                                                                                                         
workflowManagerUtil.setParams([comment: "Trigger by Plugin"])                                                                
workflowManagerUtil.progress()

Suggest an answer

Log in or Sign up to answer