Skip to end of banner
Go to start of banner

Linked Transition Post Function

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 49 Next »

JSU for Jira Server/Data Center

This is the JSU for Jira Server/Data Center documentation. If you are using JSU on Jira Cloud, see our JSU Cloud documentation.

Description

This post function triggers a transition on a related issue. It can be very powerful in conjunction with the Create a Linked Issue post function to 'connect' the workflows of two issues.

You can also specify any number of fields, that will be copied to the related issue.

The Transition Trigger Service provides also some functionality to trigger a transition on some issues. Depending on your use case you might use this post function or that service.

Configuration

Precondition

If you are using preconditions with a JSU post function, you can use the following options to define how the precondition is evaluated:

  • Ignore precondition (default): Every precondition is ignored which means that the post function will always be performed

  • True: Precondition must be true to execute a post function

  • False: Precondition must be false to execute a post function

    Example of precondition settings as described on this page.

The precondition setting is available on our post function configuration pages, and it is set to ‘Ignore’ by default. You can learn more about our preconditions in Workflow Preconditions.

Trigger transition on all issues related as

You have several different options, on which related issue the transition will be triggered.

Several of JSU's post functions let you define the scope for some related issues.
For example, instead of copying a field within an issue during a post function, you might choose to copy it to a subtask.

Types of Issue Relations

Portion of a post function configuration page showing the options described on this page.

The related issue is determined by one of the following Jira concepts:

  • Issue Link
    You can define the link type to define which issues will be affected by the post function action.
    You can define ANY if you want the action to be performed on any linked issues.

  • Parent / Sub-Task
    The related issue is either the parent or subtask of the origin issue.

  • Epic / Issue in Epic
    The other issue is either the epic, related by an epic link, or it is part of an epic. This is only available if you have Jira Software installed.

  • JQL
    A JQL query can be used to find the issues that will be affected by the post function. You can use placeholders in the JQL query that will be replaced with the current field values of the issue in transition.

    Portion of the post function configuration page that shows the JQL query input box.

    For help with writing the JQL query, see the instructions on JQL Reference. See our JQL Use Cases for some examples.

Issue in Transition

Issue in Transition refers to the issue for which a workflow condition is checked, a workflow validator is examined, or a workflow post function is performed. It is the issue that triggered a workflow condition/validator/post function to be executed.

Source and Destination

Some post functions, for example, the Copy Value From Other Field post function allow you to define the issue in transition as the source or destination of the copy operations, while you define the other end with an issue relation. The field value will then be read from the source issue and be written to the destination issue.

Other workflow modules do not have source and destination; you define the issue relation that will apply to that workflow module. For example, Create a Linked Issue will just create a new issue and then connect it with some Issue Relation to the issue in transition.

Restrictions

  • Copy Value From Other Field post function: there should be only one source issue. Otherwise, it is not clear from which the value will be read. (The current implementation will just randomly pick one of them and ignore the rest.)

  • If you use Create a Linked Issue to create a new sub-task, you must also configure this post function to create the new issue as an issue type of a sub-task and make sure the target project is the same as the one of the issue in transition.

Some of these restrictions are mentioned as 'must be' within the options to configure the issue relation.

In case of problems, the workflow module will still run but a message is entered in the log file. See Troubleshooting for how to turn on the full logging for JSU. This is recommended while you test any new workflow configuration.

Transition

When the post function is performed, it will trigger the transition with that particular ID (51 in the example above) on the linked issues. If one of the linked issues uses a different workflow but has a transition with the same ID, that transition will be triggered. The name of the transition you see on the configuration screen does not matter. What matters is only the ID. If you want to trigger only the transition on one workflow, in that case, use the JQL scope and select the issues to transition with a query similar to issue in linkedIssues({issue.key}) and project = “PR Next Project”.

If the transition with that ID is not available on the linked issue (probably because it is in a different status) nothing will happen. Also, no comments or fields are copied, and no resolution is set.

It is important to keep this in mind and design your workflows accordingly to prevent them from becoming sort of 'out of sync'. You might also use several 'Linked Transition' post functions in the same transition, each calling a different target transition, to match possible different statuses of the linked issue.

Also be aware, that there might be some workflow conditions or validators, which could prevent a transition from being performed.

The transition on the linked issue will be performed as the same user, who triggered the transition on the origin issue. If he does not have the necessary permissions, nothing will happen.

Perform Linked Transition as User

If you don't specify anything here, the transition on the related will be performed under the same user, who triggered this post function on the origin issue. Thus that user must have the necessary permissions on the related issue.

However, in some restrictive setups, the user might not be allowed to do so on the related issue. They may not even see the project of the related issue.

With 'Perform Linked Transition as User' you can specify a different user account that owns the necessary permissions. Usually, this user account is assumed to be only technical, with broad permissions, but not used to log into Jira for normal activity.

Resolution

If any transition screen contains the resolution field, that field becomes mandatory. Here you have a chance to set a value for the resolution to be able to perform that transition.

Resolution here in the Post Function Configuration

Resolution on the issues at the beginning when the transition is performed

What happens?

empty

(does not matter)

The resolution on the issue won't be changed.


None

(does not matter)

The resolution will be set back to 'unresolved' (cleared).

Any value

unresolved

The resolution will be set to the defined value.

Any value

Any other value

The resolution won't be changed.

All other sibling issues must have one of the following statuses

This allows you, that only 'the last' issue will trigger a linked transition.


Consider the following structure of linked issues:

A test case issue has several linked bugs. The bugs are linked as 'from test' to the test case.

Only when the last bug is fixed, the test case should be set to the Status 'Ready for Re-Test' (this is the transition 'All bugs fixed (51)' in the above screenshot).
To prevent this transition from being executed already when the first bug is fixed, we configure two statuses:

All other issues linking to the target must have one of the following statuses: Resolved, Closed

(Resolved is not visible in the above screenshot, but selected further down in the list of statuses.)

If bug 3 in the above diagram is resolved, nothing will happen, because bug 4 still has another status (than Resolved or Closed). Finally, after that, bug 4 is resolved - all bugs now have the status Resolved (Closed would also be ok) - now the transition ('All bugs fixed (51)') on the test case is executed to set it to 'Ready for Re-Test'.

Copy fields

These fields are copied to the linked issue after the transition is performed. The conditions and validators of your linked transition will still use the old field values.

JSU’s Copy Value From Other Field and Create a Linked Transition post functions allow you to define multiple copy value pairs from a source field to a destination field. 

The Add Field button highlighted in the Copy Value Field post function.

Not all conversions from source to destination field are supported, nor feasible. The copy function works if the source and destination fields are of the same field type, or if the destination field is a text field. Some additional combinations will also work, however, they are not officially supported.

Overwrite / Append / Prepend

For text fields and some fields that can accept multiple values, for example, checkboxes, you can choose to overwrite, append or prepend the new value to any existing value. For a text field, you can also choose a separator that will be placed between the values.

Create version if necessary

If your origin issue has a version, it can be copied to the linked issue.

If the destination field is 'Fix Version/s', 'Affects Version/s' or a custom field of type 'Version Picker', you can choose to create a new version in the target project, if it does not yet exist. If you don't select this option and that version does not yet exist, an error message will be displayed to users and the transition won't complete.

The new version will be created even if the user does not have the Administer Projects permission. (Normally a user needs that permission to be able to create a new version.)

Special 'Sources'

  • *** default value ***The default value of the destination field will be set.

  • *** empty ***The destination field will be set with the empty string value. When overwriting a field value, the resulting destination value will be null. When appending/prepending a field value, the resulting destination value will be the concatenation of the existing field value (if any) and the separator. If the aim is to clear the destination field value, use JSU’s ‘Set Any Field Value’ or ‘Clear Field Value’ post function. (See: Post Function Concatenation Operations)

  • *** transition comment ***Use the comment that the user entered on the transition screen.

  • *** last comment ***Use the last (most recent) comment on the issue before the transition was started.

Special 'Destinations'

  • *** new comment ***Create a new comment with the value from the source field.

  • *** new internal note ***: Create a new internal note with the value from the source field (Jira Service Management only).

A new internal note is created only for Jira Service Management (JSM) project issues. For non-JSM projects, a regular comment is created with the value from the source field.

Supported field types

JSU supports many different field types such as system fields and custom fields. However you should be aware, that not all field types are supported, and not in all combinations. We aim to cover the most important field types and are continuously adding and improving how different field types are supported. Some custom fields of other third-party apps might never be supported. You should always test anything you do with issue fields with JSU. You can try it with a free 30-day evaluation license.

Position of the post function

You must put this post function after all other post functions in the same transition.

Example

See the Use Case Testing and Fixing Bugs for an example of how several of our customers use it.

Troubleshooting

If a linked transition does not get triggered, or it blocks your origin transition, these are a few things to check:

  • Did you check the log files? There are cases when the linked transition is not performed silently. But you will find a message in the log files on the server. You might increase the logging level.

  • What happens when you manually click the linked transition? Does it work, or might there be a problem?

  • Does this problem only happen to another user? Check that the user performing the origin transition also has enough permissions for the linked transition.

  • Is there a transition screen for the linked transition? Is there any condition, validator, or post function on the linked transition? Could these prevent the transition from being performed in an automatized way (with the 'Linked Transition' post function)?

  • In the order of all post functions of the origin transition, the 'Linked Transition' post function must be the last one.

  • Did you try to set a particular Resolution in the linked transition? Or with 'Resolution=empty' - does it then work?

  • No labels