Hi,
In our instance, a story can have various sub-tasks but will always have a 'QA Task' sub-task. I need to use ScriptRunner to block a specific transition if any sub-tasks are not closed excluding the 'QA Task' sub-task.
I referenced this first example in the documentation with some tweaks, but to no avail (it seems 'passesCondition' is not valid: https://scriptrunner.adaptavist.com/6.4.0-p5/jira/recipes/workflow/conditions/all-subtasks-resolved.html
Can anyone help with producing a simple script that will block the transition (preferably using a validator) unless all sub-tasks except QA Task are closed?
Many thanks,
Howard
--
Hi Howard,
You can use a custom script validator to throw an InvalidInputException and block the parent issue's transition if conditions aren't meet.
Here's the sample custom script validator when not all sub-tasks (except QA Task) of that parent issue are closed as "Done", then it will throw an exception and block the transition for that parent issue:
import com.opensymphony.workflow.InvalidInputExceptiondef passesCondition = truedef subTasks = issue.getSubTaskObjects()def subBoolean = issue.subTask//If the issue is not a subtask and contains subtasksif(!subBoolean && subTasks){ subTasks.each { //Loop each subtask of parent issue //If the subtask is "QA Task" if (it.issueType.name == "QA Task") { passesCondition = true }else{ //Else if the subtask is not "QA Task" //If the subtask has null resolution or not a resolution "Done" if(!it.getResolution() || it.getResolution().name != "Done"){ passesCondition = false //Block the transition throw new InvalidInputException("subTask","Not all substasks ($it) are closed as 'Done'!") }else{ passesCondition = true } } }}else{ return true}
Hope this helps!
It looks like you're new here. Sign in or register to get started.