Workflow post function validation using Groovy

Marcelo Valenca October 31, 2017

Hi, everyone!

I'm trying to write a Groovy script in "Transition parent issue" post function in my custom workflow.

My intent is to transition the issue's parent if there is at least one subtask whose status is not "Resolved".

What I tried to do so far was this:

import com.atlassian.jira.issue

for(Issue subTask : parentIssue.get("subTaskObjects")) {
  if(!subtask.getStatus().equals("Resolved"))
    return true
}

return false

The problem is I am new in Jira and know nothing about Groovy!

Obviously it is not working. Can anyone help me??

1 answer

0 votes
Alexey Matveev
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 31, 2017

Hello,

I do not understand exactly what you want.Usually people transition parent issue if all subtasks are resolved. You can use "Transition parent when all subtasks are resolved". It is a built-in post function in ScriptRunner.

If you want to write something opposite then it would be like this:

import com.atlassian.jira.issue

for(Issue subTask : issue.getParentObject().getSubTaskObjects()) {
  if(!subTask.getStatus().Name.equals("Resolved"))
    return true
}

return false
Marcelo Valenca November 1, 2017

Hello, Alexey! Thanks for your reply!

To be more specific, I have created a status named "Paused" to indicate when some issue still has some task unresolved and none of them is "In progress".

In my "Resolve issue" transition I have two post functions to transition subtask issue parent when its subtask is resolved:

  1. transition subtask parent issue to "Paused", once there is no subtask "In progress" immediately after;
  2. transition subtask parent issue to "Closed". In this case, the parent issue workflow has a condition to just allow that transition if all of its subtasks are closed already.

Because the Groovy validation of the first post function above isn't working, the paused status is always being applied.

That's why I need correct it.

Is it clearer now? If you still have some doubt, please let me know! ;)

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events