How an issue transition can update all sub-task in the same status ?

Stéphane Eursels October 13, 2017

Hi everyone,

I have an issue with some sub-task and I want to synchronise the status between issue and sub-task.

In fact I want that when an user change the status on an issue this is change the status of alls sub-task.

 

I want to add a ScriptRunner postfunction to all transitions of the issue workflow that update the status in all sub-task of the current issue.

Does anyone can help me ?

 

1 answer

1 accepted

0 votes
Answer accepted
Tayyab Bashir
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.
October 14, 2017

Hi,

You would be able to do that with the help of "Script Listeners" from your ScriptRunner plugin.

So add a new script custom listener, refine down the projects you want it for (or select for All the projects). 
Then select the Event which is triggered when your workflow status is changed.

That is, you need to figure out what Event is being fired in post-functioning of a transitioning. (Usually Issue Updated Event is set up, if not you could also test it with "All Issue Events")

The following script would transition all subtasks to the same status as their parent.

def subTaskObjects = issue.getSubTaskObjects()

def subTaskStatus
def currentSubTask

if (subTaskObjects){
def parentStatus = issue.getStatus()
for (int i=0; i<subTaskObjects.size(); i++){
subTaskStatus = subTaskObjects[i].getStatus()
currentSubTask = subTaskObjects[i]

if (subTaskStatus != parentStatus){
currentSubTask.setStatus(parentStatus)
currentSubTask.store()
}
}
}
Stéphane Eursels October 16, 2017

Hello,

Thanks for your answer but sorry it doesn't work and I'm a newbbie.

When I use your script I have an error (issue not define) so I must add the line "def issue = event.issue" at the top of your script.

But I have another error and a warning...

At the line : currentSubTask.setStatus(parentStatus)

"Cannot find matching method"

At the line : currentSubTask.store()

"Use the Object's Service or Manager to save value. Since v5.0."

We use Jira v7.1.2 and ScriptRunner v5.0.14.

Thanks for your help.

Stéphane

Tayyab Bashir
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.
October 16, 2017

It would work.
Just create a custom listener and make it run on all events for test purpose. 
then add the code in "inline script area'. 
(issue is a keyword that would be resolved on the issue level)

Do the above, and transition the parent issue to another status, all it;s sub-tasks would also get transistioned.

Stéphane Eursels October 16, 2017

Yes I have saved it and despite the error and alert reported it works.

Thanks you so much.

Martin June 23, 2019

Hi, sorry it's been so long, but how do i implement this? 
Where can I find the menu to put the script?

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events