Block 'Close' Transition Until All Subtasks are Closed


Required apps

Power Scripts™ for Jira (server)

Level: BASIC

Problem

We want to block the task 'Close' transition if there are subtasks which are not closed. To accomplish that we need to add a new condition to the 'Close' transition.

Solution

Adding a new condition

Log in as an administrator and navigate to Administration-> Workflows and edit "Close Issue" transition on the default Jira workflow. Click Add a new condition:

Now add a '(k) SIL™ condition':

The following screen appears:

Writing code

The following code (also shown above) does all the magic:

//blocks `Close` transition on parent task
//until all its subtasks are closed
for (string sk in subtasks(key)) {     

    //if found subtask that has not been closed, return false     
    if (%sk%.status != "Closed") {         
        return false;     
    } 
}  

//otherwise return true 
return true;

Press the 'Save' button to save it on the server side (you can also check its syntax before, use the 'Check' button in the editor's menu).

Info

All you have to do now is to publish your workflow.
See more at Activating Workflow section on Atlassian Documentation

See also