Create
cancel
Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

Scriptrunner post function: assign user based on two custom fields,

Gavin Minnis June 27, 2018

*** JIRA Version 7+ ***

I am trying to determine how to use Scriptrunner to set the assignee during a transition, using a post function, where several separate custom fields impact who the assignee will be.

The first thing that needs to happen is that a single-select drop-down custom field is checked to determine its value (e.g. Option A, Option B, Option C, Option D). 

  • Let's call this cfDropDown.

Next, a checkbox custom field is used to determine if it has a value or is null.

  • Let's call this cfCheckBox.

Next, a single-select entry text field is used to determine what its value is (e.g. 1, 2, or null).

  • Let's call this cfSingleEntry.

Finally, a mapping occurs between that field value and other custom fields. For example,

  • IF cfDropDown = "Option A" AND cfCheckBox = "2" AND cfSingleEntry = "Dogs" THEN assign the issue to the value of a custom User Picker field called "Engineer"
  • IF cfDropDown = "Option A" AND cfCheckBox = "null" AND cfSingleEntry = "Cats" THEN assign the issue to the value of a custom User Picker field called "Artist"
  • IF cfDropDown = "Option C" AND cfCheckBox = "2" AND cfSingleEntry = "null" THEN assign the issue to the value of a custom User Picker field called "Mechanic"
  • etc.
  • etc.

I hope this makes sense, and thank you in advance for your support!

 

1 answer

Suggest an answer

Log in or Sign up to answer
0 votes
Roland Holban (Adaptavist)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 27, 2018

Here is an example I wrote up that should demonstrate all the steps necessary. Use it as a template script for your post-function and modify it to suit your needs.

import com.atlassian.jira.component.ComponentAccessor

def customFieldManager = ComponentAccessor.customFieldManager

def cfDropDown = customFieldManager.getCustomFieldObjectsByName("cfDropDown")[0]
def cfArtist = customFieldManager.getCustomFieldObjectsByName("cfArtist")[0]
def cfEngineer = customFieldManager.getCustomFieldObjectsByName("cfEngineer")[0]

def cfDropDownValue = issue.getCustomFieldValue(cfDropDown)
def cfEngineerValue = issue.getCustomFieldValue(cfEngineer)
def cfArtistValue = issue.getCustomFieldValue(cfArtist)

if (cfDropDownValue.value == "Option A") {
issue.setAssignee(cfArtistValue)
} else if (cfDropDownValue.value == "Option B") {
issue.setAssignee(cfEngineerValue)
}
TAGS
AUG Leaders

Atlassian Community Events