Use cases for post functions (Legacy)

Use cases for post functions (Legacy)

Note: this page includes legacy Use Cases for JMWE for Jira Data Center/Server. These use cases are in the process of being verified and updated; you can still use them, but you may encounter discrepancies between what is documented and what you see in JMWE.

This section has use cases which help you in understand the usage of Post-functions provided by JMWE.

Assign to role member

This post function can be used to assign an issue to the member of a selected project role

Sample use cases:

 On the creation of a Bug assign it to a user only if he is a Product Owner

  • Add the Assign to role member to the Create transition.

  • Select Product Owner as the Project Role

  • Select Use selected assignee, only if a member of the required role option

 Assign an issue to a member of the QA team when the issue is transitioned to Ready for testing status

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

  • Add the Assign to role member post-function to the transition that leads to Ready for testing status.

  • Select QA as the project role to look for.

Click here to know the post-function features

Assign to last role member

This post function can be used assign an issue to the last role member of a selected project role. This is very much similar to the Assign to role member, except that it always looks for the last role member.

Sample use cases:

 When a tester reopens an issue assign the issue to a Developer who last worked on it.

  • Create a Developer project role, with the developers as its members.

  • Add the Assign to last role member to the Reopen transition.

  • Select Developer as the Project Role

 After testers have validated an issue, it should be assigned to the last product owner who worked on it for the functional validation. The product owner might either have been explicitly assigned to the issue before, to write the functional specification or have written the specification while creating the issue.

  • Create a Product Owner project role, with the product owners as its members.

  • Add the Assign to last role member post-function to the Validate transition of the workflow.

  • Select Product Owner as the project role to look for.

  • Select Include Reporter option in case a product owner created the issue but was never assigned to it afterward.

Click here to know the post-function features

Clear field value

 Clear the Fix Version/s field on the reopening of a ticket.

  • Add the Clear field value post-function to the Reopen transition of the workflow.

  • Select the field Fix Version/s to from Field.

Clear field of related issues

This post-function clears the value of the selected field(s) of the issue's related issues (such as linked issues, Stories of an Epic, Epic of a Story, subtasks of an issue, issues returned by a Groovy script or a JQL search, etc.)

 Clear a set of fields on all the linked issues of the current issue when an Abort is triggered on the current issue

  • Add the Clear field value of related issue post-function to the Abort transition of the workflow.

  • Select Issues linked to the current issue through any link type from Which Issue(s)

  • Select all the fields to be emptied from Field.

 

Comment issue

This post-function can be used to comment an issue either by using a Raw value or the result of a Groovy expression or a Groovy template.

Sample use cases:

 A customer using Jira Service Desk should be notified via a comment when someone has started working on their support request.

  • Add the Comment issue post-function to the Start Progress transition.

  • Select the Comment type as Groovy template

  • Write the following content in the Comment section:

    We have started working on your support request - $issue.key. We will get back to you within 24 hours.

 On resolving or closing the issue, comment the issue with a summary of the worklog.

  • Add the Comment issue post-function to the Start Progress transition.

  • Select the Comment type as Groovy template

  • Write the following content in the Comment section:

    <% def count = 1 issue.get("worklog").each(){ print "Worklog "+ count + "\n" + " Started :" + it.getStartDate() + "\n" + " Time Spent :" + it.getTimeSpent() + "\n" + " Work Description :" + it.getComment() + "\n" count = count + 1 }%>

Click here to know the post-function features

Comment related issues

This post-function creates a comment on all issue's related issues (such as linked issues, Stories of an Epic, Epic of a Story, subtasks of an issue, issues returned by a Groovy script or a JQL search, etc.). The text of the comment can be either a text, optionally including a Groovy template markup, or the result of the evaluation of a Groovy expression.

Sample use cases:

 An issue is blocking another and you want to ensure the Assignee of the blocked issue is notified when the impediment has been resolved.

  • Add the Comment related issues post-function to the transition that resolves the current issue.

  • Select Issues linked to the current issue through the following link type under Which Issue(s)

  • Choose the issue link type blocks 

  • Select the Comment type as Groovy template

  • Write the following content in the Comment section.

    The impediment $issue.key- $issue.summary has been resolved.

 Add a comment on all the sub-tasks when the parent is cancelled

  • Add the Comment related issues post-function to the Cancel transition

  • Select the Comment type as Groovy template

  • Select Sub-tasks of the current issue under Which issue(s)

  • Write the following content in the Comment section.

    The parent of the issue i.e $issue.key has been canceled.

 On the Approval of an issue, copy the comment added if any to its sub-tasks.

  • Add the Comment related issues post-function to the Approve transition

  • Select the Comment type as Groovy template

  • Select Sub-tasks of the current issue under Which issue(s)

  • Write the following content in the Comment section.

    if(transientVars.comment) return transientVars.comment else return ""

     

  • Move this post-function after the "Add a comment to an issue if one is entered during a transition" post-function.

 The Service Desk Agent responsible for a support request should be notified when the linked Bug is resolved.

  • Add the Comment related issues post-function to the Resolved transition of the Bug workflow.

  • Select the Comment type as Groovy template

  • Select Issues linked to the current issue through the following link type under Which Issue(s)

  • Choose the issue link type blocks  

  • Write the following content in the Comment section.

    $issue.key has been resolved. You should get back to the customer.
  • Check the Restrict to internal (Jira Service Desk only) option to make sure the customer doesn't see the comment.

Click here to know the post-function features

Create/Clone issue

This post-function can be used to create a new issue.

Sample use cases:

 On the approval of a Story, create two sub-tasks: one for Development and another for QA.

  • Add the Create/Clone issue post-function to the transition Approve of the Story workflow to create a QA ticket.

  • Select Same as current issue from the Project field.

  • Select Subtask from the Issue type field.

  • Select Current issue from the Parent issue field.

  • Add a Summary

    Task for <%=it%>
  • Select the option under "Multiple issue creation"

  • Input the following value:

    ["Development","QA"]

Two sub-tasks will be created, one for "Development" and another for "Subtask"

 Create a bug in Project B when the developer confirms a Bug in Project A for the component UI

  • Add the Create/Clone issue post-function to the Start Progress transition of the Bug workflow.

  • Select the Production project from the Project field.

  • Select Bug from the Issue type field.

  • Set Summary field to $issue.summary

  • Set Linked Issues field to be copied from the current issue

  • Select is cloned by in the Link to new issue section.

  • Select the Conditional execution section and write the following script:

    issue.get("components").any{it.name == "UI"}

 To onboard a new employee in the HR database, create tasks one for each value selected in "Onboarding Tasks" multi-valued field

  • Add the Create issue post-function to the transition Create of the New Employee ticket workflow.

  • Select Same as current issue from the Project field.

  • Select Task from the Issue type field.

  • Select the link type from the main issue to the new issues under "Link type"

  • Edit the Summary field value to:

    Task for <%=it.value%>
  • Select the option under "Multiple issue creation"

  • Input the following value:

    issue.get("Onboarding Tasks")

 An Epic has a Story and the Story has a sub-task. When the sub-task is reopened we want to create a bug in another project linking it to the sub-task. On creation of the Bug, set its Epic link to the Story's Epic link

  • Add the Create issue post-function to the Reopen transition of the sub-task workflow.

  • Select the project from Project

  • Select the Bug in Issue type

  • Select is caused by in Link to new issue

  • Select the Epic Link field in Set fields of new issue.

  • Select the Value type as Groovy expression

  • Write the following in the Value section

    if(issue.getLinkedIssues('is caused by')) { issue.getLinkedIssues('is caused by').first().getParentObject().get("Epic Link") }

Click here to know the post-function features

Copy field value from related issues

This post-function sets the value of a field to the value of a field in related issues (such as linked issues, Stories of an Epic, Epic of a Story, subtasks of an issue, issues returned by a Groovy script or a JQL search, etc.)

Sample use cases:

 Copy the Fix Version/s field from the Epic to a Story, while creating a Story.

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

  • Select Fix Version/s in Source Field.

  • Select Same as the source field in Destination Field.

  • Choose Issues that belong to the current Epic from Which Issue(s)

Click here to know the post-function features

Copy field value to related issues

This post-function copies the value of a field to all related issues (such as linked issues, Stories of an Epic, Epic of a Story, subtasks of an issue, issues returned by a Groovy script or a JQL search, etc.)

Sample uses cases:

 Copy the Fix Version/s field from the Stories to Epic, after resolving a user story.

  • Add the Copy field value to related issues post-function to the Resolve transition of the Story workflow

  • Select Fix Version/s in Source Field.

  • Select Same as the source field in Destination Field.

  • Choose Epic of the current issue from Which issue(s).

  • Check Add source value(s) to destination field option.

Click here to know the post-function features

Copy field value from parent issue

This post-function can be used to set the value(s) of a selected field with value(s) from the same field of an issue's parent issue.

Sample use cases:

 When creating a child bug of another bug (i.e. the parent bug), copy the fields Assignee, Component/s and Affects Version/s if they are left empty.

  • Add the Copy field value from parent issue post-function to the Create transition of the sub-task workflow.

  • Select Assignee in Field.

  • Select Copy only if not set option.

  • Repeat the above steps for the Component/s and Affects Version/s fields.

Click here to know the post-function features

Copy field value to parent issue

This post-function can be used to copy the value(s) of a selected field to the same field of the issue's parent issue.

Sample use cases:

 Copy the labels from each sub-task to its parent when the sub-task is closed.

  • Add the Copy field value to parent issue post-function to the Close transition of the Sub-task workflow.

  • Select Labels in Field.

  • Select the Add source value(s) to destination field option.

Click here to know the post-function features

Copy value from field to field

This post-function can be used to copy the value(s) of one field to another field of the same issue.

Sample use cases:

 Set the component of an issue with a value selected from a cascading field that carries the Main and Sub-components in parent and child.

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

  • Select the Cascading field as the Source field.

  • Select the Components field as the Destination field.

  • Select Return "parent - child" for cascading custom fields option.

Note: The Component name should be in Component - Subcomponent format.

 Issues in our project are fixed in the version they are found. So I want to copy the Affects Version/s of the issue to the Fix Versions, on resolving the issue.

  • Add the Copy value from field to field post-function to the Resolve transition of the issue's workflow.

  • Select Affects Version/s as the Source field.

  • Select Fix Version/s as the Destination field.

 I want 'Capture for JIRA Environment' field to be copied to the 'Environment' field when a bug is created using Capture for JIRA.

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

  • Select Capture for JIRA Environment as the Source field.

  • Select Environment as the Destination field.

 Copy value from a Single Version Picker select list to the Fix Version(s) field if the resolution provided while closing the issue is "Fixed".

  • Add the Copy value from field to field post-function to the Close transition of the issue's workflow.

  • Select the Single version picker in the Source field.

  • Select the Fix Version/s in the Destination field.

  • Select the Conditional execution and write the following script:

    issue.get("resolution")?.getName() == "Fixed"

Click here to know the post-function features

Email issue

This post-function is used to send an email to certain recipients specified in the post-function configuration

Sample use cases:

 Send an Email to the voters of the issue when a new feature is approved.

  • Add the Email issue post-function to the Approve transition of the issue's workflow.

  • Input the subject of the Email in Subject

  • Select the Voters in Issue members under Recipients.

 On the creation of an issue send an Email notification to email addresses in a checkboxes custom field type.

  • Add the Email issue post-function to the Create transition of the issue's workflow.

  • Input the subject of the Email in Subject

  • Write the following Groovy template in Email addresses field.

    ${issue.getAsString("EmailIds")}

Click here to know the post-function features

Increase value of field

This post-function is used to increase the value of a numerical field by one.

Sample use cases:

 Track the number of times a bug fix was rejected by the QA team.

  • Create a Rejection counter numerical custom field.

  • Add the Increase value of field post-function to the Reject transition of the Bug workflow.

  • Select the Rejection counter field.

Click here to know the post-function features

Link issues to the current issue

This post-function is used to link the current issue to all issues that satisfy a parameterized JQL query.

Sample use cases:

 Link all the Faults in Service desk project to the current issue with "blocks" link type

  • Add the Link issues to current issue post-function to the transition

  • Input the following JQL expression

    project = "Service Desk project" and issuetype = Fault

     

  • Select 50 in Max. issues

  • Select the blocks link type in Issue link

Click here to know the post-function features

Scripted (Groovy) operation on issue

This post-function is used to execute a Groovy expression against the current issue.

Sample use cases:

 Copy attachments of the sub-tasks to the parent

  • Add the Scripted (Groovy) operation on issue post-function to the transition

  • Input the following Groovy expression