Our new Appfire Documentation Space is now live!

Take a look here! If you have any questions please email support@appfire.com

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 32 Next »

JSU for Jira Cloud

This is the documentation of JSU for Jira Cloud. If you are using JSU on Jira Server or on Jira Data Center, you can find the documentation here.

Description

This post function will trigger 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 2 issues.

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

Configuration

Precondition

When using preconditions, they can be evaluated in the context of a post function in the following ways:

  • True (Precondition must be true to execute a post function)

  • False (Precondition must be false to execute a post function)

You can learn more about our preconditions in the Workflow Preconditions topics.

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 workflow post functions have the option to define the scope of 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

Related issues are identified by one of the following Jira concepts:

  • Issue link: You can define the link type to define which issues will be modified by the operation. If the post function includes the link type is ANY option, the operation will be performed on any linked issues.

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

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

  • JQL: A JQL query will be executed to retrieve the issues that will be modified by the post function. You can use some placeholders in the JQL query, which will be replaced with the current field values of the issue in transition. For tips on writing the JQL query, see JQL Reference or our JQL Use Cases for some examples.

Issue in transition

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

Source and destination

For example, the Copy Value From Other Field post function allows 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 is then read from the source issue and written to the destination issue. Other post functions do not have source and destination; you simply define the issue relation that applies to the post function. For example, the Create a Linked Issue post function creates a new issue and then connects it through an issue relation to the issue in transition.

Related issues limitations

While we try to execute as many configurations as possible, there are some restrictions you should keep in mind.

  • Copy Value From Other Field post function: There should be only one source issue. Otherwise, it is unclear from which issue the value should be read. The current implementation will simply select one of them and ignore the rest.

  • If you use the Create a Linked Issue post function to create a new subtask, you must also configure the post function to create the new issue as an issue type of a subtask. The target project must be the same as the one for the issue in transition.

Transition

When the post function is performed, it will trigger the transition with that particular id (31 in the example above) on the linked issues. 

When the post function is executed, it will just look if that transition id is available on the target issue. No matter what workflow and transition name you picked in the configuration screen (that is only to make it easier to find a particular transition id during configuration).

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 comment or fields are copied, no resolution is set.


It is important to keep this in mind and design your workflows accordingly to prevent them to become 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 to be 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 has the necessary permissions, nothing will happen.


Resolution

It is important to following in mind:

1) To set the resolution, It is necessary to have resolve screen on transition. For more information, Please see https://confluence.atlassian.com/jirakb/mapping-a-screen-to-a-workflow-transition-720634253.html

2) 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.


Any value

Any other value

The resolution will be set to the defined value.

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 from our Linked Transition Post-Function use case:

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

Only when the 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).
The prevent this transition to be executed already when the first bug is fixed, we configure here 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 actually 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 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

This fields will be copied to the linked issue, after the transition has been performed.
The conditions and validators of your linked transition will still use the old field values.

You can copy the value of a source field to a destination field. Click the + button to add additional field pairs to your configuration.

Keep in mind that not all conversions from source to destination field are supported, nor feasible. We can only ensure that it will work if the source and destination fields are of the same field type, or the destination field is a text field. Some additional combinations of different field types might work although not officially supported.

Overwrite / append / prepend

For text fields and other fields that can accept multiple values (like 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 is placed between the values (not shown in the screenshot above).

Create version if necessary

Imagine your origin issue has a version that you want to copy to the linked issue. If the destination field is 'Fix Version/s', 'Affects Version/s' or some custom field of type 'Version Picker', you can define that a new version will be created in the target project, if it does not yet exist. If you don't choose this option and that version does not yet exist, the user receives an error message and the transition completes.

A user needs the Administer Projects permission to be able to create a new version.

Create component if necessary

Imagine your origin issue has a component that you want to copy to the linked issue. If the destination field is Components, you define that a new component is created in the target project, if it does not yet exist. If you don't choose this option and that component does not yet exist, the user receives an error message and the transition completes.

A user needs the Administer Projects permission to create a new component.

Special sources

  • *** empty ***:  The destination field will be cleared.

  • *** last comment ***The last comment from the source issue will be copied. In some cases that might be the comment from the transition screen, which the user just entered while performing the current transition.

Special destinations

  • *** new comment *** : A new comment will be created with the copied value. When you choose to overwrite to new comment, a new comment is created, enabling you to add multiple comments in one post function.
    Examples:
    Copy Description to New Comment, overwrite  creates a new comment with the description.
    Copy Summary to New Comment, append with separator ", "  appends the summary to the previously created comment, so the comment will look like <Description>, <Summary>.
    Copy Assignee to New Comment, overwrite → creates a new comment.
    This configuration will result in two comments being created; one with the description and summary, and one with the assignee.

Supported Field Types

JSU supports many different field types; system fields, as well as custom fields.

You should be aware, however, that not all field types or all combinations are supported. We have tried to cover the most important field types but we are continuously adding more and improving how different field types are supported. We recommend you test JSU with fields to see if it is compatible with your system. Our evaluation license provides you with a 30-day free trial. 

Asynchronous Execution

There is a fundamental difference between Jira Server/Data Center and Jira Cloud: In Jira Cloud, post functions of apps are executed asynchronously as a 'background job'. This means a post function will be executed after the transition has been completed on Jira Cloud.

Note the following behaviors of the asynchronous execution:

  • If you are using multiple post functions, there is no guaranteed order in which they are performed. They might be executed in a different order from the one you set up in Jira's workflow configuration. Therefore, you cannot rely on any result of a previous post function. Also, the order in which the post functions are executed might be different every time the transition is performed.

  • If a post function encounters a problem (due to misconfiguration or the current data of a Jira issue), the transition (and all other post functions) will be performed regardless of the problem.

  • The result of a post function might not be visible immediately in the browser.

  • There are no error messages displayed to the user.

Example

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

Troubleshooting

For general troubleshooting about JSU see Linked Transition .

If a linked transition does not get triggered, or it even block 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 to logging level (as described in Linked Transition).
  • What happens when you manually click the linked transition. Does it work, or might there be a problem?
  • Does this problem only happen by another user? Check that the user performing  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 to be performed in an automatised way (with the 'Linked Transition' post function)?
  • In the order of all post functions of the orign 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?
  • Did you check already the documentation above? You might find antoher hint what to look for.





  • No labels