---
title: "Transition related issues"
canonical: "https://support.appfire.com/space/JMWE/78056510/Transition%20related%20issues"
format: markdown
---
> ℹ️ Are you using JMWE for Cloud and want to learn how to use this post-function? Head to our documentation [here](https://appfire.atlassian.net/wiki/x/XoitB).

<span style="color: #091e42">When you add this post-function to a transition and trigger it, the add-on will </span><span style="color: #172b4d">trigger the </span><span style="color: #091e42">*first*</span><span style="color: #172b4d"> transition encountered, applicable to the related issue(s) and specified workflow, if any.</span>

<span style="color: #172b4d">You might want to specify multiple transitions if the related issues can be in different statuses and/or use different workflows.</span>

![image](media://0d408ca6-e876-4601-9238-4bcb1c0a7581)

### <span style="color: #172b4d">**Transition(s)**</span>

<span style="color: #172b4d">**Trigger one of the following transitions**</span>

<span style="color: #172b4d">I</span>nput the transition `name(s)` or `id(s)` and optionally the workflow name manually or using the Transition picker. If you do not specify the workflow name (manually) the app will not check for a specific workflow. The app <span style="color: #172b4d">triggers the </span>*first*<span style="color: #172b4d"> transition specified in the table that is applicable to the issue in context.</span>

**To pick a transition using the Transition picker:**

- Click on Transition picker
- Choose a workflow from Workflow name
- Select a transition from the list of transitions displayed
- Select the checkbox "Workflow Name",  <span style="color: #000000">to target a transition in a specific workflow. Leave it unchecked to trigger the transition of any workflow.</span>
- Finally, click on either
  - `Use Transition Name` - recommended if you want the post-function to search for the transition to trigger by name, which is useful when targeting multiple workflows.
  - `Use Transition ID` - if you want to differentiate between transitions that bear the same name.
- Click on Add.

**To remove a transition:** Click on the `Remove` link for the specific transition

**To reorder transitions:** Select and move the transition in the table to reorder the list

<span style="color: #172b4d">**Trigger a calculated transition**</span>

<span style="color: #172b4d">I</span>nput a Groovy script that returns transition `name(s)` or `id(s)` and optionally the workflow name. To specify the workflow name, write a Groovy script that returns the transition `name` or `ID` along with the workflow name <span style="color: #172b4d">separated by </span>`@@. `Eg: `"Done@@HR workflow". `To specify multiple transitions, write a Groovy script that returns a collection of transition `names` or `IDs`. Eg: [`"Done","44@@Employee workflow"]`

### **Which issue(s)**

Select the issues to operate on. They can be:

- **Linked issues:** Select issue(s) linked to the current issue through any link type or a specific link type such as `blocks`, `is cloned by`, etc.
- **Sub-tasks of the current issue: **Select this option to operate on the sub-tasks of the current issue
- **Parent issue of the current sub-task:** Select this option to operate on the parent of the current issue
- **Issues that belong to the current Epic:** Select this option to operate on the issues that belong to the current Epic
- **Epic of the current issue: **Select this option to operate on the Epic of the current issue
- **Child issues of the current issue in the Portfolio hierarchy:** Select this option to operate on the child issues of the current issue in the Portfolio hierarchy
- **Parent issue of the current issue in the Portfolio hierarchy:** Select this option to operate on the parent issue of the current issue in the Portfolio hierarchy
- **Issues returned by a Groovy script: ** Input a Groovy script that returns either a single [Issue object](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461537734), or a Collection of [Issue objects](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461537734), or a String representing the key of an issue, or a Collection of Strings each representing an issue key. For example:
  - `"TEST-1"`
  - `["TEST-1","TEST-2"]`
  - `ComponentAccessor.issueManager.getIssueObject("TEST-1")`
  - `[ComponentAccessor.issueManager.getIssueObject("TEST-1"),ComponentAccessor.issueManager.getIssueObject("TEST-2")]`
  - `issue.parentObject`
  - `issue.getLinkedIssues()`
- **Issues returned by a JQL search**:  Input a JQL search expression, including an optional Groovy Template markup. For example:
  - `project = TEST` returns issues of the project with the key TEST
  - `project = ${issue.get("project").key} and assignee = ${`[currentUser.name](http://currentUser.name)`}` returns issues of the project the current issue belongs to and assigned to the current user.
  - To operate on issues of a project with key `TEST` and issue type name same as the value in a text field
    

> ⚠️ - Note that the `<% if %>` block is necessary to avoid an invalid JQL query when the Single-line text field is empty. In that case, the template will return a valid JQL query that returns no issue (issuekey=INVALID-1). This is in general applicable to JQL operating on select type fields with pre-determined values like Affects Version/s, Checkboxes etc.
> ⚠️ - The maximum number of issues returned by a valid JQL is limited to 1000.

### **Options**

- **Skip workflow conditions**: Ignores the workflow conditions on the triggered transition, if any.
- **Skip workflow validators**: Ignores the workflow validators on the triggered transition, if any.
- **Skip permission check**: Skips the check whether the current or the "run as" user ([explained below](#Transitionrelatedissues-Runas)) has the appropriate permissions to trigger the transition.
- **Trigger a Manual Transition Event on transitioned issues**: Trigger a `WorkflowManualTransitionExecutionEvent` for each issue that is transitioned. This event might be required by other apps.

### **Transition screen**

If the triggered transition on the related issue(s) uses a transition screen you might want/need to provide a value for fields(*such as Resolution*) present on the screen. Look below to know how to add/set/remove fields.

- **To add a field:** Select a field from the list of fields and click on` Add.`
- **To Remove an added field:** Click on `Remove` to remove a field.
- **To Set a field value: **
  - **Copy value from current issue**: Copies the field value(s) from the current issue.
  - **Set field value to constant or Groovy template**: <span style="color: #333333">You can set the field to a constant value that can optionally include the </span>result of a [Groovy template](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461930609). For example:
    - To set the Fix Version/s to 2.0, you can specify `2.0` in the value box.
    - To set the Description of the issue, you can specify `This bug has been raised by <%=issue.get("reporter").getName()%> with <%=issue.get("priority").getName()%> priority. Act accordingly. `in the value box.
  - **Set field value from Groovy Expression:** <span style="color: #333333">You can set the field to the result of a </span>[Groovy expression](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461537291)<span style="color: #333333">. For example: To set the Assignee to the Reporter of the issue, you can specify </span>`issue.get("reporter") `<span style="color: #333333">in the value box.</span>

<span style="color: #333333">See the </span><span style="color: #333333">**Expected Value**</span><span style="color: #333333"> tab of the </span>`Groovy help editor`<span style="color: #333333"> or refer to the </span><span style="color: #333333">[documentation](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461439011)</span><span style="color: #333333"> to know more about the expected value of the selected field.</span>

<span style="color: #333333">Note that you can also set fields that do not appear on the transition screen.</span>

Likewise, you might also want to provide a *comment* during that transition:

- **Comment type: **The text of the comment can either be a
  - **Text or **<span style="color: #000000">**Groovy template**</span>: <span style="color: #000000">A fixed text that can include a </span><span style="color: #000000">[Groovy template](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461930609)</span><span style="color: #000000"> markup that can be used as the comment body. For example, </span>`The issue will be resolved on or before <%= issue.duedate%> by <%issue.assignee%>.`
  - **Groovy Expression:** A [Groovy expression](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461537291) <span style="color: #000000">whose return value (of type String) will be used as the comment body. For example, </span>`issue.get("description")`<span style="color: #000000"> will add the description of the issue to the issue as a comment.</span>
- **Comment text: **<span style="color: #000000">Text that will be used as the comment body, which can either be a </span><span style="color: #000000">[fixed text](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461439011/Expected+value+for+each+field+type#Expectedvalueforeachfieldtype-Rawvalue)</span><span style="color: #000000"> or the </span><span style="color: #707070">[result of a Groovy expression](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461439011/Expected+value+for+each+field+type#Expectedvalueforeachfieldtype-GroovyExpression)</span><span style="color: #707070"> </span><span style="color: #000000">or the </span><span style="color: #000000">[result of a Groovy template](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461439011/Expected+value+for+each+field+type#Expectedvalueforeachfieldtype-Groovytemplate)</span><span style="color: #707070">.</span>
- <span style="color: #707070">**Comment visibility**</span>
  - **Restrict to Group:** Restricts the visibility of the comment to a specified group. When you select a valid group name in the `Restrict to Group` field, the comment will be visible only to the members of the specified group. For no restriction, leave the field blank.
  - **Restrict to Project Role:** Restricts the visibility of the comment to a selected project role. When you select a project role from the drop-down `Restrict to Project Role` field, the comment will be visible only to the members of the selected project role. For no restriction, leave the field blank.

### **Run as**

**Run as user**: Select one of the following options to set the author of the action performed by this post-function as:

- **Current user**: The user transitioning the issue.
- **Specific user**: The user specified in the select-list provided. Start typing into the field to select a user from the list of auto-suggestions.
- **User in field**: The user specified in a user picker field of the issue being transitioned. Select one of the user fields from the list of available options in the field provided.
- **User from script**: The user returned by the Groovy script specified in `Script`. This script should return either the *Username *of the user or an *ApplicationUser *object.
  Examples:
  - `"jdoe"` - Username
  - `issue.get("assignee")` - the current issue's *Assignee*

**Conditional execution**

<span style="color: #000000">Input a Groovy expression that returns </span>`true`<span style="color: #000000"> if the post-function should run. For more information see </span><span style="color: #000000">[Conditional execution using Groovy expression](https://appfire.atlassian.net/wiki/spaces/JMWE/pages/461996060)</span><span style="color: #000000">. Note that the condition will be evaluated </span><span style="color: #000000">*once per applicable related issue*</span><span style="color: #000000">, with each related issue being available, in turn, in the </span>`relatedIssue`<span style="color: #000000"> and deprecated </span>`linkedIssue`<span style="color: #000000"> variables.</span>

### **Error Handling**

<span style="color: #333333">By default, all errors (Java Exceptions) raised by this post-function, including those raised by custom Groovy scripts, will be logged in the </span>[JIRA log file](https://confluence.atlassian.com/adminjiraserver073/logging-and-profiling-861253813.html)<span style="color: #333333"> but will not be reported to the user and will not prevent the transition from completing. </span>

<span style="color: #333333">However, when designing new workflows or troubleshooting them, it is more convenient to be notified immediately of any such error during the execution of the transition. On </span><span style="color: #333333">*development*</span><span style="color: #333333"> and </span><span style="color: #333333">*staging*</span><span style="color: #333333"> Jira instances, you can activate error reporting for </span><span style="color: #333333">*all*</span><span style="color: #333333"> JMWE post-functions on the </span>[JMWE configuration page](http://innovalog.atlassian.net/wiki/spaces/JMWE/pages/139627148/JMWE+administration+pages)<span style="color: #333333">, and it is recommended to do so. But on </span><span style="color: #333333">*production*</span><span style="color: #333333"> Jira instances, you might want to show errors </span><span style="color: #333333">*only *</span><span style="color: #333333">for the post-function(s) being worked on, in order to avoid disrupting other workflows. To make errors raised by the </span><span style="color: #333333">*current*</span><span style="color: #333333"> post-function prevent the transition from completing and show the error in the browser, select </span>`Make transition fail when an error occurs in this post-function`.