On this page


Example 1: Block "Start Progress" transition if the issue "is blocked by" an issue in status other "Resolved", "Closed" or "Done"

Validation on linked issues checks up both, previously created issue links, and new issue links created in transition screen. When we want to check issue links created exclusively in transition screen, we should use Boolean validator with math, date-time or text-string terms with a boolean expression with function transitionLinkedIssues(). Example: Validate only issue links created in transition screen


We are going to use Validation on linked issues to block "Start Progress" transition whenever current issue has an "is blocked by" issue link with an issue in a status different from "Resolved", "Closed" or "Done":






Once configured, "Start Progress" transition looks like this:


The Boolean validator with math, date-time or text-string terms equivalent to this validation is: count(filterByPredicate(linkedIssues("is blocked by"), ^%{00016} not in ["Resolved", "Closed", "Done"])) = 0


Note that:

  • %{00016} is the field code for "Issue status".

Example 2: Make sure an issue can only be closed if all duplicates with certain field values have been already closed

We want to guarantee that all duplicate issues have been closed before the original issue can be closed. At the same time we want guarantee that, for consistency, all duplicates have the same value in fields "Components", "Affected versions" and "Fixed versions", and that they belong to the same project as main issue:






The boolean expression used for filtering field values is: ^%{00094} = %{00094} AND ^%{00074} = %{00074} AND ^%{00077} = %{00077}


Note that:

  • %{00094} is field code for "Components"
  • %{00074} is field code for "Affected versions"
  • %{00077} is field code for "Fixed versions"


Once configured, "Close Issue" transition looks like this:


count(filterByPredicate(linkedIssues("is duplicated by"), ^%{00016} != "Closed" OR ^%{00018} != %{00018} OR ^%{00094} != %{00094} OR ^%{00074} != %{00074} AND ^%{00077} != %{00077})) = 0

 

Note that:

  • %{00016} is field code for "Issue status"
  • %{00018} is field code for "Project key"

Example 3: Make sure no issue type "Bug" is "blocked" or "cloned" by the transitioning issue

We want to use Validation on linked issues to forbid the existence of "blocks" and "clones" issue links to "Bug" issue types:






Once configured, the transition looks like this:



The Boolean validator with math, date-time or text-string terms equivalent to this validation is:

count(filterByIssueType(linkedIssues("blocks, clones"), "Bug")) = 0

or

count(filterByPredicate(linkedIssues("blocks, clones"), %{00014} = "Bug")) = 0


Note that:

  • %{00014} is field code for "Issue type"


Other examples of that functions

Validation on linked issues



Boolean validator with math, date-time or text-string terms

Related Usage Examples