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

A workflow post-function that sets the value of a selected field of the current issue or issues related to the current issue. The value can be provided either as text (with optional Nunjucks annotations) or as a JSON value.

To add 'Set field value' post-function to a transition : 

  1. Click Edit for the workflow that has the transition you wish to add the post-function on.

  2. In the Workflow Designer, select the transition.

  3. Click on Post Functions in the properties panel.

  4. Click on Add post function.

  5. Select Set field value from the list of post-functions.

  6. Click on Add to add the post-function on the transition.

  7. Select the “Target issue” (see below)

  8. Select the field from the Field drop-down.

  9. Input a value in the Value field.
    To input issue or transition or current user information in the Value field see, How to insert information using Nunjucks annotations.

  10. Click on Add to add the post-function to the transition.

  11. After adding, move the post-function to the appropriate position according to Placing post-functions in a transition document.

JMWE shows an error message on the issue view if any error occurs during the execution of the post-function. This message is only displayed if the current user is a Jira administrator. 

When you add this post-function to a transition and trigger the transition, the add-on sets the selected field of the target issues to the specified value. The value can be provided either as text (with optional Nunjucks annotations) or as a JSON value.

  • In the case of text, it can be a simple string (for text typed fields), the string representation of a number, date or boolean value, or the string representation of a complex value, such as a Version name, a username, a Project key, etc. Multiple values can be separated by commas. You can also use Nunjucks annotations to insert issue, transition and current user information into the value, using the 'issue', 'transition' and 'currentUser' variables, respectively. 

  • In the case of a JSON value, which requires the option Treat value as JSON (explained below), it can be a String, a Number, a Boolean or an Object. It can also be an array of such values.

To find out more about the type of value expected by this post-function for different field types, see Expected value for each field type.

Issue(s) to operate on

Select the issues on which the selected field needs to be set. They can be:

  • Current issue: Select this option to set the value of the selected field on the current issue. This is the default option.

  • Sub-tasks of the current issue: Select this option to set the value of the selected field on the sub-tasks of the current issue

  • Parent issue of the current sub-task: Select this option to set the value of the selected field on the parent of the current issue

  • Issues that belong to the current issue (Epic): Select this option to set the value of the selected field on the issues that belong to the current Epic

  • Epic of the current issue: Select this option to set the value of the selected field on the Epic of the current issue

  • Child issues of the current issue in the Portfolio hierarchy: Select this option to set the value of the selected field 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 set the value of the selected field on the parent issue of the current issue in the Portfolio hierarchy

  • Issues linked to the current issue through any link type: Select this option to set the value of the selected field on all issues linked to the current issue

  • Issues linked to the current issue through the following link type: Select this option to set the value of the selected field on issues linked to the current issue through a specific link type. Select the specific link type under “Issue link”

  • Issues returned by the following Nunjucks template: Select this option to set the value of the selected field on the issues returned by the result of a Nunjucks template. Input a Nunjucks template which is a comma-separated list of valid issue keys. For example:

    • "TEST-1"

    • "TEST-1","TEST-2"

    • {{ issue.fields.parent.key }}

    • {{ issue.fields.subtasks | join(",", "key") }}

  • Issues returned by a JQL search: Select this option to set the value of the selected field on the issues returned by a JQL search. Input a JQL search expression. For example:

    • project = TEST returns issues of the project with the key TEST

    • project = {{ issue.fields.project.key }} and assignee = {{currentUser._accountId}} returns issues of a project that belong to the project with key TEST and the assignee is the current user

    • {% if issue.fields.assignee %}
          assignee = {{issue.fields.assignee._accountId}}
      {% else %}
          issuekey=INVALID-1
      {% endif %}

      Note that the {% if %} block is necessary to avoid an invalid JQL query when the issue is unassigned. In that case, the template will return a valid JQL query that returns no issue (issuekey=INVALID-1).

Options

  • Treat value as JSON: Sets the field value from a JSON object or an array of objects. It will take the Value in the value template and parse it like a JSON string into a JavaScript object. This will be passed back to Jira as the value of the field. To learn about the JSON value expected by the post-function, see Expected value for each field type.

  • Set only if field is empty: Sets the value of the selected field only if the field is empty.

  • Create missing value(s): Allows creating any missing Component/s or Version/s while setting or copying a field that expects Versions or Components. Note this is applicable for version and component fields.

  • Ignore empty value: Will not set (clear) the selected field, if the value is empty or null.

  • Add value(s) to the field: Appends the specified value(s) to the selected field of the current issue. This is applicable only to multi-valued fields.

  • Send notifications: Jira sends notifications for the change in the selected field value on the current issue. You can control the default value of the "Send notifications" option in the Configuration page under JMWE administration. Click here for more information.

Conditional execution

To execute this post-function based on the result of a Nunjucks template see Conditional execution.

Run As

  • Run as current user: The current user will be the author of the field change.

  • Run as add-on user: The add-on user will be the author of the field change. 

  • Run as this user: Any user selected in this field will be the author of the field change.

Running this post-function as any user other than the "Add-on user" is discouraged

If you select any option other than "Run as add-on user", so that the change appears to be done by the current user or a specific user, the following must be true:

  • The destination field must be present on the Edit screen applicable to the issue being modified

  • The selected user must have the Edit issues permission on the issue being modified

Delayed execution

Post functions are provided with an option to delay their execution. You need to select the number of seconds to wait until the post-function is run, a default of 1 sec to a maximum of 20 seconds.

Workflows that depend on post functions being executed in a specific order fail due to the asynchronous nature of the Connect post-functions in Jira Cloud. One of the workarounds is to delay the execution of the post-functions and thereby create a more predictable execution order. For example, on the approval of a Story you want to create sub-tasks and immediately transition them; in this case, you will have to delay the execution of the Transition Linked Issues post-function, so that the sub-tasks are created before they are transitioned. See the use case below.

It is recommended to use the Sequence of post-functions post-function or Shared Action post-function post-function to run a list of post-functions in a sequence instead of applying a delay.

Sample use cases for Delayed execution

(lightbulb) On the creation of a Bug, assign it to a member of the QA team and then add the Assignee to the Watchers.

 Steps
  • Create a QA project role, with the testers as its members.

  • Add the Assign to role member post-function to the transition Create of the Bug workflow.

  • Select QA as the project role to look for.

  • Add the Copy value from field to field post-function to the Create transition of the Bug workflow.

  • Select Assignee as the From field.

  • Select Watchers as the To field.

  • Select the Delayed execution option and select 5 sec from the Delay drop-down.

(lightbulb) On the approval of a Story, create subtasks for Development and QA, and transition them to In Progress status.

 Steps
  • Add the Create issue post-function to the Approve transition of the Story workflow.

  • Select Same as current issue from the Project field.

  • Select Subtask from the Issue type field.

  • Select Current issue from the Parent issue field.

  • Repeat the above steps for the Development subtask.

  • Add the Transition linked issues post-function to the Approve transition of the Story workflow.

  • Select Issue Link Type as is Parent of.

  • Select the Delayed execution option and select 10 sec from the Delay drop-down.

  • No labels